Skip to content

Commit 8d81a3d

Browse files
committed
enum value change, no behavior change
1 parent f625c91 commit 8d81a3d

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

d3d/Raytracing2.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# DirectX Raytracing (DXR) Functional Spec, Part 2 <!-- omit in toc -->
22

3-
v0.21 4/14/2026
3+
v0.22 4/16/2026
44

55
---
66

@@ -883,8 +883,8 @@ typedef enum D3D12_RTAS_OPERATION_FLAGS
883883
D3D12_RTAS_OPERATION_FLAG_NONE = 0x0,
884884
D3D12_RTAS_OPERATION_FLAG_FAST_TRACE = 0x4,
885885
D3D12_RTAS_OPERATION_FLAG_FAST_OPERATION = 0x8,
886+
D3D12_RTAS_OPERATION_FLAG_ALLOW_DATA_ACCESS = 0x100,
886887
D3D12_RTAS_OPERATION_FLAG_ALLOW_OMM = 0x400,
887-
D3D12_RTAS_OPERATION_FLAG_ALLOW_DATA_ACCESS = 0x800,
888888
} D3D12_RTAS_OPERATION_FLAGS;
889889
```
890890

@@ -895,8 +895,8 @@ Value | Defi
895895
`D3D12_RTAS_OPERATION_FLAG_NONE` | No options specified for the operation.
896896
`D3D12_RTAS_OPERATION_FLAG_FAST_TRACE` | Allow the Operation to take longer in return for improving the trace performance of the resulting objects. Compatible with all other flags except for `D3D12_RTAS_OPERATION_FLAG_FAST_OPERATION`.
897897
`D3D12_RTAS_OPERATION_FLAG_FAST_OPERATION` | Sacrifice trace performance of resulting objects in return for reduced execution time of the Operation. Compatible with all other flags except for `D3D12_RTAS_OPERATION_FLAG_FAST_TRACE`.
898-
`D3D12_RTAS_OPERATION_FLAG_ALLOW_OMM` | Specify that the operation will interact with Cluster BLAS, CLAS or Templates that reference OMMs. All Operation Types & Modes require this field to be set to correctly support interaction with objects that contain OMMs. This flag is compatible with all other flags.
899898
`D3D12_RTAS_OPERATION_FLAG_ALLOW_DATA_ACCESS` | <p>For clusters, allows the use of [TriangleObjectPositions()](raytracing.md#triangleobjectpositions) in [AnyHit](raytracing.md#any-hit-shader) or [ClosestHit](raytracing.md#closest-hit-shader) shaders, or in [RayQuery](raytracing.md#rayquery): [RayQuery::CandidateTriangleObjectPositions()](raytracing.md#rayquery-candidatetriangleobjectpositions) or [RayQuery::CommittedTriangleObjectPositions()](raytracing.md#rayquery-committedtriangleobjectpositions). This turns on access for all CLAS builds and CLAS template builds. Ignored for CLAS template instantiation which just inherit the choice from the template.</p><p>For individual clusters in the overall operation that set `ALLOW_DATA_ACCESS`, access can be disallowed for via [D3D12_RTAS_CLUSTER_OPERATION_CLAS_FLAG_DISALLOW_DATA_ACCESS](#d3d12_rtas_cluster_operation_clas_flags) for more granular control.</p><p>Starting with a global `ALLOW` ensures prebuild size calculations can be sufficiently conservative: some implementations may need extra storage where `TriangleObjectPositions` is allowed.</p><p>`D3D12_RTAS_OPERATION_FLAG_ALLOW_DATA_ACCESS` is not allowed for cluster BLAS: instead, all CLAS referenced by a given cluster BLAS must have consistently chosen to allow data access or not when they were built, otherwise behavior is undefined.</p>
899+
`D3D12_RTAS_OPERATION_FLAG_ALLOW_OMM` | Specify that the operation will interact with Cluster BLAS, CLAS or Templates that reference OMMs. All Operation Types & Modes require this field to be set to correctly support interaction with objects that contain OMMs. This flag is compatible with all other flags.
900900

901901
Used by:
902902
- [D3D12_RTAS_CLAS_INPUTS_DESC](#d3d12_rtas_clas_inputs_desc) - `Flags` member
@@ -2237,3 +2237,4 @@ v0.18|3/16/2026|<li>Replaced C++ bitfields with plain `UINT` members (to be manu
22372237
v0.19|3/17/2026|<li>Moved `D3D12_RTAS_CLUSTER_OPERATION_CLAS_FLAG_ALLOW_DATA_ACCESS` from [D3D12_RTAS_CLUSTER_OPERATION_CLAS_FLAGS](#d3d12_rtas_cluster_operation_clas_flags) to [D3D12_RTAS_OPERATION_FLAGS](#d3d12_rtas_operation_flags) as `D3D12_RTAS_OPERATION_FLAG_ALLOW_DATA_ACCESS`. This flag applies to CLAS builds and CLAS template builds; it is ignored for CLAS template instantiation, which inherits the allow/disallow state from the template. It not allowed for cluster BLAS builds; instead, all CLAS referenced by a given cluster BLAS must have consistently chosen to allow data access or not when they were built.</li><li>Added `D3D12_RTAS_CLUSTER_OPERATION_CLAS_FLAG_DISALLOW_DATA_ACCESS` to [D3D12_RTAS_CLUSTER_OPERATION_CLAS_FLAGS](#d3d12_rtas_cluster_operation_clas_flags) to selectively disable data access for individual cluster builds within an operation that has `ALLOW_DATA_ACCESS` globally set.</li>
22382238
v0.20|3/18/2026|<li>In [Compressed1 bitfield helper macros](#compressed1-bitfield-helper-macros), macro cleanup and bugfixes: removed unnecessary mask after left shifting; `UINT(val)` instead of `(UINT)(val)` (less verbose); use sign extend on right shift - support is ubiquitous enough (old macro also incorrectly masked result)</li>
22392239
v0.21|4/14/2026|<li>In [D3D12_RTAS_CLUSTER_OPERATION_CLAS_FLAGS](#d3d12_rtas_cluster_operation_clas_flags), for `D3D12_RTAS_CLUSTER_OPERATION_CLAS_FLAG_ALLOW_DISABLE_OMMS`, clarified that regardless of whether this flag is set, OMMs can always be disabled per-cluster by setting `OpacityMicromapArray` and `OpacityMicromapIndexBuffer` to NULL in [D3D12_RTAS_OPERATION_BUILD_CLAS_FROM_TRIANGLES_ARGS](#d3d12_rtas_operation_build_clas_from_triangles_args).</li><li>In [D3D12_RTAS_OPERATION_BUILD_CLAS_FROM_TRIANGLES_ARGS](#d3d12_rtas_operation_build_clas_from_triangles_args), updated `OpacityMicromapArray` and `OpacityMicromapIndexBuffer` so that OMMs are disabled only when both are NULL (previously only `OpacityMicromapArray` being NULL was required). Similarly, [D3D12_RTAS_OPERATION_FLAG_ALLOW_OMM](#d3d12_rtas_operation_flags) is required when either is non-NULL. For `OpacityMicromapIndexBuffer`, clarified that if the entire index buffer uses only special index values, `OpacityMicromapArray` can be null since it won't be referenced.</li>
2240+
v0.22|4/16/2026|<li>In [D3D12_RTAS_OPERATION_FLAGS](#d3d12_rtas_operation_flags) switched `D3D12_RTAS_OPERATION_FLAG_ALLOW_DATA_ACCESS` from `0x800` to `0x100` to align with `D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_DATA_ACCESS` in DXR1's [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_DATA_ACCESS](raytracing.md#d3d12_raytracing_acceleration_structure_build_flags)</li>

0 commit comments

Comments
 (0)