summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compiler/spirv/spirv.core.grammar.json663
-rw-r--r--src/compiler/spirv/spirv.h61
2 files changed, 683 insertions, 41 deletions
diff --git a/src/compiler/spirv/spirv.core.grammar.json b/src/compiler/spirv/spirv.core.grammar.json
index 47ca1c56006..f3994a60358 100644
--- a/src/compiler/spirv/spirv.core.grammar.json
+++ b/src/compiler/spirv/spirv.core.grammar.json
@@ -3147,6 +3147,454 @@
"version" : "1.2"
},
{
+ "opname" : "OpGroupNonUniformElect",
+ "opcode" : 333,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" }
+ ],
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformAll",
+ "opcode" : 334,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "GroupNonUniformVote" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformAny",
+ "opcode" : 335,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "GroupNonUniformVote" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformAllEqual",
+ "opcode" : 336,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "GroupNonUniformVote" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBroadcast",
+ "opcode" : 337,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Id'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBroadcastFirst",
+ "opcode" : 338,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBallot",
+ "opcode" : 339,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformInverseBallot",
+ "opcode" : 340,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBallotBitExtract",
+ "opcode" : 341,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBallotBitCount",
+ "opcode" : 342,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBallotFindLSB",
+ "opcode" : 343,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBallotFindMSB",
+ "opcode" : 344,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformShuffle",
+ "opcode" : 345,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Id'" }
+ ],
+ "capabilities" : [ "GroupNonUniformShuffle" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformShuffleXor",
+ "opcode" : 346,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Mask'" }
+ ],
+ "capabilities" : [ "GroupNonUniformShuffle" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformShuffleUp",
+ "opcode" : 347,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Delta'" }
+ ],
+ "capabilities" : [ "GroupNonUniformShuffleRelative" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformShuffleDown",
+ "opcode" : 348,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Delta'" }
+ ],
+ "capabilities" : [ "GroupNonUniformShuffleRelative" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformIAdd",
+ "opcode" : 349,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformFAdd",
+ "opcode" : 350,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformIMul",
+ "opcode" : 351,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformFMul",
+ "opcode" : 352,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformSMin",
+ "opcode" : 353,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformUMin",
+ "opcode" : 354,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformFMin",
+ "opcode" : 355,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformSMax",
+ "opcode" : 356,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformUMax",
+ "opcode" : 357,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformFMax",
+ "opcode" : 358,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBitwiseAnd",
+ "opcode" : 359,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBitwiseOr",
+ "opcode" : 360,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBitwiseXor",
+ "opcode" : 361,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformLogicalAnd",
+ "opcode" : 362,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformLogicalOr",
+ "opcode" : 363,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformLogicalXor",
+ "opcode" : 364,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformQuadBroadcast",
+ "opcode" : 365,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ],
+ "capabilities" : [ "GroupNonUniformQuad" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformQuadSwap",
+ "opcode" : 366,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Direction'" }
+ ],
+ "capabilities" : [ "GroupNonUniformQuad" ],
+ "version" : "1.3"
+ },
+ {
"opname" : "OpSubgroupBallotKHR",
"opcode" : 4421,
"operands" : [
@@ -3174,7 +3622,11 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Predicate'" }
],
- "capabilities" : [ "SubgroupVoteKHR" ]
+ "extensions" : [
+ "SPV_KHR_subgroup_vote"
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ],
+ "version" : "None"
},
{
"opname" : "OpSubgroupAnyKHR",
@@ -3184,7 +3636,11 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Predicate'" }
],
- "capabilities" : [ "SubgroupVoteKHR" ]
+ "extensions" : [
+ "SPV_KHR_subgroup_vote"
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ],
+ "version" : "None"
},
{
"opname" : "OpSubgroupAllEqualKHR",
@@ -3194,7 +3650,11 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Predicate'" }
],
- "capabilities" : [ "SubgroupVoteKHR" ]
+ "extensions" : [
+ "SPV_KHR_subgroup_vote"
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ],
+ "version" : "None"
},
{
"opname" : "OpSubgroupReadInvocationKHR",
@@ -3430,6 +3890,27 @@
],
"capabilities" : [ "SubgroupImageBlockIOINTEL" ],
"version" : "None"
+ },
+ {
+ "opname" : "OpDecorateStringGOOGLE",
+ "opcode" : 5632,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_decorate_string" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpMemberDecorateStringGOOGLE",
+ "opcode" : 5633,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Struct Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_decorate_string" ],
+ "version" : "None"
}
],
"operand_kinds" : [
@@ -4136,7 +4617,7 @@
"SPV_KHR_variable_pointers"
],
"capabilities" : [ "Shader" ],
- "version" : "None"
+ "version" : "1.3"
}
]
},
@@ -5060,6 +5541,24 @@
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Offset'" }
]
+ },
+ {
+ "enumerant" : "HlslCounterBufferGOOGLE",
+ "value" : 5634,
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Counter Buffer'" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HlslSemanticGOOGLE",
+ "value" : 5635,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Semantic'" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
+ "version" : "None"
}
]
},
@@ -5229,7 +5728,7 @@
{
"enumerant" : "SubgroupSize",
"value" : 36,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel", "GroupNonUniform" ]
},
{
"enumerant" : "SubgroupMaxSize",
@@ -5239,7 +5738,7 @@
{
"enumerant" : "NumSubgroups",
"value" : 38,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel", "GroupNonUniform" ]
},
{
"enumerant" : "NumEnqueuedSubgroups",
@@ -5249,12 +5748,12 @@
{
"enumerant" : "SubgroupId",
"value" : 40,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel", "GroupNonUniform" ]
},
{
"enumerant" : "SubgroupLocalInvocationId",
"value" : 41,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel", "GroupNonUniform" ]
},
{
"enumerant" : "VertexIndex",
@@ -5267,64 +5766,94 @@
"capabilities" : [ "Shader" ]
},
{
+ "enumerant" : "SubgroupEqMask",
+ "value" : 4416,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "SubgroupGeMask",
+ "value" : 4417,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "SubgroupGtMask",
+ "value" : 4418,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "SubgroupLeMask",
+ "value" : 4419,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "SubgroupLtMask",
+ "value" : 4420,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
"enumerant" : "SubgroupEqMaskKHR",
"value" : 4416,
- "capabilities" : [ "SubgroupBallotKHR" ],
- "version" : "None"
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
},
{
"enumerant" : "SubgroupGeMaskKHR",
"value" : 4417,
- "capabilities" : [ "SubgroupBallotKHR" ],
- "version" : "None"
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
},
{
"enumerant" : "SubgroupGtMaskKHR",
"value" : 4418,
- "capabilities" : [ "SubgroupBallotKHR" ],
- "version" : "None"
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
},
{
"enumerant" : "SubgroupLeMaskKHR",
"value" : 4419,
- "capabilities" : [ "SubgroupBallotKHR" ],
- "version" : "None"
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
},
{
"enumerant" : "SubgroupLtMaskKHR",
"value" : 4420,
- "capabilities" : [ "SubgroupBallotKHR" ],
- "version" : "None"
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
},
{
"enumerant" : "BaseVertex",
"value" : 4424,
"capabilities" : [ "DrawParameters" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "BaseInstance",
"value" : 4425,
"capabilities" : [ "DrawParameters" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "DrawIndex",
"value" : 4426,
"capabilities" : [ "DrawParameters" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "DeviceIndex",
"value" : 4438,
"capabilities" : [ "DeviceGroup" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "ViewIndex",
"value" : 4440,
"capabilities" : [ "MultiView" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "BaryCoordNoPerspAMD",
@@ -5438,17 +5967,23 @@
{
"enumerant" : "Reduce",
"value" : 0,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
},
{
"enumerant" : "InclusiveScan",
"value" : 1,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
},
{
"enumerant" : "ExclusiveScan",
"value" : 2,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
+ },
+ {
+ "enumerant" : "ClusteredReduce",
+ "value" : 3,
+ "capabilities" : [ "GroupNonUniformClustered" ],
+ "version" : "1.3"
}
]
},
@@ -5765,6 +6300,53 @@
"version" : "1.1"
},
{
+ "enumerant" : "GroupNonUniform",
+ "value" : 61,
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "GroupNonUniformVote",
+ "value" : 62,
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "GroupNonUniformArithmetic",
+ "value" : 63,
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "GroupNonUniformBallot",
+ "value" : 64,
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "GroupNonUniformShuffle",
+ "value" : 65,
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "GroupNonUniformShuffleRelative",
+ "value" : 66,
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "GroupNonUniformClustered",
+ "value" : 67,
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "GroupNonUniformQuad",
+ "value" : 68,
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
"enumerant" : "SubgroupBallotKHR",
"value" : 4423,
"extensions" : [ "SPV_KHR_shader_ballot" ],
@@ -5775,7 +6357,7 @@
"value" : 4427,
"capabilities" : [ "Shader" ],
"extensions" : [ "SPV_KHR_shader_draw_parameters" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "SubgroupVoteKHR",
@@ -5787,13 +6369,13 @@
"enumerant" : "StorageBuffer16BitAccess",
"value" : 4433,
"extensions" : [ "SPV_KHR_16bit_storage" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "StorageUniformBufferBlock16",
"value" : 4433,
"extensions" : [ "SPV_KHR_16bit_storage" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "UniformAndStorageBuffer16BitAccess",
@@ -5803,7 +6385,7 @@
"StorageUniformBufferBlock16"
],
"extensions" : [ "SPV_KHR_16bit_storage" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "StorageUniform16",
@@ -5813,45 +6395,45 @@
"StorageUniformBufferBlock16"
],
"extensions" : [ "SPV_KHR_16bit_storage" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "StoragePushConstant16",
"value" : 4435,
"extensions" : [ "SPV_KHR_16bit_storage" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "StorageInputOutput16",
"value" : 4436,
"extensions" : [ "SPV_KHR_16bit_storage" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "DeviceGroup",
"value" : 4437,
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "MultiView",
"value" : 4439,
"capabilities" : [ "Shader" ],
"extensions" : [ "SPV_KHR_multiview" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "VariablePointersStorageBuffer",
"value" : 4441,
"capabilities" : [ "Shader" ],
"extensions" : [ "SPV_KHR_variable_pointers" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "VariablePointers",
"value" : 4442,
"capabilities" : [ "VariablePointersStorageBuffer" ],
"extensions" : [ "SPV_KHR_variable_pointers" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "AtomicStorageOps",
@@ -5866,6 +6448,13 @@
"version" : "None"
},
{
+ "enumerant" : "Float16ImageAMD",
+ "value" : 5008,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_AMD_gpu_shader_half_float_fetch" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "ImageGatherBiasLodAMD",
"value" : 5009,
"capabilities" : [ "Shader" ],
diff --git a/src/compiler/spirv/spirv.h b/src/compiler/spirv/spirv.h
index 233dc6d6916..012f886e2dd 100644
--- a/src/compiler/spirv/spirv.h
+++ b/src/compiler/spirv/spirv.h
@@ -50,12 +50,12 @@
typedef unsigned int SpvId;
-#define SPV_VERSION 0x10200
-#define SPV_REVISION 3
+#define SPV_VERSION 0x10300
+#define SPV_REVISION 1
static const unsigned int SpvMagicNumber = 0x07230203;
-static const unsigned int SpvVersion = 0x00010200;
-static const unsigned int SpvRevision = 3;
+static const unsigned int SpvVersion = 0x00010300;
+static const unsigned int SpvRevision = 1;
static const unsigned int SpvOpCodeMask = 0xffff;
static const unsigned int SpvWordCountShift = 16;
@@ -397,6 +397,8 @@ typedef enum SpvDecoration_ {
SpvDecorationPassthroughNV = 5250,
SpvDecorationViewportRelativeNV = 5252,
SpvDecorationSecondaryViewportRelativeNV = 5256,
+ SpvDecorationHlslCounterBufferGOOGLE = 5634,
+ SpvDecorationHlslSemanticGOOGLE = 5635,
SpvDecorationMax = 0x7fffffff,
} SpvDecoration;
@@ -442,10 +444,15 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInSubgroupLocalInvocationId = 41,
SpvBuiltInVertexIndex = 42,
SpvBuiltInInstanceIndex = 43,
+ SpvBuiltInSubgroupEqMask = 4416,
SpvBuiltInSubgroupEqMaskKHR = 4416,
+ SpvBuiltInSubgroupGeMask = 4417,
SpvBuiltInSubgroupGeMaskKHR = 4417,
+ SpvBuiltInSubgroupGtMask = 4418,
SpvBuiltInSubgroupGtMaskKHR = 4418,
+ SpvBuiltInSubgroupLeMask = 4419,
SpvBuiltInSubgroupLeMaskKHR = 4419,
+ SpvBuiltInSubgroupLtMask = 4420,
SpvBuiltInSubgroupLtMaskKHR = 4420,
SpvBuiltInBaseVertex = 4424,
SpvBuiltInBaseInstance = 4425,
@@ -568,6 +575,7 @@ typedef enum SpvGroupOperation_ {
SpvGroupOperationReduce = 0,
SpvGroupOperationInclusiveScan = 1,
SpvGroupOperationExclusiveScan = 2,
+ SpvGroupOperationClusteredReduce = 3,
SpvGroupOperationMax = 0x7fffffff,
} SpvGroupOperation;
@@ -648,6 +656,14 @@ typedef enum SpvCapability_ {
SpvCapabilitySubgroupDispatch = 58,
SpvCapabilityNamedBarrier = 59,
SpvCapabilityPipeStorage = 60,
+ SpvCapabilityGroupNonUniform = 61,
+ SpvCapabilityGroupNonUniformVote = 62,
+ SpvCapabilityGroupNonUniformArithmetic = 63,
+ SpvCapabilityGroupNonUniformBallot = 64,
+ SpvCapabilityGroupNonUniformShuffle = 65,
+ SpvCapabilityGroupNonUniformShuffleRelative = 66,
+ SpvCapabilityGroupNonUniformClustered = 67,
+ SpvCapabilityGroupNonUniformQuad = 68,
SpvCapabilitySubgroupBallotKHR = 4423,
SpvCapabilityDrawParameters = 4427,
SpvCapabilitySubgroupVoteKHR = 4431,
@@ -663,6 +679,7 @@ typedef enum SpvCapability_ {
SpvCapabilityVariablePointers = 4442,
SpvCapabilityAtomicStorageOps = 4445,
SpvCapabilitySampleMaskPostDepthCoverage = 4447,
+ SpvCapabilityFloat16ImageAMD = 5008,
SpvCapabilityImageGatherBiasLodAMD = 5009,
SpvCapabilityFragmentMaskAMD = 5010,
SpvCapabilityStencilExportEXT = 5013,
@@ -988,6 +1005,40 @@ typedef enum SpvOp_ {
SpvOpModuleProcessed = 330,
SpvOpExecutionModeId = 331,
SpvOpDecorateId = 332,
+ SpvOpGroupNonUniformElect = 333,
+ SpvOpGroupNonUniformAll = 334,
+ SpvOpGroupNonUniformAny = 335,
+ SpvOpGroupNonUniformAllEqual = 336,
+ SpvOpGroupNonUniformBroadcast = 337,
+ SpvOpGroupNonUniformBroadcastFirst = 338,
+ SpvOpGroupNonUniformBallot = 339,
+ SpvOpGroupNonUniformInverseBallot = 340,
+ SpvOpGroupNonUniformBallotBitExtract = 341,
+ SpvOpGroupNonUniformBallotBitCount = 342,
+ SpvOpGroupNonUniformBallotFindLSB = 343,
+ SpvOpGroupNonUniformBallotFindMSB = 344,
+ SpvOpGroupNonUniformShuffle = 345,
+ SpvOpGroupNonUniformShuffleXor = 346,
+ SpvOpGroupNonUniformShuffleUp = 347,
+ SpvOpGroupNonUniformShuffleDown = 348,
+ SpvOpGroupNonUniformIAdd = 349,
+ SpvOpGroupNonUniformFAdd = 350,
+ SpvOpGroupNonUniformIMul = 351,
+ SpvOpGroupNonUniformFMul = 352,
+ SpvOpGroupNonUniformSMin = 353,
+ SpvOpGroupNonUniformUMin = 354,
+ SpvOpGroupNonUniformFMin = 355,
+ SpvOpGroupNonUniformSMax = 356,
+ SpvOpGroupNonUniformUMax = 357,
+ SpvOpGroupNonUniformFMax = 358,
+ SpvOpGroupNonUniformBitwiseAnd = 359,
+ SpvOpGroupNonUniformBitwiseOr = 360,
+ SpvOpGroupNonUniformBitwiseXor = 361,
+ SpvOpGroupNonUniformLogicalAnd = 362,
+ SpvOpGroupNonUniformLogicalOr = 363,
+ SpvOpGroupNonUniformLogicalXor = 364,
+ SpvOpGroupNonUniformQuadBroadcast = 365,
+ SpvOpGroupNonUniformQuadSwap = 366,
SpvOpSubgroupBallotKHR = 4421,
SpvOpSubgroupFirstInvocationKHR = 4422,
SpvOpSubgroupAllKHR = 4428,
@@ -1012,6 +1063,8 @@ typedef enum SpvOp_ {
SpvOpSubgroupBlockWriteINTEL = 5576,
SpvOpSubgroupImageBlockReadINTEL = 5577,
SpvOpSubgroupImageBlockWriteINTEL = 5578,
+ SpvOpDecorateStringGOOGLE = 5632,
+ SpvOpMemberDecorateStringGOOGLE = 5633,
SpvOpMax = 0x7fffffff,
} SpvOp;