@@ -2303,16 +2303,16 @@ const OP::OpCodeProperty OP::m_OpCodeProps[(unsigned)OP::OpCode::NumOpCodes] = {
23032303     0 ,
23042304     {},
23052305     {}}, //  Overloads: v
2306-     {OC::ReservedB0,
2307-      " ReservedB0" 
2308-      OCC::Reserved,
2309-      " reserved" 
2310-      Attribute::None,
2311-      0 ,
2312-      {},
2313-      {}}, //  Overloads: v
23142306
23152307    //  Shader Execution Reordering
2308+     {OC::HitObject_TraceRay,
2309+      " HitObject_TraceRay" 
2310+      OCC::HitObject_TraceRay,
2311+      " hitObject_TraceRay" 
2312+      Attribute::None,
2313+      1 ,
2314+      {{0x100 }},
2315+      {{0x0 }}}, //  Overloads: u
23162316    {OC::HitObject_FromRayQuery,
23172317     " HitObject_FromRayQuery" 
23182318     OCC::HitObject_FromRayQuery,
@@ -2345,15 +2345,15 @@ const OP::OpCodeProperty OP::m_OpCodeProps[(unsigned)OP::OpCode::NumOpCodes] = {
23452345     0 ,
23462346     {},
23472347     {}}, //  Overloads: v
2348- 
2349-     {OC::ReservedB5,
2350-      " ReservedB5" 
2351-      OCC::Reserved,
2352-      " reserved" 
2348+     {OC::HitObject_Invoke,
2349+      " HitObject_Invoke" 
2350+      OCC::HitObject_Invoke,
2351+      " hitObject_Invoke" 
23532352     Attribute::None,
2354-      0 ,
2355-      {},
2356-      {}}, //  Overloads: v
2353+      1 ,
2354+      {{0x100 }},
2355+      {{0x0 }}}, //  Overloads: u
2356+ 
23572357    {OC::ReservedB6,
23582358     " ReservedB6" 
23592359     OCC::Reserved,
@@ -3449,19 +3449,20 @@ void OP::GetMinShaderModelAndMask(OpCode C, bool bWithTranslation,
34493449    minor = 9 ;
34503450    return ;
34513451  }
3452-   //  Instructions: HitObject_FromRayQuery=263,
3452+   //  Instructions: HitObject_TraceRay=262,  HitObject_FromRayQuery=263,
34533453  //  HitObject_FromRayQueryWithAttrs=264, HitObject_MakeMiss=265,
3454-   //  HitObject_MakeNop=266, HitObject_IsMiss=269, HitObject_IsHit=270,
3455-   //  HitObject_IsNop=271, HitObject_RayFlags=272, HitObject_RayTMin=273,
3456-   //  HitObject_RayTCurrent=274, HitObject_WorldRayOrigin=275,
3457-   //  HitObject_WorldRayDirection=276, HitObject_ObjectRayOrigin=277,
3458-   //  HitObject_ObjectRayDirection=278, HitObject_ObjectToWorld3x4=279,
3459-   //  HitObject_WorldToObject3x4=280, HitObject_GeometryIndex=281,
3460-   //  HitObject_InstanceIndex=282, HitObject_InstanceID=283,
3461-   //  HitObject_PrimitiveIndex=284, HitObject_HitKind=285,
3462-   //  HitObject_ShaderTableIndex=286, HitObject_SetShaderTableIndex=287,
3454+   //  HitObject_MakeNop=266, HitObject_Invoke=267, HitObject_IsMiss=269,
3455+   //  HitObject_IsHit=270, HitObject_IsNop=271, HitObject_RayFlags=272,
3456+   //  HitObject_RayTMin=273, HitObject_RayTCurrent=274,
3457+   //  HitObject_WorldRayOrigin=275, HitObject_WorldRayDirection=276,
3458+   //  HitObject_ObjectRayOrigin=277, HitObject_ObjectRayDirection=278,
3459+   //  HitObject_ObjectToWorld3x4=279, HitObject_WorldToObject3x4=280,
3460+   //  HitObject_GeometryIndex=281, HitObject_InstanceIndex=282,
3461+   //  HitObject_InstanceID=283, HitObject_PrimitiveIndex=284,
3462+   //  HitObject_HitKind=285, HitObject_ShaderTableIndex=286,
3463+   //  HitObject_SetShaderTableIndex=287,
34633464  //  HitObject_LoadLocalRootTableConstant=288, HitObject_Attributes=289
3464-   if  ((263  <= op && op <= 266 ) || (269  <= op && op <= 289 )) {
3465+   if  ((262  <= op && op <= 267 ) || (269  <= op && op <= 289 )) {
34653466    major = 6 ;
34663467    minor = 9 ;
34673468    mask =
@@ -5632,12 +5633,27 @@ Function *OP::GetOpFunc(OpCode opCode, Type *pOverloadType) {
56325633    A (pV);
56335634    A (pI32);
56345635    break ;
5635-   case  OpCode::ReservedB0:
5636-     A (pV);
5637-     A (pI32);
5638-     break ;
56395636
56405637    //  Shader Execution Reordering
5638+   case  OpCode::HitObject_TraceRay:
5639+     A (pHit);
5640+     A (pI32);
5641+     A (pRes);
5642+     A (pI32);
5643+     A (pI32);
5644+     A (pI32);
5645+     A (pI32);
5646+     A (pI32);
5647+     A (pF32);
5648+     A (pF32);
5649+     A (pF32);
5650+     A (pF32);
5651+     A (pF32);
5652+     A (pF32);
5653+     A (pF32);
5654+     A (pF32);
5655+     A (udt);
5656+     break ;
56415657  case  OpCode::HitObject_FromRayQuery:
56425658    A (pHit);
56435659    A (pI32);
@@ -5668,12 +5684,14 @@ Function *OP::GetOpFunc(OpCode opCode, Type *pOverloadType) {
56685684    A (pHit);
56695685    A (pI32);
56705686    break ;
5671- 
5672-     // 
5673-   case  OpCode::ReservedB5:
5687+   case  OpCode::HitObject_Invoke:
56745688    A (pV);
56755689    A (pI32);
5690+     A (pHit);
5691+     A (udt);
56765692    break ;
5693+ 
5694+     // 
56775695  case  OpCode::ReservedB6:
56785696    A (pV);
56795697    A (pI32);
@@ -6007,6 +6025,7 @@ llvm::Type *OP::GetOverloadType(OpCode opCode, llvm::Function *F) {
60076025  case  OpCode::TempRegStore:
60086026  case  OpCode::CallShader:
60096027  case  OpCode::Pack4x8:
6028+   case  OpCode::HitObject_Invoke:
60106029  case  OpCode::HitObject_Attributes:
60116030    if  (FT->getNumParams () <= 2 )
60126031      return  nullptr ;
@@ -6048,6 +6067,7 @@ llvm::Type *OP::GetOverloadType(OpCode opCode, llvm::Function *F) {
60486067      return  nullptr ;
60496068    return  FT->getParamType (5 );
60506069  case  OpCode::TraceRay:
6070+   case  OpCode::HitObject_TraceRay:
60516071    if  (FT->getNumParams () <= 15 )
60526072      return  nullptr ;
60536073    return  FT->getParamType (15 );
@@ -6135,11 +6155,9 @@ llvm::Type *OP::GetOverloadType(OpCode opCode, llvm::Function *F) {
61356155  case  OpCode::ReservedA0:
61366156  case  OpCode::ReservedA1:
61376157  case  OpCode::ReservedA2:
6138-   case  OpCode::ReservedB0:
61396158  case  OpCode::HitObject_FromRayQuery:
61406159  case  OpCode::HitObject_MakeMiss:
61416160  case  OpCode::HitObject_MakeNop:
6142-   case  OpCode::ReservedB5:
61436161  case  OpCode::ReservedB6:
61446162  case  OpCode::HitObject_SetShaderTableIndex:
61456163  case  OpCode::HitObject_LoadLocalRootTableConstant:
0 commit comments