VK_KHR_ray_tracing_maintenance1(3)

# VK_KHR_ray_tracing_maintenance1(3) Manual Page

## Name

VK_KHR_ray_tracing_maintenance1 - device extension

Loading… please wait.

## Registered Extension Number

387

## Revision

1

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_acceleration_structure

## Contact

- Daniel Koch dgkoch

## Other Extension Metadata

Last Modified Date

  2022-02-21

Interactions and External Dependencies

  - This extension requires `SPV_KHR_ray_cull_mask`

  - 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-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`:

  - `VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR` to specify execution of acceleration structure copy commands

  - `VK_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 timeline

  - `VK_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:

- vkCmdTraceRaysIndirect2KHR

## New Structures

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR

If VK_KHR_ray_tracing_pipeline is supported:

- VkTraceRaysIndirectCommand2KHR

## 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 is supported:

- Extending VkPipelineStageFlagBits2:

  - `VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR`

If VK_KHR_synchronization2 and VK_KHR_ray_tracing_pipeline is supported:

- Extending VkAccessFlagBits2:

  - `VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR`

## New Built-In Variables

- `CullMaskKHR`

## New SPIR-V Capabilities

- `RayCullMaskKHR`

## Issues

None Yet!

## Version History

- Revision 1, 2022-02-21 (Members of the Vulkan Ray Tracing TSG)

  - internal revisions

## See Also

VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR

## Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

## Copyright

Copyright 2014-2023 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0