Skip to content

Commit 2c702e6

Browse files
committed
Remove excess dividers
1 parent a434604 commit 2c702e6

File tree

1 file changed

+0
-52
lines changed

1 file changed

+0
-52
lines changed

proposals/NNNN-triangle-object-positions.md

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ This proposal adds intrinsics that can be called from an Any hit or Closest
1515
hit shader to obtain the positions of the vertices for the triangle that has
1616
been hit.
1717

18-
---
19-
2018
## Motivation
2119

2220
Developers often need to know the positions of the vertices for the triangle
@@ -29,8 +27,6 @@ If developers can access this data from their shader code then this will remove
2927
the need have a duplicate copy of it. In addition, this will provide drivers
3028
with opportunities to optimize the data layout for their implementations.
3129

32-
---
33-
3430
## Proposed solution
3531

3632
Add intrinsics to look up the object-space vertex positions of the triangle for
@@ -41,12 +37,8 @@ For context, see related sections in DirectX Raytracing Specification:
4137
[RayQuery::CandidateTriangleObjectPositions][dxr-rq-can-tri-obj-pos],
4238
[RayQuery::CommittedTriangleObjectPositions][dxr-rq-com-tri-obj-pos].
4339

44-
---
45-
4640
## Detailed design
4741

48-
---
49-
5042
### HLSL Additions
5143

5244
A new built-in structure for returning all three object-space triangle
@@ -160,8 +152,6 @@ undefined. A shader can check for a triangle hit with
160152

161153
Shader model 6.10 is required to use these intrinsics.
162154

163-
---
164-
165155
### Diagnostic Changes
166156

167157
New diagnostics:
@@ -174,8 +164,6 @@ New diagnostics:
174164

175165
> Open Issue: [Use Availability Attributes](#use-availability-attributes)
176166

177-
---
178-
179167
#### Validation Changes
180168

181169
New Validation:
@@ -189,12 +177,8 @@ requirements for DXIL ops will be used.
189177
Existing validation for RayQuery handle will be used.
190178
Existing validation for HitObject handle will be used.
191179

192-
---
193-
194180
### Runtime Additions
195181

196-
---
197-
198182
#### Device Capability
199183

200184
Use of Triangle Object Positions intrinsics require Shader Model 6.10 and
@@ -210,12 +194,8 @@ Use of HitObject intrinsics require Shader Model 6.10 and
210194
> requirement or use of RayQuery or use of HitObject, so no other changes
211195
> are required in the compiler, aside from the shader model requirement.
212196

213-
---
214-
215197
## Testing
216198

217-
---
218-
219199
### Compiler output
220200

221201
* Test AST generation for each new HLSL intrinsic
@@ -225,15 +205,11 @@ Use of HitObject intrinsics require Shader Model 6.10 and
225205
* Use D3DReflect test to verify min shader model of 6.10 with each intrinsic
226206
usage for library target.
227207

228-
---
229-
230208
### Diagnostics
231209

232210
* Test shader model diagnostic for each new HLSL intrinsic.
233211
* Test shader stage diagnostic for `TriangleObjectPositions` intrinsic.
234212

235-
---
236-
237213
### DXIL Additions
238214

239215
```llvm
@@ -288,8 +264,6 @@ for the shader invocation.
288264
However, the new RayQuery methods must be `readonly` because they read from
289265
RayQuery state, which is impacted by various other RayQuery methods.
290266

291-
---
292-
293267
### SPIR-V Mapping
294268

295269
The `TriangleObjectPositions()` HLSL intrinsic can be implemented against the
@@ -316,20 +290,14 @@ opcode, with `Intersection` set to `RayQueryCandidateIntersectionKHR` for
316290
`CandidateTriangleObjectPositions`, and `Intersection` set to
317291
`RayQueryCommittedIntersectionKHR` for `CommittedTriangleObjectPositions`.
318292

319-
---
320-
321293
#### Runtime information
322294

323295
Use of any of these new DXIL ops will set the
324296
`RuntimeDataFunctionInfo::MinShaderTarget` shader model to a minimum of 6.10 in
325297
the `RDAT` part for the calling function.
326298

327-
---
328-
329299
## Testing
330300

331-
---
332-
333301
### Validation
334302

335303
* Test shader model requirement for all DXIL ops.
@@ -338,19 +306,13 @@ the `RDAT` part for the calling function.
338306
* Test non-constant argument validation with each DXIL op.
339307
* Test out-of-range argument validation with each DXIL op.
340308

341-
---
342-
343309
### Execution
344310

345311
Testing for triangle object position operations will be added to the existing
346312
Raytracing HLK tests.
347313

348-
---
349-
350314
## Resolved Issues
351315

352-
---
353-
354316
### Return Type
355317

356318
Other approaches have been proposed for the return type of this intrinsic:
@@ -388,8 +350,6 @@ Other approaches have been proposed for the return type of this intrinsic:
388350

389351
**Resolution**: Return built-in struct containing all three positions.
390352

391-
---
392-
393353
### Intrinsic Naming
394354

395355
`TriangleObjectPositions` doesn't match the name used in SPIR-V, which is more
@@ -398,8 +358,6 @@ like `HitTriangleVertexPositions`. Should we adjust naming to align?
398358
**Resolution**: `TriangleObjectPositions` aligns with our conventions for related
399359
intrinsics.
400360

401-
---
402-
403361
### Share OpCodeClass
404362

405363
Should RayQuery DXIL methods share OpCodeClass for the DXIL ops?
@@ -415,8 +373,6 @@ opcode classes for no good reason.
415373

416374
**Resolution**: Use separate OpCodeClass for consistency with related ops.
417375

418-
---
419-
420376
### Use Availability Attributes
421377

422378
Instead of custom diagnostics for these functions, we could potentially use
@@ -427,19 +383,13 @@ on-demand in a custom way.
427383

428384
**Resolution**: This seems worthwhile to investigate in Clang but out of scope for DXC.
429385

430-
---
431-
432386
## Open Issues
433387

434-
---
435-
436388
### Built-in struct return type
437389

438390
`BuiltInTrianglePositions` isn't necessarily the best name for the struct,
439391
so suggestions for a better name are welcome.
440392

441-
---
442-
443393
### Return type for DXIL ops
444394

445395
There is some open debate about the return type used for DXIL operations.
@@ -461,8 +411,6 @@ A couple other options:
461411

462412
**Proposed Resolution**: Keep DXIL op scalar for consistency with other ops.
463413

464-
---
465-
466414
## Acknowledgments
467415

468416
* Amar Patel

0 commit comments

Comments
 (0)