1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
// Copyright 2021-2023 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 <<acceleration-structure-copying, acceleration
structure copy commands>>
** ename:VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR to specify read
access to a <<shader-binding-table, shader binding table>> 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 <<features-rayTracingPipelineTraceRaysIndirect2,
pname:rayTracingPipelineTraceRaysIndirect2>> feature indicates whether
this functionality is supported.
include::{generated}/interfaces/VK_KHR_ray_tracing_maintenance1.adoc[]
=== New Built-In Variables
* <<interfaces-builtin-variables-cullmask,code:CullMaskKHR>>
=== New SPIR-V Capabilities
* <<spirvenv-capabilities-table-RayCullMaskKHR, code:RayCullMaskKHR>>
=== Issues
None Yet!
=== Version History
* Revision 1, 2022-02-21 (Members of the Vulkan Ray Tracing TSG)
** internal revisions
|