{-# language CPP #-} -- | = Name -- -- VK_KHR_ray_tracing_maintenance1 - device extension -- -- == VK_KHR_ray_tracing_maintenance1 -- -- [__Name String__] -- @VK_KHR_ray_tracing_maintenance1@ -- -- [__Extension Type__] -- Device extension -- -- [__Registered Extension Number__] -- 387 -- -- [__Revision__] -- 1 -- -- [__Extension and Version Dependencies__] -- -- - Requires support for Vulkan 1.1 -- -- - Requires @VK_KHR_acceleration_structure@ to be enabled for any -- device-level functionality -- -- [__Contact__] -- -- - Daniel Koch -- -- -- == Other Extension Metadata -- -- [__Last Modified Date__] -- 2022-02-21 -- -- [__Interactions and External Dependencies__] -- -- - This extension requires -- -- -- - This extension provides API support for -- -- -- - Interacts with @VK_KHR_ray_tracing_pipeline@ -- -- - Interacts with @VK_KHR_synchronization2@ -- -- [__Contributors__] -- -- - Stu Smith, AMD -- -- - Tobias Hector, AMD -- -- - Marius Bjorge, Arm -- -- - Tom Olson, Arm -- -- - Yuriy O’Donnell, Epic Games -- -- - Yunpeng Zhu, Huawei -- -- - Andrew Garrard, Imagination -- -- - Dae Kim, Imagination -- -- - Joshua Barczak, Intel -- -- - Lionel Landwerlin, Intel -- -- - Daniel Koch, NVIDIA -- -- - Eric Werness, NVIDIA -- -- - Spencer Fricke, Samsung -- -- == Description -- -- @VK_KHR_ray_tracing_maintenance1@ adds a collection of minor ray tracing -- features, none of which would warrant an entire extension of their own. -- -- The new features are as follows: -- -- - Adds support for the @SPV_KHR_ray_cull_mask@ SPIR-V extension in -- Vulkan. This extension provides access to built-in @CullMaskKHR@ -- shader variable which contains the value of the @OpTrace*@ -- @Cull Mask@ parameter. This new shader variable is accessible in the -- intersection, any-hit, closest-hit and miss shader stages. -- -- - Adds support for a new pipeline stage and access mask built on top -- of @VK_KHR_synchronization2@: -- -- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR' -- to specify execution of -- -- -- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR' -- to specify read access to a -- -- in any shader pipeline stage -- -- - Adds two new acceleration structure query parameters: -- -- - 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR' -- to query the acceleration structure size on the device timeline -- -- - 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR' -- to query the number of bottom level acceleration structure -- pointers for serialization -- -- - Adds an optional new indirect ray tracing dispatch command, -- 'cmdTraceRaysIndirect2KHR', which sources the shader binding table -- parameters as well as the dispatch dimensions from the device. The -- -- feature indicates whether this functionality is supported. -- -- == New Commands -- -- If -- -- is supported: -- -- - 'cmdTraceRaysIndirect2KHR' -- -- == New Structures -- -- - Extending -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', -- 'Vulkan.Core10.Device.DeviceCreateInfo': -- -- - 'PhysicalDeviceRayTracingMaintenance1FeaturesKHR' -- -- If -- -- is supported: -- -- - 'TraceRaysIndirectCommand2KHR' -- -- == New Enum Constants -- -- - 'KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME' -- -- - 'KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION' -- -- - Extending 'Vulkan.Core10.Enums.QueryType.QueryType': -- -- - 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR' -- -- - 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR' -- -- If -- -- is supported: -- -- - Extending -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -- -- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR' -- -- If -- -- and -- -- is supported: -- -- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2': -- -- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR' -- -- == New Built-In Variables -- -- - -- -- == New SPIR-V Capabilities -- -- - -- -- == Issues -- -- None Yet! -- -- == Version History -- -- - Revision 1, 2022-02-21 (Members of the Vulkan Ray Tracing TSG) -- -- - internal revisions -- -- == See Also -- -- 'PhysicalDeviceRayTracingMaintenance1FeaturesKHR' -- -- == Document Notes -- -- For more information, see the -- -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly. module Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 ( PhysicalDeviceRayTracingMaintenance1FeaturesKHR , TraceRaysIndirectCommand2KHR ) where import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct) import Data.Kind (Type) data PhysicalDeviceRayTracingMaintenance1FeaturesKHR instance ToCStruct PhysicalDeviceRayTracingMaintenance1FeaturesKHR instance Show PhysicalDeviceRayTracingMaintenance1FeaturesKHR instance FromCStruct PhysicalDeviceRayTracingMaintenance1FeaturesKHR data TraceRaysIndirectCommand2KHR instance ToCStruct TraceRaysIndirectCommand2KHR instance Show TraceRaysIndirectCommand2KHR instance FromCStruct TraceRaysIndirectCommand2KHR