summaryrefslogtreecommitdiffstats
path: root/src/compiler/spirv
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/spirv')
-rw-r--r--src/compiler/spirv/spirv.core.grammar.json284
-rw-r--r--src/compiler/spirv/spirv.h49
2 files changed, 330 insertions, 3 deletions
diff --git a/src/compiler/spirv/spirv.core.grammar.json b/src/compiler/spirv/spirv.core.grammar.json
index b81d29fed5a..285f0a29331 100644
--- a/src/compiler/spirv/spirv.core.grammar.json
+++ b/src/compiler/spirv/spirv.core.grammar.json
@@ -4166,6 +4166,172 @@
"version" : "None"
},
{
+ "opname" : "OpUCountLeadingZerosINTEL",
+ "opcode" : 5585,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpUCountTrailingZerosINTEL",
+ "opcode" : 5586,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAbsISubINTEL",
+ "opcode" : 5587,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAbsUSubINTEL",
+ "opcode" : 5588,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpIAddSatINTEL",
+ "opcode" : 5589,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpUAddSatINTEL",
+ "opcode" : 5590,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpIAverageINTEL",
+ "opcode" : 5591,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpUAverageINTEL",
+ "opcode" : 5592,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpIAverageRoundedINTEL",
+ "opcode" : 5593,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpUAverageRoundedINTEL",
+ "opcode" : 5594,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpISubSatINTEL",
+ "opcode" : 5595,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpUSubSatINTEL",
+ "opcode" : 5596,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpIMul32x16INTEL",
+ "opcode" : 5597,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpUMul32x16INTEL",
+ "opcode" : 5598,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpDecorateString",
"opcode" : 5632,
"operands" : [
@@ -5605,6 +5771,20 @@
],
"capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
"version" : "None"
+ },
+ {
+ "opname" : "OpBeginInvocationInterlockEXT",
+ "opcode" : 5364,
+ "capabilities" : [ "FragmentShaderSampleInterlockEXT", "FragmentShaderPixelInterlockEXT", "FragmentShaderShadingRateInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpEndInvocationInterlockEXT",
+ "opcode" : 5365,
+ "capabilities" : [ "FragmentShaderSampleInterlockEXT", "FragmentShaderPixelInterlockEXT", "FragmentShaderShadingRateInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
}
],
"operand_kinds" : [
@@ -6496,6 +6676,48 @@
"capabilities" : [ "MeshShadingNV" ],
"extensions" : [ "SPV_NV_mesh_shader" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "PixelInterlockOrderedEXT",
+ "value" : 5366,
+ "capabilities" : [ "FragmentShaderPixelInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PixelInterlockUnorderedEXT",
+ "value" : 5367,
+ "capabilities" : [ "FragmentShaderPixelInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SampleInterlockOrderedEXT",
+ "value" : 5368,
+ "capabilities" : [ "FragmentShaderSampleInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SampleInterlockUnorderedEXT",
+ "value" : 5369,
+ "capabilities" : [ "FragmentShaderSampleInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShadingRateInterlockOrderedEXT",
+ "value" : 5370,
+ "capabilities" : [ "FragmentShaderShadingRateInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShadingRateInterlockUnorderedEXT",
+ "value" : 5371,
+ "capabilities" : [ "FragmentShaderShadingRateInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
}
]
},
@@ -8217,6 +8439,30 @@
"value" : 5351,
"capabilities" : [ "RayTracingNV" ],
"extensions" : [ "SPV_NV_ray_tracing" ]
+ },
+ {
+ "enumerant" : "WarpsPerSMNV",
+ "value" : 5374,
+ "capabilities" : [ "ShaderSMBuiltinsNV" ],
+ "extensions" : [ "SPV_NV_shader_sm_builtins" ]
+ },
+ {
+ "enumerant" : "SMCountNV",
+ "value" : 5375,
+ "capabilities" : [ "ShaderSMBuiltinsNV" ],
+ "extensions" : [ "SPV_NV_shader_sm_builtins" ]
+ },
+ {
+ "enumerant" : "WarpIDNV",
+ "value" : 5376,
+ "capabilities" : [ "ShaderSMBuiltinsNV" ],
+ "extensions" : [ "SPV_NV_shader_sm_builtins" ]
+ },
+ {
+ "enumerant" : "SMIDNV",
+ "value" : 5377,
+ "capabilities" : [ "ShaderSMBuiltinsNV" ],
+ "extensions" : [ "SPV_NV_shader_sm_builtins" ]
}
]
},
@@ -8404,7 +8650,8 @@
},
{
"enumerant" : "Groups",
- "value" : 18
+ "value" : 18,
+ "extensions" : [ "SPV_AMD_shader_ballot" ]
},
{
"enumerant" : "DeviceEnqueue",
@@ -9022,6 +9269,13 @@
"version" : "None"
},
{
+ "enumerant" : "IntegerFunctions2INTEL",
+ "value" : 5584,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_INTEL_shader_integer_functions2" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "SubgroupAvcMotionEstimationINTEL",
"value" : 5696,
"extensions" : [ "SPV_INTEL_device_side_avc_motion_estimation" ],
@@ -9108,6 +9362,34 @@
"capabilities" : [ "Shader" ],
"extensions" : [ "SPV_NV_cooperative_matrix" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "FragmentShaderSampleInterlockEXT",
+ "value" : 5363,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FragmentShaderShadingRateInterlockEXT",
+ "value" : 5372,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FragmentShaderPixelInterlockEXT",
+ "value" : 5378,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShaderSMBuiltinsNV",
+ "value" : 5373,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_NV_shader_sm_builtins" ],
+ "version" : "None"
}
]
},
diff --git a/src/compiler/spirv/spirv.h b/src/compiler/spirv/spirv.h
index 9eb4ed76d70..99b6fbb9edc 100644
--- a/src/compiler/spirv/spirv.h
+++ b/src/compiler/spirv/spirv.h
@@ -158,6 +158,12 @@ typedef enum SpvExecutionMode_ {
SpvExecutionModeDerivativeGroupQuadsNV = 5289,
SpvExecutionModeDerivativeGroupLinearNV = 5290,
SpvExecutionModeOutputTrianglesNV = 5298,
+ SpvExecutionModePixelInterlockOrderedEXT = 5366,
+ SpvExecutionModePixelInterlockUnorderedEXT = 5367,
+ SpvExecutionModeSampleInterlockOrderedEXT = 5368,
+ SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
+ SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
+ SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
SpvExecutionModeMax = 0x7fffffff,
} SpvExecutionMode;
@@ -555,6 +561,10 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInHitTNV = 5332,
SpvBuiltInHitKindNV = 5333,
SpvBuiltInIncomingRayFlagsNV = 5351,
+ SpvBuiltInWarpsPerSMNV = 5374,
+ SpvBuiltInSMCountNV = 5375,
+ SpvBuiltInWarpIDNV = 5376,
+ SpvBuiltInSMIDNV = 5377,
SpvBuiltInMax = 0x7fffffff,
} SpvBuiltIn;
@@ -833,10 +843,15 @@ typedef enum SpvCapability_ {
SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
SpvCapabilityCooperativeMatrixNV = 5357,
+ SpvCapabilityFragmentShaderSampleInterlockEXT = 5363,
+ SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
+ SpvCapabilityShaderSMBuiltinsNV = 5373,
+ SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
SpvCapabilitySubgroupShuffleINTEL = 5568,
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
+ SpvCapabilityIntegerFunctions2INTEL = 5584,
SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
@@ -1218,6 +1233,8 @@ typedef enum SpvOp_ {
SpvOpCooperativeMatrixStoreNV = 5360,
SpvOpCooperativeMatrixMulAddNV = 5361,
SpvOpCooperativeMatrixLengthNV = 5362,
+ SpvOpBeginInvocationInterlockEXT = 5364,
+ SpvOpEndInvocationInterlockEXT = 5365,
SpvOpSubgroupShuffleINTEL = 5571,
SpvOpSubgroupShuffleDownINTEL = 5572,
SpvOpSubgroupShuffleUpINTEL = 5573,
@@ -1228,6 +1245,20 @@ typedef enum SpvOp_ {
SpvOpSubgroupImageBlockWriteINTEL = 5578,
SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
+ SpvOpUCountLeadingZerosINTEL = 5585,
+ SpvOpUCountTrailingZerosINTEL = 5586,
+ SpvOpAbsISubINTEL = 5587,
+ SpvOpAbsUSubINTEL = 5588,
+ SpvOpIAddSatINTEL = 5589,
+ SpvOpUAddSatINTEL = 5590,
+ SpvOpIAverageINTEL = 5591,
+ SpvOpUAverageINTEL = 5592,
+ SpvOpIAverageRoundedINTEL = 5593,
+ SpvOpUAverageRoundedINTEL = 5594,
+ SpvOpISubSatINTEL = 5595,
+ SpvOpUSubSatINTEL = 5596,
+ SpvOpIMul32x16INTEL = 5597,
+ SpvOpUMul32x16INTEL = 5598,
SpvOpDecorateString = 5632,
SpvOpDecorateStringGOOGLE = 5632,
SpvOpMemberDecorateString = 5633,
@@ -1742,10 +1773,22 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
- case SpvOpDecorateStringGOOGLE: *hasResult = false; *hasResultType = false; break;
case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
- case SpvOpMemberDecorateStringGOOGLE: *hasResult = false; *hasResultType = false; break;
case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
@@ -1864,6 +1907,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
+ case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */