vulkan-3.21: src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot
{-# language CPP #-}
-- | = Name
--
-- VK_KHR_ray_query - device extension
--
-- == VK_KHR_ray_query
--
-- [__Name String__]
-- @VK_KHR_ray_query@
--
-- [__Extension Type__]
-- Device extension
--
-- [__Registered Extension Number__]
-- 349
--
-- [__Revision__]
-- 1
--
-- [__Extension and Version Dependencies__]
--
-- - Requires support for Vulkan 1.1
--
-- - Requires @VK_KHR_spirv_1_4@ to be enabled for any device-level
-- functionality
--
-- - Requires @VK_KHR_acceleration_structure@ to be enabled for any
-- device-level functionality
--
-- [__Contact__]
--
-- - Daniel Koch
-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_ray_query] @dgkoch%0A<<Here describe the issue or question you have about the VK_KHR_ray_query extension>> >
--
-- == Other Extension Metadata
--
-- [__Last Modified Date__]
-- 2020-11-12
--
-- [__Interactions and External Dependencies__]
--
-- - This extension requires
-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_ray_query.html SPV_KHR_ray_query>
--
-- - This extension provides API support for
-- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_query.txt GLSL_EXT_ray_query>
--
-- [__Contributors__]
--
-- - Matthäus Chajdas, AMD
--
-- - Greg Grebe, AMD
--
-- - Nicolai Hähnle, AMD
--
-- - Tobias Hector, AMD
--
-- - Dave Oldcorn, AMD
--
-- - Skyler Saleh, AMD
--
-- - Mathieu Robart, Arm
--
-- - Marius Bjorge, Arm
--
-- - Tom Olson, Arm
--
-- - Sebastian Tafuri, EA
--
-- - Henrik Rydgard, Embark
--
-- - Juan Cañada, Epic Games
--
-- - Patrick Kelly, Epic Games
--
-- - Yuriy O’Donnell, Epic Games
--
-- - Michael Doggett, Facebook\/Oculus
--
-- - Andrew Garrard, Imagination
--
-- - Don Scorgie, Imagination
--
-- - Dae Kim, Imagination
--
-- - Joshua Barczak, Intel
--
-- - Slawek Grajewski, Intel
--
-- - Jeff Bolz, NVIDIA
--
-- - Pascal Gautron, NVIDIA
--
-- - Daniel Koch, NVIDIA
--
-- - Christoph Kubisch, NVIDIA
--
-- - Ashwin Lele, NVIDIA
--
-- - Robert Stepinski, NVIDIA
--
-- - Martin Stich, NVIDIA
--
-- - Nuno Subtil, NVIDIA
--
-- - Eric Werness, NVIDIA
--
-- - Jon Leech, Khronos
--
-- - Jeroen van Schijndel, OTOY
--
-- - Juul Joosten, OTOY
--
-- - Alex Bourd, Qualcomm
--
-- - Roman Larionov, Qualcomm
--
-- - David McAllister, Qualcomm
--
-- - Spencer Fricke, Samsung
--
-- - Lewis Gordon, Samsung
--
-- - Ralph Potter, Samsung
--
-- - Jasper Bekkers, Traverse Research
--
-- - Jesse Barker, Unity
--
-- - Baldur Karlsson, Valve
--
-- == Description
--
-- Rasterization has been the dominant method to produce interactive
-- graphics, but increasing performance of graphics hardware has made ray
-- tracing a viable option for interactive rendering. Being able to
-- integrate ray tracing with traditional rasterization makes it easier for
-- applications to incrementally add ray traced effects to existing
-- applications or to do hybrid approaches with rasterization for primary
-- visibility and ray tracing for secondary queries.
--
-- Ray queries are available to all shader types, including graphics,
-- compute and ray tracing pipelines. Ray queries are not able to launch
-- additional shaders, instead returning traversal results to the calling
-- shader.
--
-- This extension adds support for the following SPIR-V extension in
-- Vulkan:
--
-- - @SPV_KHR_ray_query@
--
-- == New Structures
--
-- - Extending
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
-- 'Vulkan.Core10.Device.DeviceCreateInfo':
--
-- - 'PhysicalDeviceRayQueryFeaturesKHR'
--
-- == New Enum Constants
--
-- - 'KHR_RAY_QUERY_EXTENSION_NAME'
--
-- - 'KHR_RAY_QUERY_SPEC_VERSION'
--
-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
--
-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR'
--
-- == New SPIR-V Capabilities
--
-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>
--
-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>
--
-- == Sample Code
--
-- Example of ray query in a GLSL shader, illustrating how to use ray
-- queries to determine whether a given position (at ray origin) is in
-- shadow or not, by tracing a ray towards the light, and checking for any
-- intersections with geometry occluding the light.
--
-- > rayQueryEXT rq;
-- >
-- > rayQueryInitializeEXT(rq, accStruct, gl_RayFlagsTerminateOnFirstHitEXT, cullMask, origin, tMin, direction, tMax);
-- >
-- > // Traverse the acceleration structure and store information about the first intersection (if any)
-- > rayQueryProceedEXT(rq);
-- >
-- > if (rayQueryGetIntersectionTypeEXT(rq, true) == gl_RayQueryCommittedIntersectionNoneEXT) {
-- > // Not in shadow
-- > }
--
-- == Issues
--
-- (1) What are the changes between the public provisional
-- (VK_KHR_ray_tracing v8) release and the final
-- (VK_KHR_acceleration_structure v11 \/ VK_KHR_ray_query v1) release?
--
-- - refactor VK_KHR_ray_tracing into 3 extensions, enabling
-- implementation flexibility and decoupling ray query support from ray
-- pipelines:
--
-- - @VK_KHR_acceleration_structure@ (for acceleration structure
-- operations)
--
-- - @VK_KHR_ray_tracing_pipeline@ (for ray tracing pipeline and
-- shader stages)
--
-- - @VK_KHR_ray_query@ (for ray queries in existing shader stages)
--
-- - Update SPIRV capabilities to use @RayQueryKHR@
--
-- - extension is no longer provisional
--
-- == Version History
--
-- - Revision 1, 2020-11-12 (Mathieu Robart, Daniel Koch, Andrew Garrard)
--
-- - Decomposition of the specification, from VK_KHR_ray_tracing to
-- VK_KHR_ray_query (#1918,!3912)
--
-- - update to use @RayQueryKHR@ SPIR-V capability
--
-- - add numerical limits for ray parameters (#2235,!3960)
--
-- - relax formula for ray intersection candidate determination
-- (#2322,!4080)
--
-- - restrict traces to TLAS (#2239,!4141)
--
-- - require @HitT@ to be in ray interval for
-- @OpRayQueryGenerateIntersectionKHR@ (#2359,!4146)
--
-- - add ray query shader stages for AS read bit (#2407,!4203)
--
-- == See Also
--
-- 'PhysicalDeviceRayQueryFeaturesKHR'
--
-- == Document Notes
--
-- For more information, see the
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_query Vulkan Specification>
--
-- This page is a generated document. Fixes and changes should be made to
-- the generator scripts, not directly.
module Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR) where
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (ToCStruct)
import Data.Kind (Type)
data PhysicalDeviceRayQueryFeaturesKHR
instance ToCStruct PhysicalDeviceRayQueryFeaturesKHR
instance Show PhysicalDeviceRayQueryFeaturesKHR
instance FromCStruct PhysicalDeviceRayQueryFeaturesKHR