Skip to content

Commit aa889e9

Browse files
committed
Auto-name reserved DXIL ops with stable hex opcode
Switching DXIL ops to reserved will become common when they are retired from experimental. This change makes it trivial to do so without depending on or changing other reserved op names or numbers elsewhere.
1 parent 997e2f4 commit aa889e9

File tree

4 files changed

+209
-212
lines changed

4 files changed

+209
-212
lines changed

docs/DXIL.rst

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2342,18 +2342,18 @@ ID Name Description
23422342
223 TextureGatherRaw Gather raw elements from 4 texels with no type conversions (SRV type is constrained)
23432343
224 SampleCmpLevel samples a texture and compares a single component against the specified comparison value
23442344
225 TextureStoreSample stores texel data at specified sample index
2345-
226 Reserved0 reserved
2346-
227 Reserved1 reserved
2347-
228 Reserved2 reserved
2348-
229 Reserved3 reserved
2349-
230 Reserved4 reserved
2350-
231 Reserved5 reserved
2351-
232 Reserved6 reserved
2352-
233 Reserved7 reserved
2353-
234 Reserved8 reserved
2354-
235 Reserved9 reserved
2355-
236 Reserved10 reserved
2356-
237 Reserved11 reserved
2345+
226 Reserved_0x000000E2 reserved
2346+
227 Reserved_0x000000E3 reserved
2347+
228 Reserved_0x000000E4 reserved
2348+
229 Reserved_0x000000E5 reserved
2349+
230 Reserved_0x000000E6 reserved
2350+
231 Reserved_0x000000E7 reserved
2351+
232 Reserved_0x000000E8 reserved
2352+
233 Reserved_0x000000E9 reserved
2353+
234 Reserved_0x000000EA reserved
2354+
235 Reserved_0x000000EB reserved
2355+
236 Reserved_0x000000EC reserved
2356+
237 Reserved_0x000000ED reserved
23572357
238 AllocateNodeOutputRecords returns a handle for the output records
23582358
239 GetNodeRecordPtr retrieve node input/output record pointer in address space 6
23592359
240 IncrementOutputCount Select the next logical output count for an EmptyNodeOutput for the whole group or per thread.
@@ -2375,9 +2375,9 @@ ID Name Description
23752375
256 StartVertexLocation returns the BaseVertexLocation from DrawIndexedInstanced or StartVertexLocation from DrawInstanced
23762376
257 StartInstanceLocation returns the StartInstanceLocation from Draw*Instanced
23772377
258 AllocateRayQuery2 allocates space for RayQuery and return handle
2378-
259 ReservedA0 reserved
2379-
260 ReservedA1 reserved
2380-
261 ReservedA2 reserved
2378+
259 Reserved_0x00000103 reserved
2379+
260 Reserved_0x00000104 reserved
2380+
261 Reserved_0x00000105 reserved
23812381
262 HitObject_TraceRay Analogous to TraceRay but without invoking CH/MS and returns the intermediate state as a HitObject
23822382
263 HitObject_FromRayQuery Creates a new HitObject representing a committed hit from a RayQuery
23832383
264 HitObject_FromRayQueryWithAttrs Creates a new HitObject representing a committed hit from a RayQuery and committed attributes
@@ -2406,19 +2406,19 @@ ID Name Description
24062406
287 HitObject_SetShaderTableIndex Returns a HitObject with updated shader table index
24072407
288 HitObject_LoadLocalRootTableConstant Returns the root table constant for this HitObject and offset
24082408
289 HitObject_Attributes Returns the attributes set for this HitObject
2409-
290 ReservedB28 reserved
2410-
291 ReservedB29 reserved
2411-
292 ReservedB30 reserved
2412-
293 ReservedC0 reserved
2413-
294 ReservedC1 reserved
2414-
295 ReservedC2 reserved
2415-
296 ReservedC3 reserved
2416-
297 ReservedC4 reserved
2417-
298 ReservedC5 reserved
2418-
299 ReservedC6 reserved
2419-
300 ReservedC7 reserved
2420-
301 ReservedC8 reserved
2421-
302 ReservedC9 reserved
2409+
290 Reserved_0x00000122 reserved
2410+
291 Reserved_0x00000123 reserved
2411+
292 Reserved_0x00000124 reserved
2412+
293 Reserved_0x00000125 reserved
2413+
294 Reserved_0x00000126 reserved
2414+
295 Reserved_0x00000127 reserved
2415+
296 Reserved_0x00000128 reserved
2416+
297 Reserved_0x00000129 reserved
2417+
298 Reserved_0x0000012A reserved
2418+
299 Reserved_0x0000012B reserved
2419+
300 Reserved_0x0000012C reserved
2420+
301 Reserved_0x0000012D reserved
2421+
302 Reserved_0x0000012E reserved
24222422
303 RawBufferVectorLoad reads from a raw buffer and structured buffer
24232423
304 RawBufferVectorStore writes to a RWByteAddressBuffer or RWStructuredBuffer
24242424
305 MatVecMul Multiplies a MxK dimension matrix and a K sized input vector
@@ -3095,9 +3095,9 @@ ID Name Description
30953095
2147483675 LinAlgMatrixAccumulateToDescriptor accumulates a matrix to a RWByteAddressBuffer
30963096
2147483676 LinAlgMatrixAccumulateToMemory accumulates a matrix to groupshared memory
30973097
2147483677 LinAlgMatrixOuterProduct Outer products an M sized vector and a N sized vector producing an MxN matrix
3098-
2147483678 ReservedD1 reserved
3099-
2147483679 ReservedD2 reserved
3100-
2147483680 ReservedD3 reserved
3098+
2147483678 Reserved_0x8000001E reserved
3099+
2147483679 Reserved_0x8000001F reserved
3100+
2147483680 Reserved_0x80000020 reserved
31013101
2147483681 DebugBreak triggers a breakpoint if a debugger is attached
31023102
2147483682 IsDebuggerPresent returns true if a debugger is attached
31033103
========== ======================================== ===================================================================================================================

include/dxc/DXIL/DxilConstants.h

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -524,9 +524,9 @@ static const OpCodeTableID TableID = OpCodeTableID::ExperimentalOps;
524524
// Enumeration for ExperimentalOps DXIL operations
525525
enum class OpCode : unsigned {
526526
//
527-
ReservedD1 = 30, // reserved
528-
ReservedD2 = 31, // reserved
529-
ReservedD3 = 32, // reserved
527+
Reserved_0x8000001E = 30, // reserved
528+
Reserved_0x8000001F = 31, // reserved
529+
Reserved_0x80000020 = 32, // reserved
530530

531531
// Debugging
532532
DebugBreak = 33, // triggers a breakpoint if a debugger is attached
@@ -619,34 +619,34 @@ static const unsigned NumOpCodeTables = 2;
619619
// Enumeration for CoreOps DXIL operations
620620
enum class OpCode : unsigned {
621621
//
622-
Reserved0 = 226, // reserved
623-
Reserved1 = 227, // reserved
624-
Reserved10 = 236, // reserved
625-
Reserved11 = 237, // reserved
626-
Reserved2 = 228, // reserved
627-
Reserved3 = 229, // reserved
628-
Reserved4 = 230, // reserved
629-
Reserved5 = 231, // reserved
630-
Reserved6 = 232, // reserved
631-
Reserved7 = 233, // reserved
632-
Reserved8 = 234, // reserved
633-
Reserved9 = 235, // reserved
634-
ReservedA0 = 259, // reserved
635-
ReservedA1 = 260, // reserved
636-
ReservedA2 = 261, // reserved
637-
ReservedB28 = 290, // reserved
638-
ReservedB29 = 291, // reserved
639-
ReservedB30 = 292, // reserved
640-
ReservedC0 = 293, // reserved
641-
ReservedC1 = 294, // reserved
642-
ReservedC2 = 295, // reserved
643-
ReservedC3 = 296, // reserved
644-
ReservedC4 = 297, // reserved
645-
ReservedC5 = 298, // reserved
646-
ReservedC6 = 299, // reserved
647-
ReservedC7 = 300, // reserved
648-
ReservedC8 = 301, // reserved
649-
ReservedC9 = 302, // reserved
622+
Reserved_0x000000E2 = 226, // reserved
623+
Reserved_0x000000E3 = 227, // reserved
624+
Reserved_0x000000E4 = 228, // reserved
625+
Reserved_0x000000E5 = 229, // reserved
626+
Reserved_0x000000E6 = 230, // reserved
627+
Reserved_0x000000E7 = 231, // reserved
628+
Reserved_0x000000E8 = 232, // reserved
629+
Reserved_0x000000E9 = 233, // reserved
630+
Reserved_0x000000EA = 234, // reserved
631+
Reserved_0x000000EB = 235, // reserved
632+
Reserved_0x000000EC = 236, // reserved
633+
Reserved_0x000000ED = 237, // reserved
634+
Reserved_0x00000103 = 259, // reserved
635+
Reserved_0x00000104 = 260, // reserved
636+
Reserved_0x00000105 = 261, // reserved
637+
Reserved_0x00000122 = 290, // reserved
638+
Reserved_0x00000123 = 291, // reserved
639+
Reserved_0x00000124 = 292, // reserved
640+
Reserved_0x00000125 = 293, // reserved
641+
Reserved_0x00000126 = 294, // reserved
642+
Reserved_0x00000127 = 295, // reserved
643+
Reserved_0x00000128 = 296, // reserved
644+
Reserved_0x00000129 = 297, // reserved
645+
Reserved_0x0000012A = 298, // reserved
646+
Reserved_0x0000012B = 299, // reserved
647+
Reserved_0x0000012C = 300, // reserved
648+
Reserved_0x0000012D = 301, // reserved
649+
Reserved_0x0000012E = 302, // reserved
650650

651651
// Amplification shader instructions
652652
DispatchMesh = 173, // Amplification shader intrinsic DispatchMesh
@@ -1351,12 +1351,12 @@ enum class OpCode : unsigned {
13511351
ExperimentalOps,
13521352
LinAlgMatrixOuterProduct), // Outer products an M sized vector and a N
13531353
// sized vector producing an MxN matrix
1354-
// ReservedD1 = 0x8000001E, 2147483678U, -2147483618
1355-
EXP_OPCODE(ExperimentalOps, ReservedD1), // reserved
1356-
// ReservedD2 = 0x8000001F, 2147483679U, -2147483617
1357-
EXP_OPCODE(ExperimentalOps, ReservedD2), // reserved
1358-
// ReservedD3 = 0x80000020, 2147483680U, -2147483616
1359-
EXP_OPCODE(ExperimentalOps, ReservedD3), // reserved
1354+
// Reserved_0x8000001E = 0x8000001E, 2147483678U, -2147483618
1355+
EXP_OPCODE(ExperimentalOps, Reserved_0x8000001E), // reserved
1356+
// Reserved_0x8000001F = 0x8000001F, 2147483679U, -2147483617
1357+
EXP_OPCODE(ExperimentalOps, Reserved_0x8000001F), // reserved
1358+
// Reserved_0x80000020 = 0x80000020, 2147483680U, -2147483616
1359+
EXP_OPCODE(ExperimentalOps, Reserved_0x80000020), // reserved
13601360
// DebugBreak = 0x80000021, 2147483681U, -2147483615
13611361
EXP_OPCODE(ExperimentalOps,
13621362
DebugBreak), // triggers a breakpoint if a debugger is attached

0 commit comments

Comments
 (0)