// Copyright 2021-2022 The Khronos Group, Inc. // // SPDX-License-Identifier: CC-BY-4.0 include::{generated}/meta/{refprefix}VK_KHR_ray_tracing_maintenance1.adoc[] === Other Extension Metadata *Last Modified Date*:: 2022-02-21 *Interactions and External Dependencies*:: - This extension requires {spirv}/KHR/SPV_KHR_ray_cull_mask.html[`SPV_KHR_ray_cull_mask`] - This extension provides API support for {GLSLregistry}/ext/GLSL_EXT_ray_cull_mask.txt[`GLSL_EXT_ray_cull_mask`] - Interacts with `apiext:VK_KHR_ray_tracing_pipeline` - Interacts with `apiext: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 code:CullMaskKHR shader variable which contains the value of the code: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 `apiext:VK_KHR_synchronization2`: ** ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR to specify execution of <> ** ename:VK_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: ** ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR to query the acceleration structure size on the device timeline ** ename: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, flink:vkCmdTraceRaysIndirect2KHR, which sources the shader binding table parameters as well as the dispatch dimensions from the device. The <> feature indicates whether this functionality is supported. include::{generated}/interfaces/VK_KHR_ray_tracing_maintenance1.adoc[] === 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