Skip to content

Commit 5aa1dd8

Browse files
dneto0ruimzhao
andauthored
Support SPV_KHR_quad_control (with fixed line endings) (KhronosGroup#412)
* SPV_KHR_quad_control 1. Add two new execute modes: RequireFullQuadsKHR and QuadDerivativesKHR 2. Add one Capability: QuadControlKHR 3. Add two opCodes: OpGroupNonUniformQuadAllKHR and OpGroupNonUniformQuadAnyKHR * Regenerate headers, to fix end-of-line issues --------- Co-authored-by: ruimzhao <[email protected]>
1 parent ae6a8b3 commit 5aa1dd8

File tree

10 files changed

+93
-0
lines changed

10 files changed

+93
-0
lines changed

include/spirv/unified1/spirv.bf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,8 @@ namespace Spv
181181
StencilRefUnchangedBackAMD = 5082,
182182
StencilRefGreaterBackAMD = 5083,
183183
StencilRefLessBackAMD = 5084,
184+
QuadDerivativesKHR = 5088,
185+
RequireFullQuadsKHR = 5089,
184186
OutputLinesEXT = 5269,
185187
OutputLinesNV = 5269,
186188
OutputPrimitivesEXT = 5270,
@@ -1086,6 +1088,7 @@ namespace Spv
10861088
Int64ImageEXT = 5016,
10871089
ShaderClockKHR = 5055,
10881090
ShaderEnqueueAMDX = 5067,
1091+
QuadControlKHR = 5087,
10891092
SampleMaskOverrideCoverageNV = 5249,
10901093
GeometryShaderPassthroughNV = 5251,
10911094
ShaderViewportIndexLayerEXT = 5254,
@@ -1798,6 +1801,8 @@ namespace Spv
17981801
OpFinalizeNodePayloadsAMDX = 5075,
17991802
OpFinishWritingNodePayloadAMDX = 5078,
18001803
OpInitializeNodePayloadsAMDX = 5090,
1804+
OpGroupNonUniformQuadAllKHR = 5110,
1805+
OpGroupNonUniformQuadAnyKHR = 5111,
18011806
OpHitObjectRecordHitMotionNV = 5249,
18021807
OpHitObjectRecordHitWithIndexMotionNV = 5250,
18031808
OpHitObjectRecordMissMotionNV = 5251,

include/spirv/unified1/spirv.core.grammar.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5246,6 +5246,30 @@
52465246
"capabilities" : [ "ShaderEnqueueAMDX" ],
52475247
"version" : "None"
52485248
},
5249+
{
5250+
"opname" : "OpGroupNonUniformQuadAllKHR",
5251+
"class" : "Non-Uniform",
5252+
"opcode" : 5110,
5253+
"operands" : [
5254+
{ "kind" : "IdResultType" },
5255+
{ "kind" : "IdResult" },
5256+
{ "kind" : "IdRef", "name" : "'Predicate'" }
5257+
],
5258+
"capabilities" : [ "QuadControlKHR" ],
5259+
"version" : "None"
5260+
},
5261+
{
5262+
"opname" : "OpGroupNonUniformQuadAnyKHR",
5263+
"class" : "Non-Uniform",
5264+
"opcode" : 5111,
5265+
"operands" : [
5266+
{ "kind" : "IdResultType" },
5267+
{ "kind" : "IdResult" },
5268+
{ "kind" : "IdRef", "name" : "'Predicate'" }
5269+
],
5270+
"capabilities" : [ "QuadControlKHR" ],
5271+
"version" : "None"
5272+
},
52495273
{
52505274
"opname" : "OpHitObjectRecordHitMotionNV",
52515275
"class" : "Reserved",
@@ -11320,6 +11344,18 @@
1132011344
"extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests", "SPV_EXT_shader_stencil_export" ],
1132111345
"version": "None"
1132211346
},
11347+
{
11348+
"enumerant": "QuadDerivativesKHR",
11349+
"value": 5088,
11350+
"capabilities": [ "QuadControlKHR" ],
11351+
"version": "None"
11352+
},
11353+
{
11354+
"enumerant" : "RequireFullQuadsKHR",
11355+
"value" : 5089,
11356+
"capabilities" : [ "QuadControlKHR" ],
11357+
"version" : "None"
11358+
},
1132311359
{
1132411360
"enumerant" : "OutputLinesNV",
1132511361
"value" : 5269,
@@ -15542,6 +15578,12 @@
1554215578
"extensions" : [ "SPV_AMDX_shader_enqueue" ],
1554315579
"version" : "None"
1554415580
},
15581+
{
15582+
"enumerant" : "QuadControlKHR",
15583+
"value" : 5087,
15584+
"extensions" : [ "SPV_KHR_quad_control" ],
15585+
"version" : "None"
15586+
},
1554515587
{
1554615588
"enumerant" : "SampleMaskOverrideCoverageNV",
1554715589
"value" : 5249,

include/spirv/unified1/spirv.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,8 @@ public enum ExecutionMode
180180
StencilRefUnchangedBackAMD = 5082,
181181
StencilRefGreaterBackAMD = 5083,
182182
StencilRefLessBackAMD = 5084,
183+
QuadDerivativesKHR = 5088,
184+
RequireFullQuadsKHR = 5089,
183185
OutputLinesEXT = 5269,
184186
OutputLinesNV = 5269,
185187
OutputPrimitivesEXT = 5270,
@@ -1085,6 +1087,7 @@ public enum Capability
10851087
Int64ImageEXT = 5016,
10861088
ShaderClockKHR = 5055,
10871089
ShaderEnqueueAMDX = 5067,
1090+
QuadControlKHR = 5087,
10881091
SampleMaskOverrideCoverageNV = 5249,
10891092
GeometryShaderPassthroughNV = 5251,
10901093
ShaderViewportIndexLayerEXT = 5254,
@@ -1797,6 +1800,8 @@ public enum Op
17971800
OpFinalizeNodePayloadsAMDX = 5075,
17981801
OpFinishWritingNodePayloadAMDX = 5078,
17991802
OpInitializeNodePayloadsAMDX = 5090,
1803+
OpGroupNonUniformQuadAllKHR = 5110,
1804+
OpGroupNonUniformQuadAnyKHR = 5111,
18001805
OpHitObjectRecordHitMotionNV = 5249,
18011806
OpHitObjectRecordHitWithIndexMotionNV = 5250,
18021807
OpHitObjectRecordMissMotionNV = 5251,

include/spirv/unified1/spirv.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,8 @@ typedef enum SpvExecutionMode_ {
188188
SpvExecutionModeStencilRefUnchangedBackAMD = 5082,
189189
SpvExecutionModeStencilRefGreaterBackAMD = 5083,
190190
SpvExecutionModeStencilRefLessBackAMD = 5084,
191+
SpvExecutionModeQuadDerivativesKHR = 5088,
192+
SpvExecutionModeRequireFullQuadsKHR = 5089,
191193
SpvExecutionModeOutputLinesEXT = 5269,
192194
SpvExecutionModeOutputLinesNV = 5269,
193195
SpvExecutionModeOutputPrimitivesEXT = 5270,
@@ -1085,6 +1087,7 @@ typedef enum SpvCapability_ {
10851087
SpvCapabilityInt64ImageEXT = 5016,
10861088
SpvCapabilityShaderClockKHR = 5055,
10871089
SpvCapabilityShaderEnqueueAMDX = 5067,
1090+
SpvCapabilityQuadControlKHR = 5087,
10881091
SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
10891092
SpvCapabilityGeometryShaderPassthroughNV = 5251,
10901093
SpvCapabilityShaderViewportIndexLayerEXT = 5254,
@@ -1794,6 +1797,8 @@ typedef enum SpvOp_ {
17941797
SpvOpFinalizeNodePayloadsAMDX = 5075,
17951798
SpvOpFinishWritingNodePayloadAMDX = 5078,
17961799
SpvOpInitializeNodePayloadsAMDX = 5090,
1800+
SpvOpGroupNonUniformQuadAllKHR = 5110,
1801+
SpvOpGroupNonUniformQuadAnyKHR = 5111,
17971802
SpvOpHitObjectRecordHitMotionNV = 5249,
17981803
SpvOpHitObjectRecordHitWithIndexMotionNV = 5250,
17991804
SpvOpHitObjectRecordMissMotionNV = 5251,
@@ -2525,6 +2530,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
25252530
case SpvOpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
25262531
case SpvOpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
25272532
case SpvOpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
2533+
case SpvOpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
2534+
case SpvOpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
25282535
case SpvOpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
25292536
case SpvOpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
25302537
case SpvOpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;

include/spirv/unified1/spirv.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,8 @@ enum ExecutionMode {
184184
ExecutionModeStencilRefUnchangedBackAMD = 5082,
185185
ExecutionModeStencilRefGreaterBackAMD = 5083,
186186
ExecutionModeStencilRefLessBackAMD = 5084,
187+
ExecutionModeQuadDerivativesKHR = 5088,
188+
ExecutionModeRequireFullQuadsKHR = 5089,
187189
ExecutionModeOutputLinesEXT = 5269,
188190
ExecutionModeOutputLinesNV = 5269,
189191
ExecutionModeOutputPrimitivesEXT = 5270,
@@ -1081,6 +1083,7 @@ enum Capability {
10811083
CapabilityInt64ImageEXT = 5016,
10821084
CapabilityShaderClockKHR = 5055,
10831085
CapabilityShaderEnqueueAMDX = 5067,
1086+
CapabilityQuadControlKHR = 5087,
10841087
CapabilitySampleMaskOverrideCoverageNV = 5249,
10851088
CapabilityGeometryShaderPassthroughNV = 5251,
10861089
CapabilityShaderViewportIndexLayerEXT = 5254,
@@ -1790,6 +1793,8 @@ enum Op {
17901793
OpFinalizeNodePayloadsAMDX = 5075,
17911794
OpFinishWritingNodePayloadAMDX = 5078,
17921795
OpInitializeNodePayloadsAMDX = 5090,
1796+
OpGroupNonUniformQuadAllKHR = 5110,
1797+
OpGroupNonUniformQuadAnyKHR = 5111,
17931798
OpHitObjectRecordHitMotionNV = 5249,
17941799
OpHitObjectRecordHitWithIndexMotionNV = 5250,
17951800
OpHitObjectRecordMissMotionNV = 5251,
@@ -2521,6 +2526,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
25212526
case OpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
25222527
case OpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
25232528
case OpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
2529+
case OpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
2530+
case OpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
25242531
case OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
25252532
case OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
25262533
case OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;

include/spirv/unified1/spirv.hpp11

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,8 @@ enum class ExecutionMode : unsigned {
184184
StencilRefUnchangedBackAMD = 5082,
185185
StencilRefGreaterBackAMD = 5083,
186186
StencilRefLessBackAMD = 5084,
187+
QuadDerivativesKHR = 5088,
188+
RequireFullQuadsKHR = 5089,
187189
OutputLinesEXT = 5269,
188190
OutputLinesNV = 5269,
189191
OutputPrimitivesEXT = 5270,
@@ -1081,6 +1083,7 @@ enum class Capability : unsigned {
10811083
Int64ImageEXT = 5016,
10821084
ShaderClockKHR = 5055,
10831085
ShaderEnqueueAMDX = 5067,
1086+
QuadControlKHR = 5087,
10841087
SampleMaskOverrideCoverageNV = 5249,
10851088
GeometryShaderPassthroughNV = 5251,
10861089
ShaderViewportIndexLayerEXT = 5254,
@@ -1790,6 +1793,8 @@ enum class Op : unsigned {
17901793
OpFinalizeNodePayloadsAMDX = 5075,
17911794
OpFinishWritingNodePayloadAMDX = 5078,
17921795
OpInitializeNodePayloadsAMDX = 5090,
1796+
OpGroupNonUniformQuadAllKHR = 5110,
1797+
OpGroupNonUniformQuadAnyKHR = 5111,
17931798
OpHitObjectRecordHitMotionNV = 5249,
17941799
OpHitObjectRecordHitWithIndexMotionNV = 5250,
17951800
OpHitObjectRecordMissMotionNV = 5251,
@@ -2521,6 +2526,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
25212526
case Op::OpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
25222527
case Op::OpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
25232528
case Op::OpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
2529+
case Op::OpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
2530+
case Op::OpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
25242531
case Op::OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
25252532
case Op::OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
25262533
case Op::OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;

include/spirv/unified1/spirv.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,8 @@
203203
"StencilRefUnchangedBackAMD": 5082,
204204
"StencilRefGreaterBackAMD": 5083,
205205
"StencilRefLessBackAMD": 5084,
206+
"QuadDerivativesKHR": 5088,
207+
"RequireFullQuadsKHR": 5089,
206208
"OutputLinesEXT": 5269,
207209
"OutputLinesNV": 5269,
208210
"OutputPrimitivesEXT": 5270,
@@ -1058,6 +1060,7 @@
10581060
"Int64ImageEXT": 5016,
10591061
"ShaderClockKHR": 5055,
10601062
"ShaderEnqueueAMDX": 5067,
1063+
"QuadControlKHR": 5087,
10611064
"SampleMaskOverrideCoverageNV": 5249,
10621065
"GeometryShaderPassthroughNV": 5251,
10631066
"ShaderViewportIndexLayerEXT": 5254,
@@ -1789,6 +1792,8 @@
17891792
"OpFinalizeNodePayloadsAMDX": 5075,
17901793
"OpFinishWritingNodePayloadAMDX": 5078,
17911794
"OpInitializeNodePayloadsAMDX": 5090,
1795+
"OpGroupNonUniformQuadAllKHR": 5110,
1796+
"OpGroupNonUniformQuadAnyKHR": 5111,
17921797
"OpHitObjectRecordHitMotionNV": 5249,
17931798
"OpHitObjectRecordHitWithIndexMotionNV": 5250,
17941799
"OpHitObjectRecordMissMotionNV": 5251,

include/spirv/unified1/spirv.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,8 @@ spv = {
171171
StencilRefUnchangedBackAMD = 5082,
172172
StencilRefGreaterBackAMD = 5083,
173173
StencilRefLessBackAMD = 5084,
174+
QuadDerivativesKHR = 5088,
175+
RequireFullQuadsKHR = 5089,
174176
OutputLinesEXT = 5269,
175177
OutputLinesNV = 5269,
176178
OutputPrimitivesEXT = 5270,
@@ -1043,6 +1045,7 @@ spv = {
10431045
Int64ImageEXT = 5016,
10441046
ShaderClockKHR = 5055,
10451047
ShaderEnqueueAMDX = 5067,
1048+
QuadControlKHR = 5087,
10461049
SampleMaskOverrideCoverageNV = 5249,
10471050
GeometryShaderPassthroughNV = 5251,
10481051
ShaderViewportIndexLayerEXT = 5254,
@@ -1734,6 +1737,8 @@ spv = {
17341737
OpFinalizeNodePayloadsAMDX = 5075,
17351738
OpFinishWritingNodePayloadAMDX = 5078,
17361739
OpInitializeNodePayloadsAMDX = 5090,
1740+
OpGroupNonUniformQuadAllKHR = 5110,
1741+
OpGroupNonUniformQuadAnyKHR = 5111,
17371742
OpHitObjectRecordHitMotionNV = 5249,
17381743
OpHitObjectRecordHitWithIndexMotionNV = 5250,
17391744
OpHitObjectRecordMissMotionNV = 5251,

include/spirv/unified1/spirv.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,8 @@
171171
'StencilRefUnchangedBackAMD' : 5082,
172172
'StencilRefGreaterBackAMD' : 5083,
173173
'StencilRefLessBackAMD' : 5084,
174+
'QuadDerivativesKHR' : 5088,
175+
'RequireFullQuadsKHR' : 5089,
174176
'OutputLinesEXT' : 5269,
175177
'OutputLinesNV' : 5269,
176178
'OutputPrimitivesEXT' : 5270,
@@ -1043,6 +1045,7 @@
10431045
'Int64ImageEXT' : 5016,
10441046
'ShaderClockKHR' : 5055,
10451047
'ShaderEnqueueAMDX' : 5067,
1048+
'QuadControlKHR' : 5087,
10461049
'SampleMaskOverrideCoverageNV' : 5249,
10471050
'GeometryShaderPassthroughNV' : 5251,
10481051
'ShaderViewportIndexLayerEXT' : 5254,
@@ -1734,6 +1737,8 @@
17341737
'OpFinalizeNodePayloadsAMDX' : 5075,
17351738
'OpFinishWritingNodePayloadAMDX' : 5078,
17361739
'OpInitializeNodePayloadsAMDX' : 5090,
1740+
'OpGroupNonUniformQuadAllKHR' : 5110,
1741+
'OpGroupNonUniformQuadAnyKHR' : 5111,
17371742
'OpHitObjectRecordHitMotionNV' : 5249,
17381743
'OpHitObjectRecordHitWithIndexMotionNV' : 5250,
17391744
'OpHitObjectRecordMissMotionNV' : 5251,

include/spirv/unified1/spv.d

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,8 @@ enum ExecutionMode : uint
183183
StencilRefUnchangedBackAMD = 5082,
184184
StencilRefGreaterBackAMD = 5083,
185185
StencilRefLessBackAMD = 5084,
186+
QuadDerivativesKHR = 5088,
187+
RequireFullQuadsKHR = 5089,
186188
OutputLinesEXT = 5269,
187189
OutputLinesNV = 5269,
188190
OutputPrimitivesEXT = 5270,
@@ -1088,6 +1090,7 @@ enum Capability : uint
10881090
Int64ImageEXT = 5016,
10891091
ShaderClockKHR = 5055,
10901092
ShaderEnqueueAMDX = 5067,
1093+
QuadControlKHR = 5087,
10911094
SampleMaskOverrideCoverageNV = 5249,
10921095
GeometryShaderPassthroughNV = 5251,
10931096
ShaderViewportIndexLayerEXT = 5254,
@@ -1800,6 +1803,8 @@ enum Op : uint
18001803
OpFinalizeNodePayloadsAMDX = 5075,
18011804
OpFinishWritingNodePayloadAMDX = 5078,
18021805
OpInitializeNodePayloadsAMDX = 5090,
1806+
OpGroupNonUniformQuadAllKHR = 5110,
1807+
OpGroupNonUniformQuadAnyKHR = 5111,
18031808
OpHitObjectRecordHitMotionNV = 5249,
18041809
OpHitObjectRecordHitWithIndexMotionNV = 5250,
18051810
OpHitObjectRecordMissMotionNV = 5251,

0 commit comments

Comments
 (0)