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_maskSPIR-V extension in Vulkan. This extension provides access to built-inCullMaskKHRshader variable which contains the value of theOpTrace*Cull Maskparameter. 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_KHRto specify execution of acceleration structure copy commandsVK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHRto 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_KHRto query the acceleration structure size on the device timelineVK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHRto 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
rayTracingPipelineTraceRaysIndirect2feature 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_NAMEVK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION- Extending VkQueryType:
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHRVK_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