Skip to content

Commit a6f032c

Browse files
committed
Additional PR feedback
1 parent 30b77a3 commit a6f032c

File tree

1 file changed

+9
-44
lines changed

1 file changed

+9
-44
lines changed

proposals/NNNN-clustered-geometry.md

Lines changed: 9 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@ geometry (among other topics).
2626
How clustered geometry gets exposed in D3D overall is to be determined but this document is
2727
certainly a part: a proposal for the HLSL operations needed for clustered geometry.
2828

29-
30-
---
31-
3229
## Motivation
3330

3431
Clustered Geometry refers to a building block for Bottom Level Acceleration Structures
@@ -41,12 +38,8 @@ This isn't an index into the clusters in a given BLAS but rather an ID assigned
4138
the user for each cluster in a BLAS. Different BLASs could reuse simmilar building blocks, and
4239
thus share cluster ID.
4340

44-
---
45-
4641
## HLSL
4742

48-
---
49-
5043
### Enums
5144

5245
```C
@@ -62,14 +55,10 @@ Value | Definition
6255
----- | ----
6356
`CLUSTER_ID_INVALID` | Returned if a BLAS was intersected that was not constructed from CLAS
6457

65-
---
66-
6758
### DXR 1.0 System Value Intrinsics
6859

6960
A new DXR System Value Intrinsic is added to support fetching the `ClusterID` of an intersected CLAS.
7061

71-
---
72-
7362
#### ClusterID
7463

7564
```C
@@ -83,19 +72,15 @@ is returned.
8372
The following table shows which shaders can access it:
8473
| **values \\ shaders** | ray generation | intersection | any hit | closest hit | miss | callable |
8574
|:---------------------------------------------------------:|:--------------:|:------------:|:-------:|:-----------:|:----:|:--------:|
86-
| *Primitive/object space system values:* | | | | | | |
87-
| uint [ClusterID()](#clusterid) | | | \* | \* | | |
88-
89-
---
75+
| *Primitive/object space system values:* | | | | | | |
76+
| uint [ClusterID()](#clusterid) | | | \* | \* | | |
9077

9178
## Extension to DXR 1.1 RayQuery API
9279

9380
New intrinsics [CandidateClusterID()](#rayquery-candidateclusterid) and
9481
[CommittedClusterID()](#rayquery-committedclusterid) are added to `RayQuery`.
9582
Behavior of all other intrinsics is unchanged.
9683

97-
---
98-
9984
### RayQuery intrinsics
10085

10186
The following table lists intrinsics available when
@@ -106,10 +91,10 @@ depending on the current [CommittedStatus()](https://github.com/microsoft/Direct
10691
(i.e. what type of hit has been committed yet, if any) - this is further
10792
clarified in another table further below.
10893

109-
| **Intrinsic** \ **CandidateType()** | `HIT_CANDIDATE_NON_OPAQUE_TRIANGLE` | `HIT_CANDIDATE_PROCEDURAL_PRIMITIVE`
110-
|:--------------|:-----------:|:-----------:|
111-
| uint [CandidateClusterID()](#rayquery-candidateclusterid)| \* | |
112-
| uint [CommittedClusterID()](#rayquery-committedclusterid)| \* | |
94+
| **Intrinsic** \ **CandidateType()** | `HIT_CANDIDATE_NON_OPAQUE_TRIANGLE` | `HIT_CANDIDATE_PROCEDURAL_PRIMITIVE` |
95+
|:---------------------------------------------------------|:-----------------------------------:|:------------------------------------:|
96+
| uint [CandidateClusterID()](#rayquery-candidateclusterid)| \* | |
97+
| uint [CommittedClusterID()](#rayquery-committedclusterid)| \* | |
11398

11499
The following table lists intrinsics available depending on the current
115100
[COMMITTED_STATUS](https://github.com/microsoft/DirectX-Specs/blob/master/d3d/Raytracing.md#committed_status) (i.e. what type of
@@ -119,11 +104,9 @@ hit has been committed, if any). This applies regardless of whether
119104
complete). If `TRUE`, additional methods than those shown below are
120105
available (see the above table).
121106

122-
| **Intrinsic** \ **CommittedStatus()** | `COMMITTED_TRIANGLE_HIT` | `COMMITTED_PROCEDURAL_PRIMITIVE_HIT` | `COMMITTED_NOTHING` |
123-
|:--------------|:-----------:|:-----------:|:-----------:|
124-
| uint [CommittedClusterID()](#rayquery-committedclusterid)| \* | | |
125-
126-
---
107+
| **Intrinsic** \ **CommittedStatus()** | `COMMITTED_TRIANGLE_HIT` | `COMMITTED_PROCEDURAL_PRIMITIVE_HIT` | `COMMITTED_NOTHING` |
108+
|:---------------------------------------------------------|:------------------------:|:------------------------------------:|:-------------------:|
109+
| uint [CommittedClusterID()](#rayquery-committedclusterid)| \* | | |
127110

128111
#### RayQuery CandidateClusterID
129112

@@ -139,8 +122,6 @@ uint RayQuery::CandidateClusterID();
139122
call.
140123
Lowers to [RayQuery_CandidateClusterID DXIL Opcode](#rayquery_candidateclusterid-dxil-opcode).
141124

142-
---
143-
144125
#### RayQuery CommittedClusterID
145126

146127
The user-provided `ClusterID` of the intersected CLAS, if a Cluster BLAS was
@@ -155,8 +136,6 @@ uint RayQuery::CommittedClusterID();
155136
call.
156137
Lowers to [RayQuery_CommittedClusterID DXIL Opcode](#rayquery_committedclusterid-dxil-opcode).
157138

158-
---
159-
160139
### Extension to the DXR 1.2 HitObject API
161140

162141
Cluster Geometries are also supported with the HitObject feature.
@@ -173,8 +152,6 @@ Returns `CLUSTER_ID_INVALID` if a non-Cluster BLAS was intersected or if
173152
the `HitObject` does not encode a hit.
174153
Lowers to [HitObject_ClusterID DXIL Opcode](#hitobject_clusterid-dxil-opcode).
175154

176-
---
177-
178155
### Diagnostic Changes
179156

180157
This proposal does not introduce or remove diagnostics or warnings.
@@ -194,8 +171,6 @@ This proposal does not introduce or remove diagnostics or warnings.
194171

195172
* Expected error when ClusterID builtins called from unsupported shader kinds.
196173

197-
---
198-
199174
### DXIL
200175

201176
| Opcode | Opcode name | Description
@@ -205,8 +180,6 @@ XXX + 1 | RayQuery_CandidateClusterID | Returns the candidate hit cluster ID
205180
XXX + 2 | RayQuery_CommittedClusterID | Returns the committed hit cluster ID
206181
XXX + 2 | HitObject_ClusterID | Returns the cluster ID of this committed hit
207182

208-
---
209-
210183
#### ClusterID DXIL Opcode
211184

212185
```DXIL
@@ -217,8 +190,6 @@ declare i32 @dx.op.clusterID(
217190

218191
Valid shader kinds defined in [ClusterID HLSL](#clusterid).
219192

220-
---
221-
222193
#### RayQuery_CandidateClusterID DXIL Opcode
223194

224195
```DXIL
@@ -231,8 +202,6 @@ declare i32 @dx.op.rayQuery_StateScalar.i32(
231202
Validation errors:
232203
* Validate that the RayQuery handle is not `undef`.
233204

234-
---
235-
236205
#### RayQuery_CommittedClusterID DXIL Opcode
237206

238207
```DXIL
@@ -245,8 +214,6 @@ declare i32 @dx.op.rayQuery_StateScalar.i32(
245214
Validation errors:
246215
* Validate that the RayQuery handle is not `undef`.
247216

248-
---
249-
250217
#### HitObject_ClusterID DXIL Opcode
251218

252219
```DXIL
@@ -259,8 +226,6 @@ declare i32 @dx.op.hitObject_StateScalar.i32(
259226
Validation errors:
260227
* Validate that the HitObject is not `undef`.
261228

262-
---
263-
264229
### Diagnostic Changes
265230

266231
This proposal does not introduce or remove diagnostics or warnings.

0 commit comments

Comments
 (0)