summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/spirv/unified1/spirv.core.grammar.json621
-rw-r--r--include/spirv/unified1/spirv.h56
-rw-r--r--include/spirv/unified1/spirv.hpp56
-rw-r--r--include/spirv/unified1/spirv.hpp1156
-rw-r--r--include/spirv/unified1/spirv.json54
-rw-r--r--include/spirv/unified1/spirv.lua52
-rwxr-xr-xinclude/spirv/unified1/spirv.py52
-rwxr-xr-xtools/buildHeaders/header.cpp6
8 files changed, 892 insertions, 61 deletions
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 8c95bf6..f3994a6 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -26,8 +26,8 @@
],
"magic_number" : "0x07230203",
"major_version" : 1,
- "minor_version" : 2,
- "revision" : 3,
+ "minor_version" : 3,
+ "revision" : 1,
"instructions" : [
{
"opname" : "OpNop",
@@ -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",
@@ -4157,7 +4617,7 @@
"SPV_KHR_variable_pointers"
],
"capabilities" : [ "Shader" ],
- "version" : "None"
+ "version" : "1.3"
}
]
},
@@ -5268,7 +5728,7 @@
{
"enumerant" : "SubgroupSize",
"value" : 36,
- "capabilities" : [ "Kernel", "SubgroupBallotKHR" ]
+ "capabilities" : [ "Kernel", "GroupNonUniform" ]
},
{
"enumerant" : "SubgroupMaxSize",
@@ -5278,7 +5738,7 @@
{
"enumerant" : "NumSubgroups",
"value" : 38,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel", "GroupNonUniform" ]
},
{
"enumerant" : "NumEnqueuedSubgroups",
@@ -5288,12 +5748,12 @@
{
"enumerant" : "SubgroupId",
"value" : 40,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel", "GroupNonUniform" ]
},
{
"enumerant" : "SubgroupLocalInvocationId",
"value" : 41,
- "capabilities" : [ "Kernel", "SubgroupBallotKHR" ]
+ "capabilities" : [ "Kernel", "GroupNonUniform" ]
},
{
"enumerant" : "VertexIndex",
@@ -5306,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",
@@ -5477,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"
}
]
},
@@ -5804,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" ],
@@ -5814,7 +6357,7 @@
"value" : 4427,
"capabilities" : [ "Shader" ],
"extensions" : [ "SPV_KHR_shader_draw_parameters" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "SubgroupVoteKHR",
@@ -5826,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",
@@ -5842,7 +6385,7 @@
"StorageUniformBufferBlock16"
],
"extensions" : [ "SPV_KHR_16bit_storage" ],
- "version" : "None"
+ "version" : "1.3"
},
{
"enumerant" : "StorageUniform16",
@@ -5852,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",
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 6c15ff7..012f886 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/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;
@@ -444,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,
@@ -570,6 +575,7 @@ typedef enum SpvGroupOperation_ {
SpvGroupOperationReduce = 0,
SpvGroupOperationInclusiveScan = 1,
SpvGroupOperationExclusiveScan = 2,
+ SpvGroupOperationClusteredReduce = 3,
SpvGroupOperationMax = 0x7fffffff,
} SpvGroupOperation;
@@ -650,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,
@@ -991,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,
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index f6227a1..1fc24fb 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -46,12 +46,12 @@ namespace spv {
typedef unsigned int Id;
-#define SPV_VERSION 0x10200
-#define SPV_REVISION 3
+#define SPV_VERSION 0x10300
+#define SPV_REVISION 1
static const unsigned int MagicNumber = 0x07230203;
-static const unsigned int Version = 0x00010200;
-static const unsigned int Revision = 3;
+static const unsigned int Version = 0x00010300;
+static const unsigned int Revision = 1;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@@ -440,10 +440,15 @@ enum BuiltIn {
BuiltInSubgroupLocalInvocationId = 41,
BuiltInVertexIndex = 42,
BuiltInInstanceIndex = 43,
+ BuiltInSubgroupEqMask = 4416,
BuiltInSubgroupEqMaskKHR = 4416,
+ BuiltInSubgroupGeMask = 4417,
BuiltInSubgroupGeMaskKHR = 4417,
+ BuiltInSubgroupGtMask = 4418,
BuiltInSubgroupGtMaskKHR = 4418,
+ BuiltInSubgroupLeMask = 4419,
BuiltInSubgroupLeMaskKHR = 4419,
+ BuiltInSubgroupLtMask = 4420,
BuiltInSubgroupLtMaskKHR = 4420,
BuiltInBaseVertex = 4424,
BuiltInBaseInstance = 4425,
@@ -566,6 +571,7 @@ enum GroupOperation {
GroupOperationReduce = 0,
GroupOperationInclusiveScan = 1,
GroupOperationExclusiveScan = 2,
+ GroupOperationClusteredReduce = 3,
GroupOperationMax = 0x7fffffff,
};
@@ -646,6 +652,14 @@ enum Capability {
CapabilitySubgroupDispatch = 58,
CapabilityNamedBarrier = 59,
CapabilityPipeStorage = 60,
+ CapabilityGroupNonUniform = 61,
+ CapabilityGroupNonUniformVote = 62,
+ CapabilityGroupNonUniformArithmetic = 63,
+ CapabilityGroupNonUniformBallot = 64,
+ CapabilityGroupNonUniformShuffle = 65,
+ CapabilityGroupNonUniformShuffleRelative = 66,
+ CapabilityGroupNonUniformClustered = 67,
+ CapabilityGroupNonUniformQuad = 68,
CapabilitySubgroupBallotKHR = 4423,
CapabilityDrawParameters = 4427,
CapabilitySubgroupVoteKHR = 4431,
@@ -987,6 +1001,40 @@ enum Op {
OpModuleProcessed = 330,
OpExecutionModeId = 331,
OpDecorateId = 332,
+ OpGroupNonUniformElect = 333,
+ OpGroupNonUniformAll = 334,
+ OpGroupNonUniformAny = 335,
+ OpGroupNonUniformAllEqual = 336,
+ OpGroupNonUniformBroadcast = 337,
+ OpGroupNonUniformBroadcastFirst = 338,
+ OpGroupNonUniformBallot = 339,
+ OpGroupNonUniformInverseBallot = 340,
+ OpGroupNonUniformBallotBitExtract = 341,
+ OpGroupNonUniformBallotBitCount = 342,
+ OpGroupNonUniformBallotFindLSB = 343,
+ OpGroupNonUniformBallotFindMSB = 344,
+ OpGroupNonUniformShuffle = 345,
+ OpGroupNonUniformShuffleXor = 346,
+ OpGroupNonUniformShuffleUp = 347,
+ OpGroupNonUniformShuffleDown = 348,
+ OpGroupNonUniformIAdd = 349,
+ OpGroupNonUniformFAdd = 350,
+ OpGroupNonUniformIMul = 351,
+ OpGroupNonUniformFMul = 352,
+ OpGroupNonUniformSMin = 353,
+ OpGroupNonUniformUMin = 354,
+ OpGroupNonUniformFMin = 355,
+ OpGroupNonUniformSMax = 356,
+ OpGroupNonUniformUMax = 357,
+ OpGroupNonUniformFMax = 358,
+ OpGroupNonUniformBitwiseAnd = 359,
+ OpGroupNonUniformBitwiseOr = 360,
+ OpGroupNonUniformBitwiseXor = 361,
+ OpGroupNonUniformLogicalAnd = 362,
+ OpGroupNonUniformLogicalOr = 363,
+ OpGroupNonUniformLogicalXor = 364,
+ OpGroupNonUniformQuadBroadcast = 365,
+ OpGroupNonUniformQuadSwap = 366,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
OpSubgroupAllKHR = 4428,
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index e722166..702b006 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -46,12 +46,12 @@ namespace spv {
typedef unsigned int Id;
-#define SPV_VERSION 0x10200
-#define SPV_REVISION 3
+#define SPV_VERSION 0x10300
+#define SPV_REVISION 1
static const unsigned int MagicNumber = 0x07230203;
-static const unsigned int Version = 0x00010200;
-static const unsigned int Revision = 3;
+static const unsigned int Version = 0x00010300;
+static const unsigned int Revision = 1;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@@ -440,10 +440,15 @@ enum class BuiltIn : unsigned {
SubgroupLocalInvocationId = 41,
VertexIndex = 42,
InstanceIndex = 43,
+ SubgroupEqMask = 4416,
SubgroupEqMaskKHR = 4416,
+ SubgroupGeMask = 4417,
SubgroupGeMaskKHR = 4417,
+ SubgroupGtMask = 4418,
SubgroupGtMaskKHR = 4418,
+ SubgroupLeMask = 4419,
SubgroupLeMaskKHR = 4419,
+ SubgroupLtMask = 4420,
SubgroupLtMaskKHR = 4420,
BaseVertex = 4424,
BaseInstance = 4425,
@@ -566,6 +571,7 @@ enum class GroupOperation : unsigned {
Reduce = 0,
InclusiveScan = 1,
ExclusiveScan = 2,
+ ClusteredReduce = 3,
Max = 0x7fffffff,
};
@@ -646,6 +652,14 @@ enum class Capability : unsigned {
SubgroupDispatch = 58,
NamedBarrier = 59,
PipeStorage = 60,
+ GroupNonUniform = 61,
+ GroupNonUniformVote = 62,
+ GroupNonUniformArithmetic = 63,
+ GroupNonUniformBallot = 64,
+ GroupNonUniformShuffle = 65,
+ GroupNonUniformShuffleRelative = 66,
+ GroupNonUniformClustered = 67,
+ GroupNonUniformQuad = 68,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
SubgroupVoteKHR = 4431,
@@ -987,6 +1001,40 @@ enum class Op : unsigned {
OpModuleProcessed = 330,
OpExecutionModeId = 331,
OpDecorateId = 332,
+ OpGroupNonUniformElect = 333,
+ OpGroupNonUniformAll = 334,
+ OpGroupNonUniformAny = 335,
+ OpGroupNonUniformAllEqual = 336,
+ OpGroupNonUniformBroadcast = 337,
+ OpGroupNonUniformBroadcastFirst = 338,
+ OpGroupNonUniformBallot = 339,
+ OpGroupNonUniformInverseBallot = 340,
+ OpGroupNonUniformBallotBitExtract = 341,
+ OpGroupNonUniformBallotBitCount = 342,
+ OpGroupNonUniformBallotFindLSB = 343,
+ OpGroupNonUniformBallotFindMSB = 344,
+ OpGroupNonUniformShuffle = 345,
+ OpGroupNonUniformShuffleXor = 346,
+ OpGroupNonUniformShuffleUp = 347,
+ OpGroupNonUniformShuffleDown = 348,
+ OpGroupNonUniformIAdd = 349,
+ OpGroupNonUniformFAdd = 350,
+ OpGroupNonUniformIMul = 351,
+ OpGroupNonUniformFMul = 352,
+ OpGroupNonUniformSMin = 353,
+ OpGroupNonUniformUMin = 354,
+ OpGroupNonUniformFMin = 355,
+ OpGroupNonUniformSMax = 356,
+ OpGroupNonUniformUMax = 357,
+ OpGroupNonUniformFMax = 358,
+ OpGroupNonUniformBitwiseAnd = 359,
+ OpGroupNonUniformBitwiseOr = 360,
+ OpGroupNonUniformBitwiseXor = 361,
+ OpGroupNonUniformLogicalAnd = 362,
+ OpGroupNonUniformLogicalOr = 363,
+ OpGroupNonUniformLogicalXor = 364,
+ OpGroupNonUniformQuadBroadcast = 365,
+ OpGroupNonUniformQuadSwap = 366,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
OpSubgroupAllKHR = 4428,
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 30c69a4..64c8140 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -51,8 +51,8 @@
]
],
"MagicNumber": 119734787,
- "Version": 66048,
- "Revision": 3,
+ "Version": 66304,
+ "Revision": 1,
"OpCodeMask": 65535,
"WordCountShift": 16
},
@@ -483,10 +483,15 @@
"SubgroupLocalInvocationId": 41,
"VertexIndex": 42,
"InstanceIndex": 43,
+ "SubgroupEqMask": 4416,
"SubgroupEqMaskKHR": 4416,
+ "SubgroupGeMask": 4417,
"SubgroupGeMaskKHR": 4417,
+ "SubgroupGtMask": 4418,
"SubgroupGtMaskKHR": 4418,
+ "SubgroupLeMask": 4419,
"SubgroupLeMaskKHR": 4419,
+ "SubgroupLtMask": 4420,
"SubgroupLtMaskKHR": 4420,
"BaseVertex": 4424,
"BaseInstance": 4425,
@@ -586,7 +591,8 @@
{
"Reduce": 0,
"InclusiveScan": 1,
- "ExclusiveScan": 2
+ "ExclusiveScan": 2,
+ "ClusteredReduce": 3
}
},
{
@@ -671,6 +677,14 @@
"SubgroupDispatch": 58,
"NamedBarrier": 59,
"PipeStorage": 60,
+ "GroupNonUniform": 61,
+ "GroupNonUniformVote": 62,
+ "GroupNonUniformArithmetic": 63,
+ "GroupNonUniformBallot": 64,
+ "GroupNonUniformShuffle": 65,
+ "GroupNonUniformShuffleRelative": 66,
+ "GroupNonUniformClustered": 67,
+ "GroupNonUniformQuad": 68,
"SubgroupBallotKHR": 4423,
"DrawParameters": 4427,
"SubgroupVoteKHR": 4431,
@@ -1015,6 +1029,40 @@
"OpModuleProcessed": 330,
"OpExecutionModeId": 331,
"OpDecorateId": 332,
+ "OpGroupNonUniformElect": 333,
+ "OpGroupNonUniformAll": 334,
+ "OpGroupNonUniformAny": 335,
+ "OpGroupNonUniformAllEqual": 336,
+ "OpGroupNonUniformBroadcast": 337,
+ "OpGroupNonUniformBroadcastFirst": 338,
+ "OpGroupNonUniformBallot": 339,
+ "OpGroupNonUniformInverseBallot": 340,
+ "OpGroupNonUniformBallotBitExtract": 341,
+ "OpGroupNonUniformBallotBitCount": 342,
+ "OpGroupNonUniformBallotFindLSB": 343,
+ "OpGroupNonUniformBallotFindMSB": 344,
+ "OpGroupNonUniformShuffle": 345,
+ "OpGroupNonUniformShuffleXor": 346,
+ "OpGroupNonUniformShuffleUp": 347,
+ "OpGroupNonUniformShuffleDown": 348,
+ "OpGroupNonUniformIAdd": 349,
+ "OpGroupNonUniformFAdd": 350,
+ "OpGroupNonUniformIMul": 351,
+ "OpGroupNonUniformFMul": 352,
+ "OpGroupNonUniformSMin": 353,
+ "OpGroupNonUniformUMin": 354,
+ "OpGroupNonUniformFMin": 355,
+ "OpGroupNonUniformSMax": 356,
+ "OpGroupNonUniformUMax": 357,
+ "OpGroupNonUniformFMax": 358,
+ "OpGroupNonUniformBitwiseAnd": 359,
+ "OpGroupNonUniformBitwiseOr": 360,
+ "OpGroupNonUniformBitwiseXor": 361,
+ "OpGroupNonUniformLogicalAnd": 362,
+ "OpGroupNonUniformLogicalOr": 363,
+ "OpGroupNonUniformLogicalXor": 364,
+ "OpGroupNonUniformQuadBroadcast": 365,
+ "OpGroupNonUniformQuadSwap": 366,
"OpSubgroupBallotKHR": 4421,
"OpSubgroupFirstInvocationKHR": 4422,
"OpSubgroupAllKHR": 4428,
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index aab0e2f..2652036 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -41,8 +41,8 @@
spv = {
MagicNumber = 0x07230203,
- Version = 0x00010200,
- Revision = 3,
+ Version = 0x00010300,
+ Revision = 1,
OpCodeMask = 0xffff,
WordCountShift = 16,
@@ -412,10 +412,15 @@ spv = {
SubgroupLocalInvocationId = 41,
VertexIndex = 42,
InstanceIndex = 43,
+ SubgroupEqMask = 4416,
SubgroupEqMaskKHR = 4416,
+ SubgroupGeMask = 4417,
SubgroupGeMaskKHR = 4417,
+ SubgroupGtMask = 4418,
SubgroupGtMaskKHR = 4418,
+ SubgroupLeMask = 4419,
SubgroupLeMaskKHR = 4419,
+ SubgroupLtMask = 4420,
SubgroupLtMaskKHR = 4420,
BaseVertex = 4424,
BaseInstance = 4425,
@@ -531,6 +536,7 @@ spv = {
Reduce = 0,
InclusiveScan = 1,
ExclusiveScan = 2,
+ ClusteredReduce = 3,
},
KernelEnqueueFlags = {
@@ -608,6 +614,14 @@ spv = {
SubgroupDispatch = 58,
NamedBarrier = 59,
PipeStorage = 60,
+ GroupNonUniform = 61,
+ GroupNonUniformVote = 62,
+ GroupNonUniformArithmetic = 63,
+ GroupNonUniformBallot = 64,
+ GroupNonUniformShuffle = 65,
+ GroupNonUniformShuffleRelative = 66,
+ GroupNonUniformClustered = 67,
+ GroupNonUniformQuad = 68,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
SubgroupVoteKHR = 4431,
@@ -948,6 +962,40 @@ spv = {
OpModuleProcessed = 330,
OpExecutionModeId = 331,
OpDecorateId = 332,
+ OpGroupNonUniformElect = 333,
+ OpGroupNonUniformAll = 334,
+ OpGroupNonUniformAny = 335,
+ OpGroupNonUniformAllEqual = 336,
+ OpGroupNonUniformBroadcast = 337,
+ OpGroupNonUniformBroadcastFirst = 338,
+ OpGroupNonUniformBallot = 339,
+ OpGroupNonUniformInverseBallot = 340,
+ OpGroupNonUniformBallotBitExtract = 341,
+ OpGroupNonUniformBallotBitCount = 342,
+ OpGroupNonUniformBallotFindLSB = 343,
+ OpGroupNonUniformBallotFindMSB = 344,
+ OpGroupNonUniformShuffle = 345,
+ OpGroupNonUniformShuffleXor = 346,
+ OpGroupNonUniformShuffleUp = 347,
+ OpGroupNonUniformShuffleDown = 348,
+ OpGroupNonUniformIAdd = 349,
+ OpGroupNonUniformFAdd = 350,
+ OpGroupNonUniformIMul = 351,
+ OpGroupNonUniformFMul = 352,
+ OpGroupNonUniformSMin = 353,
+ OpGroupNonUniformUMin = 354,
+ OpGroupNonUniformFMin = 355,
+ OpGroupNonUniformSMax = 356,
+ OpGroupNonUniformUMax = 357,
+ OpGroupNonUniformFMax = 358,
+ OpGroupNonUniformBitwiseAnd = 359,
+ OpGroupNonUniformBitwiseOr = 360,
+ OpGroupNonUniformBitwiseXor = 361,
+ OpGroupNonUniformLogicalAnd = 362,
+ OpGroupNonUniformLogicalOr = 363,
+ OpGroupNonUniformLogicalXor = 364,
+ OpGroupNonUniformQuadBroadcast = 365,
+ OpGroupNonUniformQuadSwap = 366,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
OpSubgroupAllKHR = 4428,
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index a40faf2..9399809 100755
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -41,8 +41,8 @@
spv = {
'MagicNumber' : 0x07230203,
- 'Version' : 0x00010200,
- 'Revision' : 3,
+ 'Version' : 0x00010300,
+ 'Revision' : 1,
'OpCodeMask' : 0xffff,
'WordCountShift' : 16,
@@ -412,10 +412,15 @@ spv = {
'SubgroupLocalInvocationId' : 41,
'VertexIndex' : 42,
'InstanceIndex' : 43,
+ 'SubgroupEqMask' : 4416,
'SubgroupEqMaskKHR' : 4416,
+ 'SubgroupGeMask' : 4417,
'SubgroupGeMaskKHR' : 4417,
+ 'SubgroupGtMask' : 4418,
'SubgroupGtMaskKHR' : 4418,
+ 'SubgroupLeMask' : 4419,
'SubgroupLeMaskKHR' : 4419,
+ 'SubgroupLtMask' : 4420,
'SubgroupLtMaskKHR' : 4420,
'BaseVertex' : 4424,
'BaseInstance' : 4425,
@@ -531,6 +536,7 @@ spv = {
'Reduce' : 0,
'InclusiveScan' : 1,
'ExclusiveScan' : 2,
+ 'ClusteredReduce' : 3,
},
'KernelEnqueueFlags' : {
@@ -608,6 +614,14 @@ spv = {
'SubgroupDispatch' : 58,
'NamedBarrier' : 59,
'PipeStorage' : 60,
+ 'GroupNonUniform' : 61,
+ 'GroupNonUniformVote' : 62,
+ 'GroupNonUniformArithmetic' : 63,
+ 'GroupNonUniformBallot' : 64,
+ 'GroupNonUniformShuffle' : 65,
+ 'GroupNonUniformShuffleRelative' : 66,
+ 'GroupNonUniformClustered' : 67,
+ 'GroupNonUniformQuad' : 68,
'SubgroupBallotKHR' : 4423,
'DrawParameters' : 4427,
'SubgroupVoteKHR' : 4431,
@@ -948,6 +962,40 @@ spv = {
'OpModuleProcessed' : 330,
'OpExecutionModeId' : 331,
'OpDecorateId' : 332,
+ 'OpGroupNonUniformElect' : 333,
+ 'OpGroupNonUniformAll' : 334,
+ 'OpGroupNonUniformAny' : 335,
+ 'OpGroupNonUniformAllEqual' : 336,
+ 'OpGroupNonUniformBroadcast' : 337,
+ 'OpGroupNonUniformBroadcastFirst' : 338,
+ 'OpGroupNonUniformBallot' : 339,
+ 'OpGroupNonUniformInverseBallot' : 340,
+ 'OpGroupNonUniformBallotBitExtract' : 341,
+ 'OpGroupNonUniformBallotBitCount' : 342,
+ 'OpGroupNonUniformBallotFindLSB' : 343,
+ 'OpGroupNonUniformBallotFindMSB' : 344,
+ 'OpGroupNonUniformShuffle' : 345,
+ 'OpGroupNonUniformShuffleXor' : 346,
+ 'OpGroupNonUniformShuffleUp' : 347,
+ 'OpGroupNonUniformShuffleDown' : 348,
+ 'OpGroupNonUniformIAdd' : 349,
+ 'OpGroupNonUniformFAdd' : 350,
+ 'OpGroupNonUniformIMul' : 351,
+ 'OpGroupNonUniformFMul' : 352,
+ 'OpGroupNonUniformSMin' : 353,
+ 'OpGroupNonUniformUMin' : 354,
+ 'OpGroupNonUniformFMin' : 355,
+ 'OpGroupNonUniformSMax' : 356,
+ 'OpGroupNonUniformUMax' : 357,
+ 'OpGroupNonUniformFMax' : 358,
+ 'OpGroupNonUniformBitwiseAnd' : 359,
+ 'OpGroupNonUniformBitwiseOr' : 360,
+ 'OpGroupNonUniformBitwiseXor' : 361,
+ 'OpGroupNonUniformLogicalAnd' : 362,
+ 'OpGroupNonUniformLogicalOr' : 363,
+ 'OpGroupNonUniformLogicalXor' : 364,
+ 'OpGroupNonUniformQuadBroadcast' : 365,
+ 'OpGroupNonUniformQuadSwap' : 366,
'OpSubgroupBallotKHR' : 4421,
'OpSubgroupFirstInvocationKHR' : 4422,
'OpSubgroupAllKHR' : 4428,
diff --git a/tools/buildHeaders/header.cpp b/tools/buildHeaders/header.cpp
index b207e22..b8b227f 100755
--- a/tools/buildHeaders/header.cpp
+++ b/tools/buildHeaders/header.cpp
@@ -68,9 +68,9 @@ namespace {
TPrinter();
static const int DocMagicNumber = 0x07230203;
- static const int DocVersion = 0x00010200;
- static const int DocRevision = 3;
- #define DocRevisionString "3"
+ static const int DocVersion = 0x00010300;
+ static const int DocRevision = 1;
+ #define DocRevisionString "1"
static const std::string DocCopyright;
static const std::string DocComment1;
static const std::string DocComment2;