@@ -475,18 +475,62 @@ inline bool IsFeedbackTexture(DXIL::ResourceKind ResourceKind) {
475475// Enumeration for operations specified by DXIL
476476enum class OpCode : unsigned {
477477 //
478- Reserved0 = 226 , // Reserved
479- Reserved1 = 227 , // Reserved
480- Reserved10 = 236 , // Reserved
481- Reserved11 = 237 , // Reserved
482- Reserved2 = 228 , // Reserved
483- Reserved3 = 229 , // Reserved
484- Reserved4 = 230 , // Reserved
485- Reserved5 = 231 , // Reserved
486- Reserved6 = 232 , // Reserved
487- Reserved7 = 233 , // Reserved
488- Reserved8 = 234 , // Reserved
489- Reserved9 = 235 , // Reserved
478+ Reserved0 = 226 , // Reserved
479+ Reserved1 = 227 , // Reserved
480+ Reserved10 = 236 , // Reserved
481+ Reserved11 = 237 , // Reserved
482+ Reserved2 = 228 , // Reserved
483+ Reserved3 = 229 , // Reserved
484+ Reserved4 = 230 , // Reserved
485+ Reserved5 = 231 , // Reserved
486+ Reserved6 = 232 , // Reserved
487+ Reserved7 = 233 , // Reserved
488+ Reserved8 = 234 , // Reserved
489+ Reserved9 = 235 , // Reserved
490+ ReservedA0 = 259 , // reserved
491+ ReservedA1 = 260 , // reserved
492+ ReservedA2 = 261 , // reserved
493+ ReservedB0 = 262 , // reserved
494+ ReservedB1 = 263 , // reserved
495+ ReservedB10 = 272 , // reserved
496+ ReservedB11 = 273 , // reserved
497+ ReservedB12 = 274 , // reserved
498+ ReservedB13 = 275 , // reserved
499+ ReservedB14 = 276 , // reserved
500+ ReservedB15 = 277 , // reserved
501+ ReservedB16 = 278 , // reserved
502+ ReservedB17 = 279 , // reserved
503+ ReservedB18 = 280 , // reserved
504+ ReservedB19 = 281 , // reserved
505+ ReservedB2 = 264 , // reserved
506+ ReservedB20 = 282 , // reserved
507+ ReservedB21 = 283 , // reserved
508+ ReservedB22 = 284 , // reserved
509+ ReservedB23 = 285 , // reserved
510+ ReservedB24 = 286 , // reserved
511+ ReservedB25 = 287 , // reserved
512+ ReservedB26 = 288 , // reserved
513+ ReservedB27 = 289 , // reserved
514+ ReservedB28 = 290 , // reserved
515+ ReservedB29 = 291 , // reserved
516+ ReservedB3 = 265 , // reserved
517+ ReservedB30 = 292 , // reserved
518+ ReservedB4 = 266 , // reserved
519+ ReservedB5 = 267 , // reserved
520+ ReservedB6 = 268 , // reserved
521+ ReservedB7 = 269 , // reserved
522+ ReservedB8 = 270 , // reserved
523+ ReservedB9 = 271 , // reserved
524+ ReservedC0 = 293 , // reserved
525+ ReservedC1 = 294 , // reserved
526+ ReservedC2 = 295 , // reserved
527+ ReservedC3 = 296 , // reserved
528+ ReservedC4 = 297 , // reserved
529+ ReservedC5 = 298 , // reserved
530+ ReservedC6 = 299 , // reserved
531+ ReservedC7 = 300 , // reserved
532+ ReservedC8 = 301 , // reserved
533+ ReservedC9 = 302 , // reserved
490534
491535 // Amplification shader instructions
492536 DispatchMesh = 173 , // Amplification shader intrinsic DispatchMesh
@@ -635,8 +679,9 @@ enum class OpCode : unsigned {
635679 TraceRay = 157 , // initiates raytrace
636680
637681 // Inline Ray Query
638- AllocateRayQuery = 178 , // allocates space for RayQuery and return handle
639- RayQuery_Abort = 181 , // aborts a ray query
682+ AllocateRayQuery = 178 , // allocates space for RayQuery and return handle
683+ AllocateRayQuery2 = 258 , // allocates space for RayQuery and return handle
684+ RayQuery_Abort = 181 , // aborts a ray query
640685 RayQuery_CandidateGeometryIndex = 203 , // returns candidate hit geometry index
641686 RayQuery_CandidateInstanceContributionToHitGroupIndex =
642687 214 , // returns candidate hit InstanceContributionToHitGroupIndex
@@ -985,7 +1030,7 @@ enum class OpCode : unsigned {
9851030 NumOpCodes_Dxil_1_7 = 226 ,
9861031 NumOpCodes_Dxil_1_8 = 258 ,
9871032
988- NumOpCodes = 258 // exclusive last value of enumeration
1033+ NumOpCodes = 303 // exclusive last value of enumeration
9891034};
9901035// OPCODE-ENUM:END
9911036
@@ -1106,6 +1151,7 @@ enum class OpCodeClass : unsigned {
11061151
11071152 // Inline Ray Query
11081153 AllocateRayQuery,
1154+ AllocateRayQuery2,
11091155 RayQuery_Abort,
11101156 RayQuery_CommitNonOpaqueTriangleHit,
11111157 RayQuery_CommitProceduralPrimitiveHit,
@@ -1292,7 +1338,7 @@ enum class OpCodeClass : unsigned {
12921338 NumOpClasses_Dxil_1_7 = 153 ,
12931339 NumOpClasses_Dxil_1_8 = 174 ,
12941340
1295- NumOpClasses = 174 // exclusive last value of enumeration
1341+ NumOpClasses = 175 // exclusive last value of enumeration
12961342};
12971343// OPCODECLASS-ENUM:END
12981344
@@ -1774,8 +1820,12 @@ enum class RayFlag : uint32_t {
17741820 CullNonOpaque = 0x80 ,
17751821 SkipTriangles = 0x100 ,
17761822 SkipProceduralPrimitives = 0x200 ,
1823+ ForceOMM2State = 0x400 , // Force 2-state in Opacity Micromaps
17771824};
17781825
1826+ // Corresponds to RAYQUERY_FLAG_* in HLSL
1827+ enum class RayQueryFlag : uint32_t { None = 0 , AllowOpacityMicromaps = 1 };
1828+
17791829// Packing/unpacking intrinsics
17801830enum class UnpackMode : uint8_t {
17811831 Unsigned = 0 , // not sign extended
@@ -1957,7 +2007,9 @@ enum class RaytracingPipelineFlags : uint32_t {
19572007 None = 0x0 ,
19582008 SkipTriangles = 0x100 ,
19592009 SkipProceduralPrimitives = 0x200 ,
1960- ValidMask = 0x300 ,
2010+ ValidMask_1_8 = 0x300 , // valid mask up through DXIL 1.8
2011+ AllowOpacityMicromaps = 0x400 , // Allow Opacity Micromaps to be used
2012+ ValidMask = 0x700 , // current valid mask
19612013};
19622014
19632015enum class CommittedStatus : uint32_t {
0 commit comments