VK_KHR_ray_tracing_maintenance1
Other Extension Metadata
Last Modified Date
2022-02-21
Interactions and External Dependencies
- This extension provides API support for
GLSL_EXT_ray_cull_mask
- 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-inCullMaskKHR
shader variable which contains the value of theOpTrace*
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:
VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR
to specify execution of acceleration structure copy commandsVK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR
to specify read access to a shader binding table in any shader pipeline stage
- Adds two new acceleration structure query parameters:
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR
to query the acceleration structure size on the device timelineVK_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,
vkCmdTraceRaysIndirect2KHR, which sources the shader binding table
parameters as well as the dispatch dimensions from the device.
The
rayTracingPipelineTraceRaysIndirect2
feature indicates whether this functionality is supported.
New Commands
If VK_KHR_ray_tracing_pipeline is supported:
New Structures
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
If VK_KHR_ray_tracing_pipeline is supported:
New Enum Constants
VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME
VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION
- Extending VkQueryType:
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR
- Extending VkStructureType:
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR
If VK_KHR_synchronization2 or Vulkan Version 1.3 and VK_KHR_ray_tracing_pipeline is supported:
- Extending VkAccessFlagBits2:
VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR
If VK_EXT_device_generated_commands is supported:
- Extending VkIndirectCommandsTokenTypeEXT:
VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT
If VK_KHR_synchronization2 or Vulkan Version 1.3 is supported:
- Extending VkPipelineStageFlagBits2:
VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_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