Skip to content

Commit 6fa67b4

Browse files
committed
Add category and shader model to MaybeReorderThread
1 parent 16bf5b6 commit 6fa67b4

File tree

3 files changed

+39
-43
lines changed

3 files changed

+39
-43
lines changed

include/dxc/DXIL/DxilConstants.h

+30-30
Original file line numberDiff line numberDiff line change
@@ -487,35 +487,34 @@ inline bool IsFeedbackTexture(DXIL::ResourceKind ResourceKind) {
487487
// Enumeration for operations specified by DXIL
488488
enum class OpCode : unsigned {
489489
//
490-
MaybeReorderThread = 268, // Reorders the current thread
491-
Reserved0 = 226, // Reserved
492-
Reserved1 = 227, // Reserved
493-
Reserved10 = 236, // Reserved
494-
Reserved11 = 237, // Reserved
495-
Reserved2 = 228, // Reserved
496-
Reserved3 = 229, // Reserved
497-
Reserved4 = 230, // Reserved
498-
Reserved5 = 231, // Reserved
499-
Reserved6 = 232, // Reserved
500-
Reserved7 = 233, // Reserved
501-
Reserved8 = 234, // Reserved
502-
Reserved9 = 235, // Reserved
503-
ReservedA0 = 259, // reserved
504-
ReservedA1 = 260, // reserved
505-
ReservedA2 = 261, // reserved
506-
ReservedB28 = 290, // reserved
507-
ReservedB29 = 291, // reserved
508-
ReservedB30 = 292, // reserved
509-
ReservedC0 = 293, // reserved
510-
ReservedC1 = 294, // reserved
511-
ReservedC2 = 295, // reserved
512-
ReservedC3 = 296, // reserved
513-
ReservedC4 = 297, // reserved
514-
ReservedC5 = 298, // reserved
515-
ReservedC6 = 299, // reserved
516-
ReservedC7 = 300, // reserved
517-
ReservedC8 = 301, // reserved
518-
ReservedC9 = 302, // reserved
490+
Reserved0 = 226, // Reserved
491+
Reserved1 = 227, // Reserved
492+
Reserved10 = 236, // Reserved
493+
Reserved11 = 237, // Reserved
494+
Reserved2 = 228, // Reserved
495+
Reserved3 = 229, // Reserved
496+
Reserved4 = 230, // Reserved
497+
Reserved5 = 231, // Reserved
498+
Reserved6 = 232, // Reserved
499+
Reserved7 = 233, // Reserved
500+
Reserved8 = 234, // Reserved
501+
Reserved9 = 235, // Reserved
502+
ReservedA0 = 259, // reserved
503+
ReservedA1 = 260, // reserved
504+
ReservedA2 = 261, // reserved
505+
ReservedB28 = 290, // reserved
506+
ReservedB29 = 291, // reserved
507+
ReservedB30 = 292, // reserved
508+
ReservedC0 = 293, // reserved
509+
ReservedC1 = 294, // reserved
510+
ReservedC2 = 295, // reserved
511+
ReservedC3 = 296, // reserved
512+
ReservedC4 = 297, // reserved
513+
ReservedC5 = 298, // reserved
514+
ReservedC6 = 299, // reserved
515+
ReservedC7 = 300, // reserved
516+
ReservedC8 = 301, // reserved
517+
ReservedC9 = 302, // reserved
519518

520519
// Amplification shader instructions
521520
DispatchMesh = 173, // Amplification shader intrinsic DispatchMesh
@@ -931,6 +930,7 @@ enum class OpCode : unsigned {
931930
HitObject_WorldRayOrigin = 275, // Returns the ray origin in world space
932931
HitObject_WorldToObject3x4 = 280, // Returns the world to object space
933932
// transformation matrix in 3x4 form
933+
MaybeReorderThread = 268, // Reorders the current thread
934934

935935
// Synchronization
936936
AtomicBinOp = 78, // performs an atomic operation on two operands
@@ -1072,7 +1072,6 @@ enum class OpCode : unsigned {
10721072
// Groups for DXIL operations with equivalent function templates
10731073
enum class OpCodeClass : unsigned {
10741074
//
1075-
MaybeReorderThread,
10761075
Reserved,
10771076

10781077
// Amplification shader instructions
@@ -1320,6 +1319,7 @@ enum class OpCodeClass : unsigned {
13201319
HitObject_StateScalar,
13211320
HitObject_StateVector,
13221321
HitObject_TraceRay,
1322+
MaybeReorderThread,
13231323

13241324
// Synchronization
13251325
AtomicBinOp,

lib/DXIL/DxilOperations.cpp

+7-13
Original file line numberDiff line numberDiff line change
@@ -2353,8 +2353,6 @@ const OP::OpCodeProperty OP::m_OpCodeProps[(unsigned)OP::OpCode::NumOpCodes] = {
23532353
1,
23542354
{{0x100}},
23552355
{{0x0}}}, // Overloads: u
2356-
2357-
//
23582356
{OC::MaybeReorderThread,
23592357
"MaybeReorderThread",
23602358
OCC::MaybeReorderThread,
@@ -2363,8 +2361,6 @@ const OP::OpCodeProperty OP::m_OpCodeProps[(unsigned)OP::OpCode::NumOpCodes] = {
23632361
0,
23642362
{},
23652363
{}}, // Overloads: v
2366-
2367-
// Shader Execution Reordering
23682364
{OC::HitObject_IsMiss,
23692365
"HitObject_IsMiss",
23702366
OCC::HitObject_StateScalar,
@@ -3180,11 +3176,6 @@ void OP::GetMinShaderModelAndMask(OpCode C, bool bWithTranslation,
31803176
SFLAG(Amplification) | SFLAG(Mesh) | SFLAG(Node);
31813177
return;
31823178
}
3183-
// Instructions: MaybeReorderThread=268
3184-
if (op == 268) {
3185-
mask = SFLAG(Library) | SFLAG(RayGeneration);
3186-
return;
3187-
}
31883179
// Instructions: RenderTargetGetSamplePosition=76,
31893180
// RenderTargetGetSampleCount=77, Discard=82, EvalSnapped=87,
31903181
// EvalSampleIndex=88, EvalCentroid=89, SampleIndex=90, Coverage=91,
@@ -3455,6 +3446,13 @@ void OP::GetMinShaderModelAndMask(OpCode C, bool bWithTranslation,
34553446
minor = 9;
34563447
return;
34573448
}
3449+
// Instructions: MaybeReorderThread=268
3450+
if (op == 268) {
3451+
major = 6;
3452+
minor = 9;
3453+
mask = SFLAG(Library) | SFLAG(RayGeneration);
3454+
return;
3455+
}
34583456
// Instructions: HitObject_TraceRay=262, HitObject_FromRayQuery=263,
34593457
// HitObject_FromRayQueryWithAttrs=264, HitObject_MakeMiss=265,
34603458
// HitObject_MakeNop=266, HitObject_Invoke=267, HitObject_IsMiss=269,
@@ -5696,17 +5694,13 @@ Function *OP::GetOpFunc(OpCode opCode, Type *pOverloadType) {
56965694
A(pHit);
56975695
A(udt);
56985696
break;
5699-
5700-
//
57015697
case OpCode::MaybeReorderThread:
57025698
A(pV);
57035699
A(pI32);
57045700
A(pHit);
57055701
A(pI32);
57065702
A(pI32);
57075703
break;
5708-
5709-
// Shader Execution Reordering
57105704
case OpCode::HitObject_IsMiss:
57115705
A(pI1);
57125706
A(pI32);

utils/hct/hctdb.py

+2
Original file line numberDiff line numberDiff line change
@@ -867,6 +867,8 @@ def populate_categories_and_models(self):
867867
"miss",
868868
)
869869
for i in ("MaybeReorderThread").split(","):
870+
self.name_idx[i].category = "Shader Execution Reordering"
871+
self.name_idx[i].shader_model = 6, 9
870872
self.name_idx[i].shader_stages = (
871873
"library",
872874
"raygeneration",

0 commit comments

Comments
 (0)