aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Neto <dneto@google.com>2023-08-23 11:42:14 -0400
committerGitHub <noreply@github.com>2023-08-23 08:42:14 -0700
commitd790ced752b5bfc06b6988baadef6eb2d16bdf96 (patch)
treeb39b63d59b61a3d416b81227a021584855ca7f40
parentb8b9eb8640c8c0107ba580fbcb10f969022ca32c (diff)
downloadSPIRV-Headers-d790ced752b5bfc06b6988baadef6eb2d16bdf96.tar.gz
Validate enums have sensible versions and are visible (#369)
* Validate enums have a sensible versions and are visible Add version field for each eumerant. For capabilities and instructions introduced by an extension (its first version is "None"): - the capability should be guarded by an extension - the instruction should be guarded by a capability. Other enums are presumed guarded transitiviely by use as an operand to an instruction or another operand. Fixes: #278, #368 * Fix capability logic, and check more cases For capabilities, only check for lack of an extension. If capability X lists capabilities Y and Z, those are not guards *for* X, but rather when X is enabled it also implicitly enables Y and Z. Also, an instruction that is *not* in a core SPIR-V version must not be directly enabled by *both* and extension and a capability. There are 78 existing cases that break this rule, so grandparent them in with an allow-list. * Add "version": "None" to enums added for a recent extension Add it for the HostAccessQualifier enums from SPV_INTEL_global_variable_host_access
-rw-r--r--include/spirv/unified1/spirv.core.grammar.json2022
-rw-r--r--tools/buildHeaders/jsonToSpirv.cpp200
-rw-r--r--tools/buildHeaders/jsonToSpirv.h5
3 files changed, 1552 insertions, 675 deletions
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 100f91d..b6bbc2c 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -137,7 +137,8 @@
{
"opname" : "OpNop",
"class" : "Miscellaneous",
- "opcode" : 0
+ "opcode" : 0,
+ "version" : "1.0"
},
{
"opname" : "OpUndef",
@@ -146,7 +147,8 @@
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
- ]
+ ],
+ "version" : "1.0"
},
{
"opname" : "OpSourceContinued",
@@ -154,7 +156,8 @@
"opcode" : 2,
"operands" : [
{ "kind" : "LiteralString", "name" : "'Continued Source'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSource",
@@ -165,7 +168,8 @@
{ "kind" : "LiteralInteger", "name" : "'Version'" },
{ "kind" : "IdRef", "quantifier" : "?", "name" : "'File'" },
{ "kind" : "LiteralString", "quantifier" : "?", "name" : "'Source'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSourceExtension",
@@ -173,7 +177,8 @@
"opcode" : 4,
"operands" : [
{ "kind" : "LiteralString", "name" : "'Extension'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpName",
@@ -182,7 +187,8 @@
"operands" : [
{ "kind" : "IdRef", "name" : "'Target'" },
{ "kind" : "LiteralString", "name" : "'Name'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpMemberName",
@@ -192,7 +198,8 @@
{ "kind" : "IdRef", "name" : "'Type'" },
{ "kind" : "LiteralInteger", "name" : "'Member'" },
{ "kind" : "LiteralString", "name" : "'Name'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpString",
@@ -201,7 +208,8 @@
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "LiteralString", "name" : "'String'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpLine",
@@ -211,7 +219,8 @@
{ "kind" : "IdRef", "name" : "'File'" },
{ "kind" : "LiteralInteger", "name" : "'Line'" },
{ "kind" : "LiteralInteger", "name" : "'Column'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpExtension",
@@ -219,7 +228,8 @@
"opcode" : 10,
"operands" : [
{ "kind" : "LiteralString", "name" : "'Name'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpExtInstImport",
@@ -228,7 +238,8 @@
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "LiteralString", "name" : "'Name'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpExtInst",
@@ -240,7 +251,8 @@
{ "kind" : "IdRef", "name" : "'Set'" },
{ "kind" : "LiteralExtInstInteger", "name" : "'Instruction'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpMemoryModel",
@@ -249,7 +261,8 @@
"operands" : [
{ "kind" : "AddressingModel" },
{ "kind" : "MemoryModel" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpEntryPoint",
@@ -260,7 +273,8 @@
{ "kind" : "IdRef", "name" : "'Entry Point'" },
{ "kind" : "LiteralString", "name" : "'Name'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Interface'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpExecutionMode",
@@ -269,7 +283,8 @@
"operands" : [
{ "kind" : "IdRef", "name" : "'Entry Point'" },
{ "kind" : "ExecutionMode", "name" : "'Mode'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpCapability",
@@ -277,7 +292,8 @@
"opcode" : 17,
"operands" : [
{ "kind" : "Capability", "name" : "'Capability'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpTypeVoid",
@@ -285,7 +301,8 @@
"opcode" : 19,
"operands" : [
{ "kind" : "IdResult" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpTypeBool",
@@ -293,7 +310,8 @@
"opcode" : 20,
"operands" : [
{ "kind" : "IdResult" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpTypeInt",
@@ -303,7 +321,8 @@
{ "kind" : "IdResult" },
{ "kind" : "LiteralInteger", "name" : "'Width'" },
{ "kind" : "LiteralInteger", "name" : "'Signedness'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpTypeFloat",
@@ -312,7 +331,8 @@
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "LiteralInteger", "name" : "'Width'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpTypeVector",
@@ -322,7 +342,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Component Type'" },
{ "kind" : "LiteralInteger", "name" : "'Component Count'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpTypeMatrix",
@@ -333,7 +354,8 @@
{ "kind" : "IdRef", "name" : "'Column Type'" },
{ "kind" : "LiteralInteger", "name" : "'Column Count'" }
],
- "capabilities" : [ "Matrix" ]
+ "capabilities" : [ "Matrix" ],
+ "version": "1.0"
},
{
"opname" : "OpTypeImage",
@@ -349,7 +371,8 @@
{ "kind" : "LiteralInteger", "name" : "'Sampled'" },
{ "kind" : "ImageFormat" },
{ "kind" : "AccessQualifier", "quantifier" : "?" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpTypeSampler",
@@ -357,7 +380,8 @@
"opcode" : 26,
"operands" : [
{ "kind" : "IdResult" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpTypeSampledImage",
@@ -366,7 +390,8 @@
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image Type'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpTypeArray",
@@ -376,7 +401,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Element Type'" },
{ "kind" : "IdRef", "name" : "'Length'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpTypeRuntimeArray",
@@ -386,7 +412,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Element Type'" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpTypeStruct",
@@ -395,7 +422,8 @@
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpTypeOpaque",
@@ -405,7 +433,8 @@
{ "kind" : "IdResult" },
{ "kind" : "LiteralString", "name" : "The name of the opaque type." }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpTypePointer",
@@ -415,7 +444,8 @@
{ "kind" : "IdResult" },
{ "kind" : "StorageClass" },
{ "kind" : "IdRef", "name" : "'Type'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpTypeFunction",
@@ -425,7 +455,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Return Type'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpTypeEvent",
@@ -434,7 +465,8 @@
"operands" : [
{ "kind" : "IdResult" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpTypeDeviceEvent",
@@ -443,7 +475,8 @@
"operands" : [
{ "kind" : "IdResult" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpTypeReserveId",
@@ -452,7 +485,8 @@
"operands" : [
{ "kind" : "IdResult" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpTypeQueue",
@@ -461,7 +495,8 @@
"operands" : [
{ "kind" : "IdResult" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpTypePipe",
@@ -471,7 +506,8 @@
{ "kind" : "IdResult" },
{ "kind" : "AccessQualifier", "name" : "'Qualifier'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpTypeForwardPointer",
@@ -484,7 +520,8 @@
"capabilities" : [
"Addresses",
"PhysicalStorageBufferAddresses"
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpConstantTrue",
@@ -493,7 +530,8 @@
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpConstantFalse",
@@ -502,7 +540,8 @@
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpConstant",
@@ -512,7 +551,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpConstantComposite",
@@ -522,7 +562,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpConstantSampler",
@@ -535,7 +576,8 @@
{ "kind" : "LiteralInteger", "name" : "'Param'" },
{ "kind" : "SamplerFilterMode" }
],
- "capabilities" : [ "LiteralSampler" ]
+ "capabilities" : [ "LiteralSampler" ],
+ "version": "1.0"
},
{
"opname" : "OpConstantNull",
@@ -544,7 +586,8 @@
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSpecConstantTrue",
@@ -553,7 +596,8 @@
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSpecConstantFalse",
@@ -562,7 +606,8 @@
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSpecConstant",
@@ -572,7 +617,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSpecConstantComposite",
@@ -582,7 +628,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSpecConstantOp",
@@ -592,7 +639,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFunction",
@@ -603,7 +651,8 @@
{ "kind" : "IdResult" },
{ "kind" : "FunctionControl" },
{ "kind" : "IdRef", "name" : "'Function Type'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFunctionParameter",
@@ -612,12 +661,14 @@
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFunctionEnd",
"class" : "Function",
- "opcode" : 56
+ "opcode" : 56,
+ "version" : "1.0"
},
{
"opname" : "OpFunctionCall",
@@ -628,7 +679,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Function'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpVariable",
@@ -639,7 +691,8 @@
{ "kind" : "IdResult" },
{ "kind" : "StorageClass" },
{ "kind" : "IdRef", "quantifier" : "?", "name" : "'Initializer'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpImageTexelPointer",
@@ -651,7 +704,8 @@
{ "kind" : "IdRef", "name" : "'Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "IdRef", "name" : "'Sample'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpLoad",
@@ -662,7 +716,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "MemoryAccess", "quantifier" : "?" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpStore",
@@ -672,7 +727,8 @@
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdRef", "name" : "'Object'" },
{ "kind" : "MemoryAccess", "quantifier" : "?" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpCopyMemory",
@@ -683,7 +739,8 @@
{ "kind" : "IdRef", "name" : "'Source'" },
{ "kind" : "MemoryAccess", "quantifier" : "?" },
{ "kind" : "MemoryAccess", "quantifier" : "?" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpCopyMemorySized",
@@ -696,7 +753,8 @@
{ "kind" : "MemoryAccess", "quantifier" : "?" },
{ "kind" : "MemoryAccess", "quantifier" : "?" }
],
- "capabilities" : [ "Addresses" ]
+ "capabilities" : [ "Addresses" ],
+ "version": "1.0"
},
{
"opname" : "OpAccessChain",
@@ -707,7 +765,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpInBoundsAccessChain",
@@ -718,7 +777,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpPtrAccessChain",
@@ -736,7 +796,8 @@
"VariablePointers",
"VariablePointersStorageBuffer",
"PhysicalStorageBufferAddresses"
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpArrayLength",
@@ -748,7 +809,8 @@
{ "kind" : "IdRef", "name" : "'Structure'" },
{ "kind" : "LiteralInteger", "name" : "'Array member'" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpGenericPtrMemSemantics",
@@ -759,7 +821,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpInBoundsPtrAccessChain",
@@ -772,7 +835,8 @@
{ "kind" : "IdRef", "name" : "'Element'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
],
- "capabilities" : [ "Addresses" ]
+ "capabilities" : [ "Addresses" ],
+ "version": "1.0"
},
{
"opname" : "OpDecorate",
@@ -781,7 +845,8 @@
"operands" : [
{ "kind" : "IdRef", "name" : "'Target'" },
{ "kind" : "Decoration" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpMemberDecorate",
@@ -791,7 +856,8 @@
{ "kind" : "IdRef", "name" : "'Structure Type'" },
{ "kind" : "LiteralInteger", "name" : "'Member'" },
{ "kind" : "Decoration" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpDecorationGroup",
@@ -799,7 +865,8 @@
"opcode" : 73,
"operands" : [
{ "kind" : "IdResult" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpGroupDecorate",
@@ -808,7 +875,8 @@
"operands" : [
{ "kind" : "IdRef", "name" : "'Decoration Group'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpGroupMemberDecorate",
@@ -817,7 +885,8 @@
"operands" : [
{ "kind" : "IdRef", "name" : "'Decoration Group'" },
{ "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpVectorExtractDynamic",
@@ -828,7 +897,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Vector'" },
{ "kind" : "IdRef", "name" : "'Index'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpVectorInsertDynamic",
@@ -840,7 +910,8 @@
{ "kind" : "IdRef", "name" : "'Vector'" },
{ "kind" : "IdRef", "name" : "'Component'" },
{ "kind" : "IdRef", "name" : "'Index'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpVectorShuffle",
@@ -852,7 +923,8 @@
{ "kind" : "IdRef", "name" : "'Vector 1'" },
{ "kind" : "IdRef", "name" : "'Vector 2'" },
{ "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpCompositeConstruct",
@@ -862,7 +934,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpCompositeExtract",
@@ -873,7 +946,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Composite'" },
{ "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpCompositeInsert",
@@ -885,7 +959,8 @@
{ "kind" : "IdRef", "name" : "'Object'" },
{ "kind" : "IdRef", "name" : "'Composite'" },
{ "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpCopyObject",
@@ -895,7 +970,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpTranspose",
@@ -906,7 +982,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Matrix'" }
],
- "capabilities" : [ "Matrix" ]
+ "capabilities" : [ "Matrix" ],
+ "version": "1.0"
},
{
"opname" : "OpSampledImage",
@@ -917,7 +994,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" },
{ "kind" : "IdRef", "name" : "'Sampler'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpImageSampleImplicitLod",
@@ -930,7 +1008,8 @@
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSampleExplicitLod",
@@ -942,7 +1021,8 @@
{ "kind" : "IdRef", "name" : "'Sampled Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpImageSampleDrefImplicitLod",
@@ -956,7 +1036,8 @@
{ "kind" : "IdRef", "name" : "'D~ref~'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSampleDrefExplicitLod",
@@ -970,7 +1051,8 @@
{ "kind" : "IdRef", "name" : "'D~ref~'" },
{ "kind" : "ImageOperands" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSampleProjImplicitLod",
@@ -983,7 +1065,8 @@
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSampleProjExplicitLod",
@@ -996,7 +1079,8 @@
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSampleProjDrefImplicitLod",
@@ -1010,7 +1094,8 @@
{ "kind" : "IdRef", "name" : "'D~ref~'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSampleProjDrefExplicitLod",
@@ -1024,7 +1109,8 @@
{ "kind" : "IdRef", "name" : "'D~ref~'" },
{ "kind" : "ImageOperands" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpImageFetch",
@@ -1036,7 +1122,8 @@
{ "kind" : "IdRef", "name" : "'Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpImageGather",
@@ -1050,7 +1137,8 @@
{ "kind" : "IdRef", "name" : "'Component'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpImageDrefGather",
@@ -1064,7 +1152,8 @@
{ "kind" : "IdRef", "name" : "'D~ref~'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpImageRead",
@@ -1076,7 +1165,8 @@
{ "kind" : "IdRef", "name" : "'Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpImageWrite",
@@ -1087,7 +1177,8 @@
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "IdRef", "name" : "'Texel'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpImage",
@@ -1097,7 +1188,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Sampled Image'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpImageQueryFormat",
@@ -1108,7 +1200,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpImageQueryOrder",
@@ -1119,7 +1212,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpImageQuerySizeLod",
@@ -1131,7 +1225,8 @@
{ "kind" : "IdRef", "name" : "'Image'" },
{ "kind" : "IdRef", "name" : "'Level of Detail'" }
],
- "capabilities" : [ "Kernel", "ImageQuery" ]
+ "capabilities" : [ "Kernel", "ImageQuery" ],
+ "version": "1.0"
},
{
"opname" : "OpImageQuerySize",
@@ -1142,7 +1237,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" }
],
- "capabilities" : [ "Kernel", "ImageQuery" ]
+ "capabilities" : [ "Kernel", "ImageQuery" ],
+ "version": "1.0"
},
{
"opname" : "OpImageQueryLod",
@@ -1154,7 +1250,8 @@
{ "kind" : "IdRef", "name" : "'Sampled Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" }
],
- "capabilities" : [ "ImageQuery" ]
+ "capabilities" : [ "ImageQuery" ],
+ "version": "1.0"
},
{
"opname" : "OpImageQueryLevels",
@@ -1165,7 +1262,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" }
],
- "capabilities" : [ "Kernel", "ImageQuery" ]
+ "capabilities" : [ "Kernel", "ImageQuery" ],
+ "version": "1.0"
},
{
"opname" : "OpImageQuerySamples",
@@ -1176,7 +1274,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" }
],
- "capabilities" : [ "Kernel", "ImageQuery" ]
+ "capabilities" : [ "Kernel", "ImageQuery" ],
+ "version": "1.0"
},
{
"opname" : "OpConvertFToU",
@@ -1186,7 +1285,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Float Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpConvertFToS",
@@ -1196,7 +1296,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Float Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpConvertSToF",
@@ -1206,7 +1307,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Signed Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpConvertUToF",
@@ -1216,7 +1318,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Unsigned Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpUConvert",
@@ -1226,7 +1329,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Unsigned Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSConvert",
@@ -1236,7 +1340,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Signed Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFConvert",
@@ -1246,7 +1351,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Float Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpQuantizeToF16",
@@ -1256,7 +1362,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpConvertPtrToU",
@@ -1270,7 +1377,8 @@
"capabilities" : [
"Addresses",
"PhysicalStorageBufferAddresses"
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSatConvertSToU",
@@ -1281,7 +1389,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Signed Value'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpSatConvertUToS",
@@ -1292,7 +1401,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Unsigned Value'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpConvertUToPtr",
@@ -1306,7 +1416,8 @@
"capabilities" : [
"Addresses",
"PhysicalStorageBufferAddresses"
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpPtrCastToGeneric",
@@ -1317,7 +1428,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpGenericCastToPtr",
@@ -1328,7 +1440,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpGenericCastToPtrExplicit",
@@ -1340,7 +1453,8 @@
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "StorageClass", "name" : "'Storage'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpBitcast",
@@ -1350,7 +1464,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSNegate",
@@ -1360,7 +1475,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFNegate",
@@ -1370,7 +1486,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpIAdd",
@@ -1381,7 +1498,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFAdd",
@@ -1392,7 +1510,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpISub",
@@ -1403,7 +1522,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFSub",
@@ -1414,7 +1534,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpIMul",
@@ -1425,7 +1546,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFMul",
@@ -1436,7 +1558,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpUDiv",
@@ -1447,7 +1570,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSDiv",
@@ -1458,7 +1582,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFDiv",
@@ -1469,7 +1594,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpUMod",
@@ -1480,7 +1606,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSRem",
@@ -1491,7 +1618,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSMod",
@@ -1502,7 +1630,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFRem",
@@ -1513,7 +1642,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFMod",
@@ -1524,7 +1654,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpVectorTimesScalar",
@@ -1535,7 +1666,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Vector'" },
{ "kind" : "IdRef", "name" : "'Scalar'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpMatrixTimesScalar",
@@ -1547,7 +1679,8 @@
{ "kind" : "IdRef", "name" : "'Matrix'" },
{ "kind" : "IdRef", "name" : "'Scalar'" }
],
- "capabilities" : [ "Matrix" ]
+ "capabilities" : [ "Matrix" ],
+ "version": "1.0"
},
{
"opname" : "OpVectorTimesMatrix",
@@ -1559,7 +1692,8 @@
{ "kind" : "IdRef", "name" : "'Vector'" },
{ "kind" : "IdRef", "name" : "'Matrix'" }
],
- "capabilities" : [ "Matrix" ]
+ "capabilities" : [ "Matrix" ],
+ "version": "1.0"
},
{
"opname" : "OpMatrixTimesVector",
@@ -1571,7 +1705,8 @@
{ "kind" : "IdRef", "name" : "'Matrix'" },
{ "kind" : "IdRef", "name" : "'Vector'" }
],
- "capabilities" : [ "Matrix" ]
+ "capabilities" : [ "Matrix" ],
+ "version": "1.0"
},
{
"opname" : "OpMatrixTimesMatrix",
@@ -1583,7 +1718,8 @@
{ "kind" : "IdRef", "name" : "'LeftMatrix'" },
{ "kind" : "IdRef", "name" : "'RightMatrix'" }
],
- "capabilities" : [ "Matrix" ]
+ "capabilities" : [ "Matrix" ],
+ "version": "1.0"
},
{
"opname" : "OpOuterProduct",
@@ -1595,7 +1731,8 @@
{ "kind" : "IdRef", "name" : "'Vector 1'" },
{ "kind" : "IdRef", "name" : "'Vector 2'" }
],
- "capabilities" : [ "Matrix" ]
+ "capabilities" : [ "Matrix" ],
+ "version": "1.0"
},
{
"opname" : "OpDot",
@@ -1606,7 +1743,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Vector 1'" },
{ "kind" : "IdRef", "name" : "'Vector 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpIAddCarry",
@@ -1617,7 +1755,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpISubBorrow",
@@ -1628,7 +1767,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpUMulExtended",
@@ -1639,7 +1779,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSMulExtended",
@@ -1650,7 +1791,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAny",
@@ -1660,7 +1802,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Vector'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAll",
@@ -1670,7 +1813,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Vector'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpIsNan",
@@ -1680,7 +1824,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'x'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpIsInf",
@@ -1690,7 +1835,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'x'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpIsFinite",
@@ -1701,7 +1847,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'x'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpIsNormal",
@@ -1712,7 +1859,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'x'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpSignBitSet",
@@ -1723,7 +1871,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'x'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpLessOrGreater",
@@ -1736,6 +1885,7 @@
{ "kind" : "IdRef", "name" : "'y'" }
],
"capabilities" : [ "Kernel" ],
+ "version" : "1.0",
"lastVersion" : "1.5"
},
{
@@ -1748,7 +1898,8 @@
{ "kind" : "IdRef", "name" : "'x'" },
{ "kind" : "IdRef", "name" : "'y'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpUnordered",
@@ -1760,7 +1911,8 @@
{ "kind" : "IdRef", "name" : "'x'" },
{ "kind" : "IdRef", "name" : "'y'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpLogicalEqual",
@@ -1771,7 +1923,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpLogicalNotEqual",
@@ -1782,7 +1935,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpLogicalOr",
@@ -1793,7 +1947,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpLogicalAnd",
@@ -1804,7 +1959,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version" : "1.0"
},
{
"opname" : "OpLogicalNot",
@@ -1814,7 +1970,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSelect",
@@ -1826,7 +1983,8 @@
{ "kind" : "IdRef", "name" : "'Condition'" },
{ "kind" : "IdRef", "name" : "'Object 1'" },
{ "kind" : "IdRef", "name" : "'Object 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpIEqual",
@@ -1837,7 +1995,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpINotEqual",
@@ -1848,7 +2007,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpUGreaterThan",
@@ -1859,7 +2019,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSGreaterThan",
@@ -1870,7 +2031,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpUGreaterThanEqual",
@@ -1881,7 +2043,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSGreaterThanEqual",
@@ -1892,7 +2055,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpULessThan",
@@ -1903,7 +2067,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSLessThan",
@@ -1914,7 +2079,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpULessThanEqual",
@@ -1925,7 +2091,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSLessThanEqual",
@@ -1936,7 +2103,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFOrdEqual",
@@ -1947,7 +2115,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFUnordEqual",
@@ -1958,7 +2127,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFOrdNotEqual",
@@ -1969,7 +2139,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFUnordNotEqual",
@@ -1980,7 +2151,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFOrdLessThan",
@@ -1991,7 +2163,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFUnordLessThan",
@@ -2002,7 +2175,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFOrdGreaterThan",
@@ -2013,7 +2187,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFUnordGreaterThan",
@@ -2024,7 +2199,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFOrdLessThanEqual",
@@ -2035,7 +2211,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFUnordLessThanEqual",
@@ -2046,7 +2223,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFOrdGreaterThanEqual",
@@ -2057,7 +2235,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpFUnordGreaterThanEqual",
@@ -2068,7 +2247,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpShiftRightLogical",
@@ -2079,7 +2259,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "name" : "'Shift'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpShiftRightArithmetic",
@@ -2090,7 +2271,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "name" : "'Shift'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpShiftLeftLogical",
@@ -2101,7 +2283,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "name" : "'Shift'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpBitwiseOr",
@@ -2112,7 +2295,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpBitwiseXor",
@@ -2123,7 +2307,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpBitwiseAnd",
@@ -2134,7 +2319,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpNot",
@@ -2144,7 +2330,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpBitFieldInsert",
@@ -2158,7 +2345,8 @@
{ "kind" : "IdRef", "name" : "'Offset'" },
{ "kind" : "IdRef", "name" : "'Count'" }
],
- "capabilities" : [ "Shader", "BitInstructions" ]
+ "capabilities" : [ "Shader", "BitInstructions" ],
+ "version": "1.0"
},
{
"opname" : "OpBitFieldSExtract",
@@ -2171,7 +2359,8 @@
{ "kind" : "IdRef", "name" : "'Offset'" },
{ "kind" : "IdRef", "name" : "'Count'" }
],
- "capabilities" : [ "Shader", "BitInstructions" ]
+ "capabilities" : [ "Shader", "BitInstructions" ],
+ "version": "1.0"
},
{
"opname" : "OpBitFieldUExtract",
@@ -2184,7 +2373,8 @@
{ "kind" : "IdRef", "name" : "'Offset'" },
{ "kind" : "IdRef", "name" : "'Count'" }
],
- "capabilities" : [ "Shader", "BitInstructions" ]
+ "capabilities" : [ "Shader", "BitInstructions" ],
+ "version": "1.0"
},
{
"opname" : "OpBitReverse",
@@ -2195,7 +2385,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" }
],
- "capabilities" : [ "Shader", "BitInstructions" ]
+ "capabilities" : [ "Shader", "BitInstructions" ],
+ "version": "1.0"
},
{
"opname" : "OpBitCount",
@@ -2205,7 +2396,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpDPdx",
@@ -2216,7 +2408,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpDPdy",
@@ -2227,7 +2420,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpFwidth",
@@ -2238,7 +2432,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpDPdxFine",
@@ -2249,7 +2444,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
- "capabilities" : [ "DerivativeControl" ]
+ "capabilities" : [ "DerivativeControl" ],
+ "version": "1.0"
},
{
"opname" : "OpDPdyFine",
@@ -2260,7 +2456,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
- "capabilities" : [ "DerivativeControl" ]
+ "capabilities" : [ "DerivativeControl" ],
+ "version": "1.0"
},
{
"opname" : "OpFwidthFine",
@@ -2271,7 +2468,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
- "capabilities" : [ "DerivativeControl" ]
+ "capabilities" : [ "DerivativeControl" ],
+ "version": "1.0"
},
{
"opname" : "OpDPdxCoarse",
@@ -2282,7 +2480,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
- "capabilities" : [ "DerivativeControl" ]
+ "capabilities" : [ "DerivativeControl" ],
+ "version": "1.0"
},
{
"opname" : "OpDPdyCoarse",
@@ -2293,7 +2492,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
- "capabilities" : [ "DerivativeControl" ]
+ "capabilities" : [ "DerivativeControl" ],
+ "version": "1.0"
},
{
"opname" : "OpFwidthCoarse",
@@ -2304,19 +2504,22 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
- "capabilities" : [ "DerivativeControl" ]
+ "capabilities" : [ "DerivativeControl" ],
+ "version": "1.0"
},
{
"opname" : "OpEmitVertex",
"class" : "Primitive",
"opcode" : 218,
- "capabilities" : [ "Geometry" ]
+ "capabilities" : [ "Geometry" ],
+ "version": "1.0"
},
{
"opname" : "OpEndPrimitive",
"class" : "Primitive",
"opcode" : 219,
- "capabilities" : [ "Geometry" ]
+ "capabilities" : [ "Geometry" ],
+ "version": "1.0"
},
{
"opname" : "OpEmitStreamVertex",
@@ -2325,7 +2528,8 @@
"operands" : [
{ "kind" : "IdRef", "name" : "'Stream'" }
],
- "capabilities" : [ "GeometryStreams" ]
+ "capabilities" : [ "GeometryStreams" ],
+ "version": "1.0"
},
{
"opname" : "OpEndStreamPrimitive",
@@ -2334,7 +2538,8 @@
"operands" : [
{ "kind" : "IdRef", "name" : "'Stream'" }
],
- "capabilities" : [ "GeometryStreams" ]
+ "capabilities" : [ "GeometryStreams" ],
+ "version": "1.0"
},
{
"opname" : "OpControlBarrier",
@@ -2344,7 +2549,8 @@
{ "kind" : "IdScope", "name" : "'Execution'" },
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpMemoryBarrier",
@@ -2353,7 +2559,8 @@
"operands" : [
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicLoad",
@@ -2365,7 +2572,8 @@
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicStore",
@@ -2376,7 +2584,8 @@
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicExchange",
@@ -2389,7 +2598,8 @@
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicCompareExchange",
@@ -2404,7 +2614,8 @@
{ "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'Comparator'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicCompareExchangeWeak",
@@ -2421,6 +2632,7 @@
{ "kind" : "IdRef", "name" : "'Comparator'" }
],
"capabilities" : [ "Kernel" ],
+ "version" : "1.0",
"lastVersion" : "1.3"
},
{
@@ -2433,7 +2645,8 @@
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicIDecrement",
@@ -2445,7 +2658,8 @@
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicIAdd",
@@ -2458,7 +2672,8 @@
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicISub",
@@ -2471,7 +2686,8 @@
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicSMin",
@@ -2484,7 +2700,8 @@
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicUMin",
@@ -2497,7 +2714,8 @@
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicSMax",
@@ -2510,7 +2728,8 @@
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicUMax",
@@ -2523,7 +2742,8 @@
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicAnd",
@@ -2536,7 +2756,8 @@
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicOr",
@@ -2549,7 +2770,8 @@
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicXor",
@@ -2562,7 +2784,8 @@
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpPhi",
@@ -2572,7 +2795,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpLoopMerge",
@@ -2582,7 +2806,8 @@
{ "kind" : "IdRef", "name" : "'Merge Block'" },
{ "kind" : "IdRef", "name" : "'Continue Target'" },
{ "kind" : "LoopControl" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSelectionMerge",
@@ -2591,7 +2816,8 @@
"operands" : [
{ "kind" : "IdRef", "name" : "'Merge Block'" },
{ "kind" : "SelectionControl" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpLabel",
@@ -2599,7 +2825,8 @@
"opcode" : 248,
"operands" : [
{ "kind" : "IdResult" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpBranch",
@@ -2607,7 +2834,8 @@
"opcode" : 249,
"operands" : [
{ "kind" : "IdRef", "name" : "'Target Label'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpBranchConditional",
@@ -2618,7 +2846,8 @@
{ "kind" : "IdRef", "name" : "'True Label'" },
{ "kind" : "IdRef", "name" : "'False Label'" },
{ "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpSwitch",
@@ -2628,18 +2857,21 @@
{ "kind" : "IdRef", "name" : "'Selector'" },
{ "kind" : "IdRef", "name" : "'Default'" },
{ "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpKill",
"class" : "Control-Flow",
"opcode" : 252,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"opname" : "OpReturn",
"class" : "Control-Flow",
- "opcode" : 253
+ "opcode" : 253,
+ "version" : "1.0"
},
{
"opname" : "OpReturnValue",
@@ -2647,12 +2879,14 @@
"opcode" : 254,
"operands" : [
{ "kind" : "IdRef", "name" : "'Value'" }
- ]
+ ],
+ "version": "1.0"
},
{
"opname" : "OpUnreachable",
"class" : "Control-Flow",
- "opcode" : 255
+ "opcode" : 255,
+ "version" : "1.0"
},
{
"opname" : "OpLifetimeStart",
@@ -2662,7 +2896,8 @@
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "LiteralInteger", "name" : "'Size'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpLifetimeStop",
@@ -2672,7 +2907,8 @@
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "LiteralInteger", "name" : "'Size'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupAsyncCopy",
@@ -2688,7 +2924,8 @@
{ "kind" : "IdRef", "name" : "'Stride'" },
{ "kind" : "IdRef", "name" : "'Event'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupWaitEvents",
@@ -2699,7 +2936,8 @@
{ "kind" : "IdRef", "name" : "'Num Events'" },
{ "kind" : "IdRef", "name" : "'Events List'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupAll",
@@ -2711,7 +2949,8 @@
{ "kind" : "IdScope", "name" : "'Execution'" },
{ "kind" : "IdRef", "name" : "'Predicate'" }
],
- "capabilities" : [ "Groups" ]
+ "capabilities" : [ "Groups" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupAny",
@@ -2723,7 +2962,8 @@
{ "kind" : "IdScope", "name" : "'Execution'" },
{ "kind" : "IdRef", "name" : "'Predicate'" }
],
- "capabilities" : [ "Groups" ]
+ "capabilities" : [ "Groups" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupBroadcast",
@@ -2736,7 +2976,8 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'LocalId'" }
],
- "capabilities" : [ "Groups" ]
+ "capabilities" : [ "Groups" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupIAdd",
@@ -2749,7 +2990,8 @@
{ "kind" : "GroupOperation", "name" : "'Operation'" },
{ "kind" : "IdRef", "name" : "'X'" }
],
- "capabilities" : [ "Groups" ]
+ "capabilities" : [ "Groups" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupFAdd",
@@ -2762,7 +3004,8 @@
{ "kind" : "GroupOperation", "name" : "'Operation'" },
{ "kind" : "IdRef", "name" : "'X'" }
],
- "capabilities" : [ "Groups" ]
+ "capabilities" : [ "Groups" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupFMin",
@@ -2775,7 +3018,8 @@
{ "kind" : "GroupOperation", "name" : "'Operation'" },
{ "kind" : "IdRef", "name" : "'X'" }
],
- "capabilities" : [ "Groups" ]
+ "capabilities" : [ "Groups" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupUMin",
@@ -2788,7 +3032,8 @@
{ "kind" : "GroupOperation", "name" : "'Operation'" },
{ "kind" : "IdRef", "name" : "'X'" }
],
- "capabilities" : [ "Groups" ]
+ "capabilities" : [ "Groups" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupSMin",
@@ -2801,7 +3046,8 @@
{ "kind" : "GroupOperation", "name" : "'Operation'" },
{ "kind" : "IdRef", "name" : "'X'" }
],
- "capabilities" : [ "Groups" ]
+ "capabilities" : [ "Groups" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupFMax",
@@ -2814,7 +3060,8 @@
{ "kind" : "GroupOperation", "name" : "'Operation'" },
{ "kind" : "IdRef", "name" : "'X'" }
],
- "capabilities" : [ "Groups" ]
+ "capabilities" : [ "Groups" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupUMax",
@@ -2827,7 +3074,8 @@
{ "kind" : "GroupOperation", "name" : "'Operation'" },
{ "kind" : "IdRef", "name" : "'X'" }
],
- "capabilities" : [ "Groups" ]
+ "capabilities" : [ "Groups" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupSMax",
@@ -2840,7 +3088,8 @@
{ "kind" : "GroupOperation", "name" : "'Operation'" },
{ "kind" : "IdRef", "name" : "'X'" }
],
- "capabilities" : [ "Groups" ]
+ "capabilities" : [ "Groups" ],
+ "version": "1.0"
},
{
"opname" : "OpReadPipe",
@@ -2854,7 +3103,8 @@
{ "kind" : "IdRef", "name" : "'Packet Size'" },
{ "kind" : "IdRef", "name" : "'Packet Alignment'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpWritePipe",
@@ -2868,7 +3118,8 @@
{ "kind" : "IdRef", "name" : "'Packet Size'" },
{ "kind" : "IdRef", "name" : "'Packet Alignment'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpReservedReadPipe",
@@ -2884,7 +3135,8 @@
{ "kind" : "IdRef", "name" : "'Packet Size'" },
{ "kind" : "IdRef", "name" : "'Packet Alignment'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpReservedWritePipe",
@@ -2900,7 +3152,8 @@
{ "kind" : "IdRef", "name" : "'Packet Size'" },
{ "kind" : "IdRef", "name" : "'Packet Alignment'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpReserveReadPipePackets",
@@ -2914,7 +3167,8 @@
{ "kind" : "IdRef", "name" : "'Packet Size'" },
{ "kind" : "IdRef", "name" : "'Packet Alignment'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpReserveWritePipePackets",
@@ -2928,7 +3182,8 @@
{ "kind" : "IdRef", "name" : "'Packet Size'" },
{ "kind" : "IdRef", "name" : "'Packet Alignment'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpCommitReadPipe",
@@ -2940,7 +3195,8 @@
{ "kind" : "IdRef", "name" : "'Packet Size'" },
{ "kind" : "IdRef", "name" : "'Packet Alignment'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpCommitWritePipe",
@@ -2952,7 +3208,8 @@
{ "kind" : "IdRef", "name" : "'Packet Size'" },
{ "kind" : "IdRef", "name" : "'Packet Alignment'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpIsValidReserveId",
@@ -2963,7 +3220,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Reserve Id'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpGetNumPipePackets",
@@ -2976,7 +3234,8 @@
{ "kind" : "IdRef", "name" : "'Packet Size'" },
{ "kind" : "IdRef", "name" : "'Packet Alignment'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpGetMaxPipePackets",
@@ -2989,7 +3248,8 @@
{ "kind" : "IdRef", "name" : "'Packet Size'" },
{ "kind" : "IdRef", "name" : "'Packet Alignment'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupReserveReadPipePackets",
@@ -3004,7 +3264,8 @@
{ "kind" : "IdRef", "name" : "'Packet Size'" },
{ "kind" : "IdRef", "name" : "'Packet Alignment'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupReserveWritePipePackets",
@@ -3019,7 +3280,8 @@
{ "kind" : "IdRef", "name" : "'Packet Size'" },
{ "kind" : "IdRef", "name" : "'Packet Alignment'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupCommitReadPipe",
@@ -3032,7 +3294,8 @@
{ "kind" : "IdRef", "name" : "'Packet Size'" },
{ "kind" : "IdRef", "name" : "'Packet Alignment'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpGroupCommitWritePipe",
@@ -3045,7 +3308,8 @@
{ "kind" : "IdRef", "name" : "'Packet Size'" },
{ "kind" : "IdRef", "name" : "'Packet Alignment'" }
],
- "capabilities" : [ "Pipes" ]
+ "capabilities" : [ "Pipes" ],
+ "version": "1.0"
},
{
"opname" : "OpEnqueueMarker",
@@ -3059,7 +3323,8 @@
{ "kind" : "IdRef", "name" : "'Wait Events'" },
{ "kind" : "IdRef", "name" : "'Ret Event'" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpEnqueueKernel",
@@ -3080,7 +3345,8 @@
{ "kind" : "IdRef", "name" : "'Param Align'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Local Size'" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpGetKernelNDrangeSubGroupCount",
@@ -3095,7 +3361,8 @@
{ "kind" : "IdRef", "name" : "'Param Size'" },
{ "kind" : "IdRef", "name" : "'Param Align'" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpGetKernelNDrangeMaxSubGroupSize",
@@ -3110,7 +3377,8 @@
{ "kind" : "IdRef", "name" : "'Param Size'" },
{ "kind" : "IdRef", "name" : "'Param Align'" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpGetKernelWorkGroupSize",
@@ -3124,7 +3392,8 @@
{ "kind" : "IdRef", "name" : "'Param Size'" },
{ "kind" : "IdRef", "name" : "'Param Align'" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpGetKernelPreferredWorkGroupSizeMultiple",
@@ -3138,7 +3407,8 @@
{ "kind" : "IdRef", "name" : "'Param Size'" },
{ "kind" : "IdRef", "name" : "'Param Align'" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpRetainEvent",
@@ -3147,7 +3417,8 @@
"operands" : [
{ "kind" : "IdRef", "name" : "'Event'" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpReleaseEvent",
@@ -3156,7 +3427,8 @@
"operands" : [
{ "kind" : "IdRef", "name" : "'Event'" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpCreateUserEvent",
@@ -3166,7 +3438,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpIsValidEvent",
@@ -3177,7 +3450,8 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Event'" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpSetUserEventStatus",
@@ -3187,7 +3461,8 @@
{ "kind" : "IdRef", "name" : "'Event'" },
{ "kind" : "IdRef", "name" : "'Status'" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpCaptureEventProfilingInfo",
@@ -3198,7 +3473,8 @@
{ "kind" : "IdRef", "name" : "'Profiling Info'" },
{ "kind" : "IdRef", "name" : "'Value'" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpGetDefaultQueue",
@@ -3208,7 +3484,8 @@
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpBuildNDRange",
@@ -3221,7 +3498,8 @@
{ "kind" : "IdRef", "name" : "'LocalWorkSize'" },
{ "kind" : "IdRef", "name" : "'GlobalWorkOffset'" }
],
- "capabilities" : [ "DeviceEnqueue" ]
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSparseSampleImplicitLod",
@@ -3234,7 +3512,8 @@
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
- "capabilities" : [ "SparseResidency" ]
+ "capabilities" : [ "SparseResidency" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSparseSampleExplicitLod",
@@ -3247,7 +3526,8 @@
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands" }
],
- "capabilities" : [ "SparseResidency" ]
+ "capabilities" : [ "SparseResidency" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSparseSampleDrefImplicitLod",
@@ -3261,7 +3541,8 @@
{ "kind" : "IdRef", "name" : "'D~ref~'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
- "capabilities" : [ "SparseResidency" ]
+ "capabilities" : [ "SparseResidency" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSparseSampleDrefExplicitLod",
@@ -3275,7 +3556,8 @@
{ "kind" : "IdRef", "name" : "'D~ref~'" },
{ "kind" : "ImageOperands" }
],
- "capabilities" : [ "SparseResidency" ]
+ "capabilities" : [ "SparseResidency" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSparseSampleProjImplicitLod",
@@ -3346,7 +3628,8 @@
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
- "capabilities" : [ "SparseResidency" ]
+ "capabilities" : [ "SparseResidency" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSparseGather",
@@ -3360,7 +3643,8 @@
{ "kind" : "IdRef", "name" : "'Component'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
- "capabilities" : [ "SparseResidency" ]
+ "capabilities" : [ "SparseResidency" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSparseDrefGather",
@@ -3374,7 +3658,8 @@
{ "kind" : "IdRef", "name" : "'D~ref~'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
- "capabilities" : [ "SparseResidency" ]
+ "capabilities" : [ "SparseResidency" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSparseTexelsResident",
@@ -3385,12 +3670,14 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Resident Code'" }
],
- "capabilities" : [ "SparseResidency" ]
+ "capabilities" : [ "SparseResidency" ],
+ "version": "1.0"
},
{
"opname" : "OpNoLine",
"class" : "Debug",
- "opcode" : 317
+ "opcode" : 317,
+ "version" : "1.0"
},
{
"opname" : "OpAtomicFlagTestAndSet",
@@ -3403,7 +3690,8 @@
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpAtomicFlagClear",
@@ -3414,7 +3702,8 @@
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"opname" : "OpImageSparseRead",
@@ -3427,7 +3716,8 @@
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
- "capabilities" : [ "SparseResidency" ]
+ "capabilities" : [ "SparseResidency" ],
+ "version": "1.0"
},
{
"opname" : "OpSizeOf",
@@ -9441,14 +9731,16 @@
"capabilities" : [ "Shader" ],
"parameters" : [
{ "kind" : "IdRef" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "Lod",
"value" : "0x0002",
"parameters" : [
{ "kind" : "IdRef" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "Grad",
@@ -9456,14 +9748,16 @@
"parameters" : [
{ "kind" : "IdRef" },
{ "kind" : "IdRef" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "ConstOffset",
"value" : "0x0008",
"parameters" : [
{ "kind" : "IdRef" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "Offset",
@@ -9471,7 +9765,8 @@
"capabilities" : [ "ImageGatherExtended" ],
"parameters" : [
{ "kind" : "IdRef" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "ConstOffsets",
@@ -9479,14 +9774,16 @@
"capabilities" : [ "ImageGatherExtended" ],
"parameters" : [
{ "kind" : "IdRef" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "Sample",
"value" : "0x0040",
"parameters" : [
{ "kind" : "IdRef" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "MinLod",
@@ -9494,7 +9791,8 @@
"capabilities" : [ "MinLod" ],
"parameters" : [
{ "kind" : "IdRef" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "MakeTexelAvailable",
@@ -9580,7 +9878,8 @@
"value" : "0x10000",
"parameters" : [
{ "kind" : "IdRef" }
- ]
+ ],
+ "version": "1.0"
}
]
},
@@ -9590,27 +9889,33 @@
"enumerants" : [
{
"enumerant" : "None",
- "value" : "0x0000"
+ "value" : "0x0000",
+ "version" : "1.0"
},
{
"enumerant" : "NotNaN",
- "value" : "0x0001"
+ "value" : "0x0001",
+ "version" : "1.0"
},
{
"enumerant" : "NotInf",
- "value" : "0x0002"
+ "value" : "0x0002",
+ "version" : "1.0"
},
{
"enumerant" : "NSZ",
- "value" : "0x0004"
+ "value" : "0x0004",
+ "version" : "1.0"
},
{
"enumerant" : "AllowRecip",
- "value" : "0x0008"
+ "value" : "0x0008",
+ "version" : "1.0"
},
{
"enumerant" : "Fast",
- "value" : "0x0010"
+ "value" : "0x0010",
+ "version" : "1.0"
},
{
"enumerant" : "AllowContractFastINTEL",
@@ -9632,15 +9937,18 @@
"enumerants" : [
{
"enumerant" : "None",
- "value" : "0x0000"
+ "value" : "0x0000",
+ "version" : "1.0"
},
{
"enumerant" : "Flatten",
- "value" : "0x0001"
+ "value" : "0x0001",
+ "version" : "1.0"
},
{
"enumerant" : "DontFlatten",
- "value" : "0x0002"
+ "value" : "0x0002",
+ "version" : "1.0"
}
]
},
@@ -9650,15 +9958,18 @@
"enumerants" : [
{
"enumerant" : "None",
- "value" : "0x0000"
+ "value" : "0x0000",
+ "version" : "1.0"
},
{
"enumerant" : "Unroll",
- "value" : "0x0001"
+ "value" : "0x0001",
+ "version" : "1.0"
},
{
"enumerant" : "DontUnroll",
- "value" : "0x0002"
+ "value" : "0x0002",
+ "version" : "1.0"
},
{
"enumerant" : "DependencyInfinite",
@@ -9808,23 +10119,28 @@
"enumerants" : [
{
"enumerant" : "None",
- "value" : "0x0000"
+ "value" : "0x0000",
+ "version" : "1.0"
},
{
"enumerant" : "Inline",
- "value" : "0x0001"
+ "value" : "0x0001",
+ "version" : "1.0"
},
{
"enumerant" : "DontInline",
- "value" : "0x0002"
+ "value" : "0x0002",
+ "version" : "1.0"
},
{
"enumerant" : "Pure",
- "value" : "0x0004"
+ "value" : "0x0004",
+ "version" : "1.0"
},
{
"enumerant" : "Const",
- "value" : "0x0008"
+ "value" : "0x0008",
+ "version" : "1.0"
},
{
"enumerant" : "OptNoneINTEL",
@@ -9840,53 +10156,65 @@
"enumerants" : [
{
"enumerant" : "Relaxed",
- "value" : "0x0000"
+ "value" : "0x0000",
+ "version" : "1.0"
},
{
"enumerant" : "None",
- "value" : "0x0000"
+ "value" : "0x0000",
+ "version" : "1.0"
},
{
"enumerant" : "Acquire",
- "value" : "0x0002"
+ "value" : "0x0002",
+ "version" : "1.0"
},
{
"enumerant" : "Release",
- "value" : "0x0004"
+ "value" : "0x0004",
+ "version" : "1.0"
},
{
"enumerant" : "AcquireRelease",
- "value" : "0x0008"
+ "value" : "0x0008",
+ "version" : "1.0"
},
{
"enumerant" : "SequentiallyConsistent",
- "value" : "0x0010"
+ "value" : "0x0010",
+ "version" : "1.0"
},
{
"enumerant" : "UniformMemory",
"value" : "0x0040",
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "SubgroupMemory",
- "value" : "0x0080"
+ "value" : "0x0080",
+ "version" : "1.0"
},
{
"enumerant" : "WorkgroupMemory",
- "value" : "0x0100"
+ "value" : "0x0100",
+ "version" : "1.0"
},
{
"enumerant" : "CrossWorkgroupMemory",
- "value" : "0x0200"
+ "value" : "0x0200",
+ "version" : "1.0"
},
{
"enumerant" : "AtomicCounterMemory",
"value" : "0x0400",
- "capabilities" : [ "AtomicStorage" ]
+ "capabilities" : [ "AtomicStorage" ],
+ "version": "1.0"
},
{
"enumerant" : "ImageMemory",
- "value" : "0x0800"
+ "value" : "0x0800",
+ "version" : "1.0"
},
{
"enumerant" : "OutputMemory",
@@ -9942,22 +10270,26 @@
"enumerants" : [
{
"enumerant" : "None",
- "value" : "0x0000"
+ "value" : "0x0000",
+ "version" : "1.0"
},
{
"enumerant" : "Volatile",
- "value" : "0x0001"
+ "value" : "0x0001",
+ "version" : "1.0"
},
{
"enumerant" : "Aligned",
"value" : "0x0002",
"parameters" : [
{ "kind" : "LiteralInteger" }
- ]
+ ],
+ "version" : "1.0"
},
{
"enumerant" : "Nontemporal",
- "value" : "0x0004"
+ "value" : "0x0004",
+ "version" : "1.0"
},
{
"enumerant" : "MakePointerAvailable",
@@ -10038,12 +10370,14 @@
"enumerants" : [
{
"enumerant" : "None",
- "value" : "0x0000"
+ "value" : "0x0000",
+ "version" : "1.0"
},
{
"enumerant" : "CmdExecTime",
"value" : "0x0001",
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
}
]
},
@@ -10161,47 +10495,58 @@
"enumerants" : [
{
"enumerant" : "Unknown",
- "value" : 0
+ "value" : 0,
+ "version" : "1.0"
},
{
"enumerant" : "ESSL",
- "value" : 1
+ "value" : 1,
+ "version" : "1.0"
},
{
"enumerant" : "GLSL",
- "value" : 2
+ "value" : 2,
+ "version" : "1.0"
},
{
"enumerant" : "OpenCL_C",
- "value" : 3
+ "value" : 3,
+ "version" : "1.0"
},
{
"enumerant" : "OpenCL_CPP",
- "value" : 4
+ "value" : 4,
+ "version" : "1.0"
},
{
"enumerant" : "HLSL",
- "value" : 5
+ "value" : 5,
+ "version" : "1.0"
},
{
"enumerant" : "CPP_for_OpenCL",
- "value" : 6
+ "value" : 6,
+ "version" : "1.0"
},
{
"enumerant" : "SYCL",
- "value" : 7
+ "value" : 7,
+ "version" : "1.0"
},
{
"enumerant" : "HERO_C",
- "value" : 8
+ "value" : 8,
+ "version" : "1.0"
},
{
"enumerant" : "NZSL",
- "value" : 9
+ "value" : 9,
+ "version" : "1.0"
},
{
"enumerant" : "WGSL",
- "value" : 10
+ "value" : 10,
+ "version" : "1.0"
}
]
},
@@ -10212,37 +10557,44 @@
{
"enumerant" : "Vertex",
"value" : 0,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "TessellationControl",
"value" : 1,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "TessellationEvaluation",
"value" : 2,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "Geometry",
"value" : 3,
- "capabilities" : [ "Geometry" ]
+ "capabilities" : [ "Geometry" ],
+ "version": "1.0"
},
{
"enumerant" : "Fragment",
"value" : 4,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "GLCompute",
"value" : 5,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Kernel",
"value" : 6,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "TaskNV",
@@ -10348,17 +10700,20 @@
"enumerants" : [
{
"enumerant" : "Logical",
- "value" : 0
+ "value" : 0,
+ "version" : "1.0"
},
{
"enumerant" : "Physical32",
"value" : 1,
- "capabilities" : [ "Addresses" ]
+ "capabilities" : [ "Addresses" ],
+ "version": "1.0"
},
{
"enumerant" : "Physical64",
"value" : 2,
- "capabilities" : [ "Addresses" ]
+ "capabilities" : [ "Addresses" ],
+ "version": "1.0"
},
{
"enumerant" : "PhysicalStorageBuffer64",
@@ -10383,17 +10738,20 @@
{
"enumerant" : "Simple",
"value" : 0,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "GLSL450",
"value" : 1,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "OpenCL",
"value" : 2,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Vulkan",
@@ -10420,82 +10778,98 @@
"capabilities" : [ "Geometry" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Number of <<Invocation,invocations>>'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "SpacingEqual",
"value" : 1,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "SpacingFractionalEven",
"value" : 2,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "SpacingFractionalOdd",
"value" : 3,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "VertexOrderCw",
"value" : 4,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "VertexOrderCcw",
"value" : 5,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "PixelCenterInteger",
"value" : 6,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "OriginUpperLeft",
"value" : 7,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "OriginLowerLeft",
"value" : 8,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "EarlyFragmentTests",
"value" : 9,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "PointMode",
"value" : 10,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "Xfb",
"value" : 11,
- "capabilities" : [ "TransformFeedback" ]
+ "capabilities" : [ "TransformFeedback" ],
+ "version": "1.0"
},
{
"enumerant" : "DepthReplacing",
"value" : 12,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "DepthGreater",
"value" : 14,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "DepthLess",
"value" : 15,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "DepthUnchanged",
"value" : 16,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "LocalSize",
@@ -10504,7 +10878,8 @@
{ "kind" : "LiteralInteger", "name" : "'x size'" },
{ "kind" : "LiteralInteger", "name" : "'y size'" },
{ "kind" : "LiteralInteger", "name" : "'z size'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "LocalSizeHint",
@@ -10514,42 +10889,50 @@
{ "kind" : "LiteralInteger", "name" : "'x size'" },
{ "kind" : "LiteralInteger", "name" : "'y size'" },
{ "kind" : "LiteralInteger", "name" : "'z size'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "InputPoints",
"value" : 19,
- "capabilities" : [ "Geometry" ]
+ "capabilities" : [ "Geometry" ],
+ "version": "1.0"
},
{
"enumerant" : "InputLines",
"value" : 20,
- "capabilities" : [ "Geometry" ]
+ "capabilities" : [ "Geometry" ],
+ "version": "1.0"
},
{
"enumerant" : "InputLinesAdjacency",
"value" : 21,
- "capabilities" : [ "Geometry" ]
+ "capabilities" : [ "Geometry" ],
+ "version": "1.0"
},
{
"enumerant" : "Triangles",
"value" : 22,
- "capabilities" : [ "Geometry", "Tessellation" ]
+ "capabilities" : [ "Geometry", "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "InputTrianglesAdjacency",
"value" : 23,
- "capabilities" : [ "Geometry" ]
+ "capabilities" : [ "Geometry" ],
+ "version": "1.0"
},
{
"enumerant" : "Quads",
"value" : 24,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "Isolines",
"value" : 25,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "OutputVertices",
@@ -10557,22 +10940,26 @@
"capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV", "MeshShadingEXT" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Vertex count'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "OutputPoints",
"value" : 27,
- "capabilities" : [ "Geometry", "MeshShadingNV", "MeshShadingEXT" ]
+ "capabilities" : [ "Geometry", "MeshShadingNV", "MeshShadingEXT" ],
+ "version": "1.0"
},
{
"enumerant" : "OutputLineStrip",
"value" : 28,
- "capabilities" : [ "Geometry" ]
+ "capabilities" : [ "Geometry" ],
+ "version": "1.0"
},
{
"enumerant" : "OutputTriangleStrip",
"value" : 29,
- "capabilities" : [ "Geometry" ]
+ "capabilities" : [ "Geometry" ],
+ "version": "1.0"
},
{
"enumerant" : "VecTypeHint",
@@ -10580,12 +10967,14 @@
"capabilities" : [ "Kernel" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Vector type'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "ContractionOff",
"value" : 31,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Initializer",
@@ -11063,57 +11452,69 @@
"enumerants" : [
{
"enumerant" : "UniformConstant",
- "value" : 0
+ "value" : 0,
+ "version" : "1.0"
},
{
"enumerant" : "Input",
- "value" : 1
+ "value" : 1,
+ "version" : "1.0"
},
{
"enumerant" : "Uniform",
"value" : 2,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Output",
"value" : 3,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Workgroup",
- "value" : 4
+ "value" : 4,
+ "version" : "1.0"
},
{
"enumerant" : "CrossWorkgroup",
- "value" : 5
+ "value" : 5,
+ "version" : "1.0"
},
{
"enumerant" : "Private",
"value" : 6,
- "capabilities" : [ "Shader", "VectorComputeINTEL" ]
+ "capabilities" : [ "Shader", "VectorComputeINTEL" ],
+ "version": "1.0"
},
{
"enumerant" : "Function",
- "value" : 7
+ "value" : 7,
+ "version" : "1.0"
},
{
"enumerant" : "Generic",
"value" : 8,
- "capabilities" : [ "GenericPointer" ]
+ "capabilities" : [ "GenericPointer" ],
+ "version": "1.0"
},
{
"enumerant" : "PushConstant",
"value" : 9,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "AtomicCounter",
"value" : 10,
- "capabilities" : [ "AtomicStorage" ]
+ "capabilities" : [ "AtomicStorage" ],
+ "version": "1.0"
},
{
"enumerant" : "Image",
- "value" : 11
+ "value" : 11,
+ "version" : "1.0"
},
{
"enumerant" : "StorageBuffer",
@@ -11288,35 +11689,42 @@
{
"enumerant" : "1D",
"value" : 0,
- "capabilities" : [ "Sampled1D" ]
+ "capabilities" : [ "Sampled1D" ],
+ "version": "1.0"
},
{
"enumerant" : "2D",
- "value" : 1
+ "value" : 1,
+ "version" : "1.0"
},
{
"enumerant" : "3D",
- "value" : 2
+ "value" : 2,
+ "version" : "1.0"
},
{
"enumerant" : "Cube",
"value" : 3,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Rect",
"value" : 4,
- "capabilities" : [ "SampledRect" ]
+ "capabilities" : [ "SampledRect" ],
+ "version": "1.0"
},
{
"enumerant" : "Buffer",
"value" : 5,
- "capabilities" : [ "SampledBuffer" ]
+ "capabilities" : [ "SampledBuffer" ],
+ "version": "1.0"
},
{
"enumerant" : "SubpassData",
"value" : 6,
- "capabilities" : [ "InputAttachment" ]
+ "capabilities" : [ "InputAttachment" ],
+ "version": "1.0"
},
{
"enumerant" : "TileImageDataEXT",
@@ -11333,27 +11741,32 @@
{
"enumerant" : "None",
"value" : 0,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "ClampToEdge",
"value" : 1,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Clamp",
"value" : 2,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Repeat",
"value" : 3,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "RepeatMirrored",
"value" : 4,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
}
]
},
@@ -11364,12 +11777,14 @@
{
"enumerant" : "Nearest",
"value" : 0,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Linear",
"value" : 1,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
}
]
},
@@ -11379,212 +11794,254 @@
"enumerants" : [
{
"enumerant" : "Unknown",
- "value" : 0
+ "value" : 0,
+ "version" : "1.0"
},
{
"enumerant" : "Rgba32f",
"value" : 1,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Rgba16f",
"value" : 2,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "R32f",
"value" : 3,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Rgba8",
"value" : 4,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Rgba8Snorm",
"value" : 5,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Rg32f",
"value" : 6,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rg16f",
"value" : 7,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "R11fG11fB10f",
"value" : 8,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "R16f",
"value" : 9,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rgba16",
"value" : 10,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rgb10A2",
"value" : 11,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rg16",
"value" : 12,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rg8",
"value" : 13,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "R16",
"value" : 14,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "R8",
"value" : 15,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rgba16Snorm",
"value" : 16,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rg16Snorm",
"value" : 17,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rg8Snorm",
"value" : 18,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "R16Snorm",
"value" : 19,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "R8Snorm",
"value" : 20,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rgba32i",
"value" : 21,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Rgba16i",
"value" : 22,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Rgba8i",
"value" : 23,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "R32i",
"value" : 24,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Rg32i",
"value" : 25,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rg16i",
"value" : 26,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rg8i",
"value" : 27,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "R16i",
"value" : 28,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "R8i",
"value" : 29,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rgba32ui",
"value" : 30,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Rgba16ui",
"value" : 31,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Rgba8ui",
"value" : 32,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "R32ui",
"value" : 33,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Rgb10a2ui",
"value" : 34,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rg32ui",
"value" : 35,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rg16ui",
"value" : 36,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "Rg8ui",
"value" : 37,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "R16ui",
"value" : 38,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "R8ui",
"value" : 39,
- "capabilities" : [ "StorageImageExtendedFormats" ]
+ "capabilities" : [ "StorageImageExtendedFormats" ],
+ "version": "1.0"
},
{
"enumerant" : "R64ui",
"value" : 40,
- "capabilities" : [ "Int64ImageEXT" ]
+ "capabilities" : [ "Int64ImageEXT" ],
+ "version": "1.0"
},
{
"enumerant" : "R64i",
"value" : 41,
- "capabilities" : [ "Int64ImageEXT" ]
+ "capabilities" : [ "Int64ImageEXT" ],
+ "version": "1.0"
}
]
},
@@ -11595,102 +12052,122 @@
{
"enumerant" : "R",
"value" : 0,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "A",
"value" : 1,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "RG",
"value" : 2,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "RA",
"value" : 3,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "RGB",
"value" : 4,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "RGBA",
"value" : 5,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "BGRA",
"value" : 6,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "ARGB",
"value" : 7,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Intensity",
"value" : 8,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Luminance",
"value" : 9,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Rx",
"value" : 10,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "RGx",
"value" : 11,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "RGBx",
"value" : 12,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Depth",
"value" : 13,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "DepthStencil",
"value" : 14,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "sRGB",
"value" : 15,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "sRGBx",
"value" : 16,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "sRGBA",
"value" : 17,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "sBGRA",
"value" : 18,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "ABGR",
"value" : 19,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
}
]
},
@@ -11701,97 +12178,116 @@
{
"enumerant" : "SnormInt8",
"value" : 0,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "SnormInt16",
"value" : 1,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "UnormInt8",
"value" : 2,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "UnormInt16",
"value" : 3,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "UnormShort565",
"value" : 4,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "UnormShort555",
"value" : 5,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "UnormInt101010",
"value" : 6,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "SignedInt8",
"value" : 7,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "SignedInt16",
"value" : 8,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "SignedInt32",
"value" : 9,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "UnsignedInt8",
"value" : 10,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "UnsignedInt16",
"value" : 11,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "UnsignedInt32",
"value" : 12,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "HalfFloat",
"value" : 13,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Float",
"value" : 14,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "UnormInt24",
"value" : 15,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "UnormInt101010_2",
"value" : 16,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "UnsignedIntRaw10EXT",
"value" : 19,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "UnsignedIntRaw12EXT",
"value" : 20,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
}
]
},
@@ -11801,19 +12297,23 @@
"enumerants" : [
{
"enumerant" : "RTE",
- "value" : 0
+ "value" : 0,
+ "version" : "1.0"
},
{
"enumerant" : "RTZ",
- "value" : 1
+ "value" : 1,
+ "version" : "1.0"
},
{
"enumerant" : "RTP",
- "value" : 2
+ "value" : 2,
+ "version" : "1.0"
},
{
"enumerant" : "RTN",
- "value" : 3
+ "value" : 3,
+ "version" : "1.0"
}
]
},
@@ -11944,12 +12444,14 @@
{
"enumerant" : "Export",
"value" : 0,
- "capabilities" : [ "Linkage" ]
+ "capabilities" : [ "Linkage" ],
+ "version": "1.0"
},
{
"enumerant" : "Import",
"value" : 1,
- "capabilities" : [ "Linkage" ]
+ "capabilities" : [ "Linkage" ],
+ "version": "1.0"
},
{
"enumerant" : "LinkOnceODR",
@@ -11967,17 +12469,20 @@
{
"enumerant" : "ReadOnly",
"value" : 0,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "WriteOnly",
"value" : 1,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "ReadWrite",
"value" : 2,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
}
]
},
@@ -11988,22 +12493,26 @@
{
"enumerant" : "NoneINTEL",
"value" : 0,
- "capabilities" : [ "GlobalVariableHostAccessINTEL" ]
+ "capabilities" : [ "GlobalVariableHostAccessINTEL" ],
+ "version" : "None"
},
{
"enumerant" : "ReadINTEL",
"value" : 1,
- "capabilities" : [ "GlobalVariableHostAccessINTEL" ]
+ "capabilities" : [ "GlobalVariableHostAccessINTEL" ],
+ "version" : "None"
},
{
"enumerant" : "WriteINTEL",
"value" : 2,
- "capabilities" : [ "GlobalVariableHostAccessINTEL" ]
+ "capabilities" : [ "GlobalVariableHostAccessINTEL" ],
+ "version" : "None"
},
{
"enumerant" : "ReadWriteINTEL",
"value" : 3,
- "capabilities" : [ "GlobalVariableHostAccessINTEL" ]
+ "capabilities" : [ "GlobalVariableHostAccessINTEL" ],
+ "version" : "None"
}
]
},
@@ -12014,47 +12523,56 @@
{
"enumerant" : "Zext",
"value" : 0,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Sext",
"value" : 1,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "ByVal",
"value" : 2,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Sret",
"value" : 3,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "NoAlias",
"value" : 4,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "NoCapture",
"value" : 5,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "NoWrite",
"value" : 6,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "NoReadWrite",
"value" : 7,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "RuntimeAlignedINTEL",
"value" : 5940,
- "capabilities" : [ "RuntimeAlignedAttributeINTEL" ]
+ "capabilities" : [ "RuntimeAlignedAttributeINTEL" ],
+ "version": "1.0"
}
]
},
@@ -12065,7 +12583,8 @@
{
"enumerant" : "RelaxedPrecision",
"value" : 0,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "SpecId",
@@ -12073,28 +12592,33 @@
"capabilities" : [ "Shader", "Kernel" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "Block",
"value" : 2,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "BufferBlock",
"value" : 3,
"capabilities" : [ "Shader" ],
+ "version": "1.0",
"lastVersion" : "1.3"
},
{
"enumerant" : "RowMajor",
"value" : 4,
- "capabilities" : [ "Matrix" ]
+ "capabilities" : [ "Matrix" ],
+ "version": "1.0"
},
{
"enumerant" : "ColMajor",
"value" : 5,
- "capabilities" : [ "Matrix" ]
+ "capabilities" : [ "Matrix" ],
+ "version": "1.0"
},
{
"enumerant" : "ArrayStride",
@@ -12102,7 +12626,8 @@
"capabilities" : [ "Shader" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Array Stride'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "MatrixStride",
@@ -12110,93 +12635,112 @@
"capabilities" : [ "Matrix" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Matrix Stride'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "GLSLShared",
"value" : 8,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "GLSLPacked",
"value" : 9,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "CPacked",
"value" : 10,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "BuiltIn",
"value" : 11,
"parameters" : [
{ "kind" : "BuiltIn" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "NoPerspective",
"value" : 13,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Flat",
"value" : 14,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Patch",
"value" : 15,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "Centroid",
"value" : 16,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Sample",
"value" : 17,
- "capabilities" : [ "SampleRateShading" ]
+ "capabilities" : [ "SampleRateShading" ],
+ "version": "1.0"
},
{
"enumerant" : "Invariant",
"value" : 18,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Restrict",
- "value" : 19
+ "value" : 19,
+ "version" : "1.0"
},
{
"enumerant" : "Aliased",
- "value" : 20
+ "value" : 20,
+ "version" : "1.0"
},
{
"enumerant" : "Volatile",
- "value" : 21
+ "value" : 21,
+ "version" : "1.0"
},
{
"enumerant" : "Constant",
"value" : 22,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Coherent",
- "value" : 23
+ "value" : 23,
+ "version": "1.0"
},
{
"enumerant" : "NonWritable",
- "value" : 24
+ "value" : 24,
+ "version": "1.0"
},
{
"enumerant" : "NonReadable",
- "value" : 25
+ "value" : 25,
+ "version": "1.0"
},
{
"enumerant" : "Uniform",
"value" : 26,
- "capabilities" : [ "Shader", "UniformDecoration" ]
+ "capabilities" : [ "Shader", "UniformDecoration" ],
+ "version": "1.0"
},
{
"enumerant" : "UniformId",
@@ -12210,7 +12754,8 @@
{
"enumerant" : "SaturatedConversion",
"value" : 28,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Stream",
@@ -12218,7 +12763,8 @@
"capabilities" : [ "GeometryStreams" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Stream Number'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "Location",
@@ -12226,7 +12772,8 @@
"capabilities" : [ "Shader" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Location'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "Component",
@@ -12234,7 +12781,8 @@
"capabilities" : [ "Shader" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Component'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "Index",
@@ -12242,7 +12790,8 @@
"capabilities" : [ "Shader" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Index'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "Binding",
@@ -12250,7 +12799,8 @@
"capabilities" : [ "Shader" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Binding Point'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "DescriptorSet",
@@ -12258,7 +12808,8 @@
"capabilities" : [ "Shader" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Descriptor Set'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "Offset",
@@ -12266,7 +12817,8 @@
"capabilities" : [ "Shader" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Byte Offset'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "XfbBuffer",
@@ -12274,7 +12826,8 @@
"capabilities" : [ "TransformFeedback" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "XfbStride",
@@ -12282,7 +12835,8 @@
"capabilities" : [ "TransformFeedback" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'XFB Stride'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "FuncParamAttr",
@@ -12290,14 +12844,16 @@
"capabilities" : [ "Kernel" ],
"parameters" : [
{ "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "FPRoundingMode",
"value" : 39,
"parameters" : [
{ "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "FPFastMathMode",
@@ -12305,7 +12861,8 @@
"capabilities" : [ "Kernel" ],
"parameters" : [
{ "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "LinkageAttributes",
@@ -12314,12 +12871,14 @@
"parameters" : [
{ "kind" : "LiteralString", "name" : "'Name'" },
{ "kind" : "LinkageType", "name" : "'Linkage Type'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "NoContraction",
"value" : 42,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "InputAttachmentIndex",
@@ -12327,7 +12886,8 @@
"capabilities" : [ "InputAttachment" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Attachment Index'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "Alignment",
@@ -12335,7 +12895,8 @@
"capabilities" : [ "Kernel" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Alignment'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "MaxByteOffset",
@@ -12455,7 +13016,8 @@
"version" : "None",
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Offset'" }
- ]
+ ],
+ "version": "1.0"
},
{
"enumerant" : "PerPrimitiveNV",
@@ -13090,226 +13652,272 @@
{
"enumerant" : "Position",
"value" : 0,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "PointSize",
"value" : 1,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "ClipDistance",
"value" : 3,
- "capabilities" : [ "ClipDistance" ]
+ "capabilities" : [ "ClipDistance" ],
+ "version": "1.0"
},
{
"enumerant" : "CullDistance",
"value" : 4,
- "capabilities" : [ "CullDistance" ]
+ "capabilities" : [ "CullDistance" ],
+ "version": "1.0"
},
{
"enumerant" : "VertexId",
"value" : 5,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "InstanceId",
"value" : 6,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "PrimitiveId",
"value" : 7,
- "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV", "MeshShadingEXT" ]
+ "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV", "MeshShadingEXT" ],
+ "version": "1.0"
},
{
"enumerant" : "InvocationId",
"value" : 8,
- "capabilities" : [ "Geometry", "Tessellation" ]
+ "capabilities" : [ "Geometry", "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "Layer",
"value" : 9,
- "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ]
+ "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ],
+ "version": "1.0"
},
{
"enumerant" : "ViewportIndex",
"value" : 10,
- "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ]
+ "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ],
+ "version": "1.0"
},
{
"enumerant" : "TessLevelOuter",
"value" : 11,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "TessLevelInner",
"value" : 12,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "TessCoord",
"value" : 13,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "PatchVertices",
"value" : 14,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "FragCoord",
"value" : 15,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "PointCoord",
"value" : 16,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "FrontFacing",
"value" : 17,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "SampleId",
"value" : 18,
- "capabilities" : [ "SampleRateShading" ]
+ "capabilities" : [ "SampleRateShading" ],
+ "version": "1.0"
},
{
"enumerant" : "SamplePosition",
"value" : 19,
- "capabilities" : [ "SampleRateShading" ]
+ "capabilities" : [ "SampleRateShading" ],
+ "version": "1.0"
},
{
"enumerant" : "SampleMask",
"value" : 20,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "FragDepth",
"value" : 22,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "HelperInvocation",
"value" : 23,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "NumWorkgroups",
- "value" : 24
+ "value" : 24,
+ "version" : "1.0"
},
{
"enumerant" : "WorkgroupSize",
- "value" : 25
+ "value" : 25,
+ "version" : "1.0"
},
{
"enumerant" : "WorkgroupId",
- "value" : 26
+ "value" : 26,
+ "version" : "1.0"
},
{
"enumerant" : "LocalInvocationId",
- "value" : 27
+ "value" : 27,
+ "version" : "1.0"
},
{
"enumerant" : "GlobalInvocationId",
- "value" : 28
+ "value" : 28,
+ "version" : "1.0"
},
{
"enumerant" : "LocalInvocationIndex",
- "value" : 29
+ "value" : 29,
+ "version" : "1.0"
},
{
"enumerant" : "WorkDim",
"value" : 30,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "GlobalSize",
"value" : 31,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "EnqueuedWorkgroupSize",
"value" : 32,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "GlobalOffset",
"value" : 33,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "GlobalLinearId",
"value" : 34,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "SubgroupSize",
"value" : 36,
- "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ]
+ "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ],
+ "version": "1.0"
},
{
"enumerant" : "SubgroupMaxSize",
"value" : 37,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "NumSubgroups",
"value" : 38,
- "capabilities" : [ "Kernel", "GroupNonUniform" ]
+ "capabilities" : [ "Kernel", "GroupNonUniform" ],
+ "version": "1.0"
},
{
"enumerant" : "NumEnqueuedSubgroups",
"value" : 39,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "SubgroupId",
"value" : 40,
- "capabilities" : [ "Kernel", "GroupNonUniform" ]
+ "capabilities" : [ "Kernel", "GroupNonUniform" ],
+ "version": "1.0"
},
{
"enumerant" : "SubgroupLocalInvocationId",
"value" : 41,
- "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ]
+ "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ],
+ "version": "1.0"
},
{
"enumerant" : "VertexIndex",
"value" : 42,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "InstanceIndex",
"value" : 43,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "CoreIDARM",
"value" : 4160,
- "capabilities" : [ "CoreBuiltinsARM" ]
+ "capabilities" : [ "CoreBuiltinsARM" ],
+ "version": "1.0"
},
{
"enumerant" : "CoreCountARM",
"value" : 4161,
- "capabilities" : [ "CoreBuiltinsARM" ]
+ "capabilities" : [ "CoreBuiltinsARM" ],
+ "version": "1.0"
},
{
"enumerant" : "CoreMaxIDARM",
"value" : 4162,
- "capabilities" : [ "CoreBuiltinsARM" ]
+ "capabilities" : [ "CoreBuiltinsARM" ],
+ "version": "1.0"
},
{
"enumerant" : "WarpIDARM",
"value" : 4163,
- "capabilities" : [ "CoreBuiltinsARM" ]
+ "capabilities" : [ "CoreBuiltinsARM" ],
+ "version": "1.0"
},
{
"enumerant" : "WarpMaxIDARM",
"value" : 4164,
- "capabilities" : [ "CoreBuiltinsARM" ]
+ "capabilities" : [ "CoreBuiltinsARM" ],
+ "version": "1.0"
},
{
"enumerant" : "SubgroupEqMask",
@@ -13920,23 +14528,28 @@
"enumerants" : [
{
"enumerant" : "CrossDevice",
- "value" : 0
+ "value" : 0,
+ "version" : "1.0"
},
{
"enumerant" : "Device",
- "value" : 1
+ "value" : 1,
+ "version" : "1.0"
},
{
"enumerant" : "Workgroup",
- "value" : 2
+ "value" : 2,
+ "version" : "1.0"
},
{
"enumerant" : "Subgroup",
- "value" : 3
+ "value" : 3,
+ "version" : "1.0"
},
{
"enumerant" : "Invocation",
- "value" : 4
+ "value" : 4,
+ "version" : "1.0"
},
{
"enumerant" : "QueueFamily",
@@ -13965,17 +14578,20 @@
{
"enumerant" : "Reduce",
"value" : 0,
- "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
+ "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ],
+ "version": "1.0"
},
{
"enumerant" : "InclusiveScan",
"value" : 1,
- "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
+ "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ],
+ "version": "1.0"
},
{
"enumerant" : "ExclusiveScan",
"value" : 2,
- "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
+ "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ],
+ "version": "1.0"
},
{
"enumerant" : "ClusteredReduce",
@@ -14013,17 +14629,20 @@
{
"enumerant" : "NoWait",
"value" : 0,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "WaitKernel",
"value" : 1,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "WaitWorkGroup",
"value" : 2,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
}
]
},
@@ -14033,272 +14652,328 @@
"enumerants" : [
{
"enumerant" : "Matrix",
- "value" : 0
+ "value" : 0,
+ "version" : "1.0"
},
{
"enumerant" : "Shader",
"value" : 1,
- "capabilities" : [ "Matrix" ]
+ "capabilities" : [ "Matrix" ],
+ "version": "1.0"
},
{
"enumerant" : "Geometry",
"value" : 2,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Tessellation",
"value" : 3,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Addresses",
- "value" : 4
+ "value" : 4,
+ "version" : "1.0"
},
{
"enumerant" : "Linkage",
- "value" : 5
+ "value" : 5,
+ "version" : "1.0"
},
{
"enumerant" : "Kernel",
- "value" : 6
+ "value" : 6,
+ "version" : "1.0"
},
{
"enumerant" : "Vector16",
"value" : 7,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Float16Buffer",
"value" : 8,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Float16",
- "value" : 9
+ "value" : 9,
+ "version" : "1.0"
},
{
"enumerant" : "Float64",
- "value" : 10
+ "value" : 10,
+ "version" : "1.0"
},
{
"enumerant" : "Int64",
- "value" : 11
+ "value" : 11,
+ "version" : "1.0"
},
{
"enumerant" : "Int64Atomics",
"value" : 12,
- "capabilities" : [ "Int64" ]
+ "capabilities" : [ "Int64" ],
+ "version": "1.0"
},
{
"enumerant" : "ImageBasic",
"value" : 13,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "ImageReadWrite",
"value" : 14,
- "capabilities" : [ "ImageBasic" ]
+ "capabilities" : [ "ImageBasic" ],
+ "version": "1.0"
},
{
"enumerant" : "ImageMipmap",
"value" : 15,
- "capabilities" : [ "ImageBasic" ]
+ "capabilities" : [ "ImageBasic" ],
+ "version": "1.0"
},
{
"enumerant" : "Pipes",
"value" : 17,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "Groups",
"value" : 18,
- "extensions" : [ "SPV_AMD_shader_ballot" ]
+ "extensions" : [ "SPV_AMD_shader_ballot" ],
+ "version": "1.0"
},
{
"enumerant" : "DeviceEnqueue",
"value" : 19,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "LiteralSampler",
"value" : 20,
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "version": "1.0"
},
{
"enumerant" : "AtomicStorage",
"value" : 21,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Int16",
- "value" : 22
+ "value" : 22,
+ "version" : "1.0"
},
{
"enumerant" : "TessellationPointSize",
"value" : 23,
- "capabilities" : [ "Tessellation" ]
+ "capabilities" : [ "Tessellation" ],
+ "version": "1.0"
},
{
"enumerant" : "GeometryPointSize",
"value" : 24,
- "capabilities" : [ "Geometry" ]
+ "capabilities" : [ "Geometry" ],
+ "version": "1.0"
},
{
"enumerant" : "ImageGatherExtended",
"value" : 25,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "StorageImageMultisample",
"value" : 27,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "UniformBufferArrayDynamicIndexing",
"value" : 28,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "SampledImageArrayDynamicIndexing",
"value" : 29,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "StorageBufferArrayDynamicIndexing",
"value" : 30,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "StorageImageArrayDynamicIndexing",
"value" : 31,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "ClipDistance",
"value" : 32,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "CullDistance",
"value" : 33,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "ImageCubeArray",
"value" : 34,
- "capabilities" : [ "SampledCubeArray" ]
+ "capabilities" : [ "SampledCubeArray" ],
+ "version": "1.0"
},
{
"enumerant" : "SampleRateShading",
"value" : 35,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "ImageRect",
"value" : 36,
- "capabilities" : [ "SampledRect" ]
+ "capabilities" : [ "SampledRect" ],
+ "version": "1.0"
},
{
"enumerant" : "SampledRect",
"value" : 37,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "GenericPointer",
"value" : 38,
- "capabilities" : [ "Addresses" ]
+ "capabilities" : [ "Addresses" ],
+ "version": "1.0"
},
{
"enumerant" : "Int8",
- "value" : 39
+ "value" : 39,
+ "version" : "1.0"
},
{
"enumerant" : "InputAttachment",
"value" : 40,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "SparseResidency",
"value" : 41,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "MinLod",
"value" : 42,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "Sampled1D",
- "value" : 43
+ "value" : 43,
+ "version" : "1.0"
},
{
"enumerant" : "Image1D",
"value" : 44,
- "capabilities" : [ "Sampled1D" ]
+ "capabilities" : [ "Sampled1D" ],
+ "version": "1.0"
},
{
"enumerant" : "SampledCubeArray",
"value" : 45,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "SampledBuffer",
- "value" : 46
+ "value" : 46,
+ "version" : "1.0"
},
{
"enumerant" : "ImageBuffer",
"value" : 47,
- "capabilities" : [ "SampledBuffer" ]
+ "capabilities" : [ "SampledBuffer" ],
+ "version": "1.0"
},
{
"enumerant" : "ImageMSArray",
"value" : 48,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "StorageImageExtendedFormats",
"value" : 49,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "ImageQuery",
"value" : 50,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "DerivativeControl",
"value" : 51,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "InterpolationFunction",
"value" : 52,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "TransformFeedback",
"value" : 53,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "GeometryStreams",
"value" : 54,
- "capabilities" : [ "Geometry" ]
+ "capabilities" : [ "Geometry" ],
+ "version": "1.0"
},
{
"enumerant" : "StorageImageReadWithoutFormat",
"value" : 55,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "StorageImageWriteWithoutFormat",
"value" : 56,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "version": "1.0"
},
{
"enumerant" : "MultiViewport",
"value" : 57,
- "capabilities" : [ "Geometry" ]
+ "capabilities" : [ "Geometry" ],
+ "version": "1.0"
},
{
"enumerant" : "SubgroupDispatch",
@@ -14383,7 +15058,8 @@
{
"enumerant" : "CoreBuiltinsARM",
"value" : 4165,
- "extensions" : [ "SPV_ARM_core_builtins" ]
+ "extensions" : [ "SPV_ARM_core_builtins" ],
+ "version": "None"
},
{
"enumerant" : "TileImageColorReadAccessEXT",
diff --git a/tools/buildHeaders/jsonToSpirv.cpp b/tools/buildHeaders/jsonToSpirv.cpp
index d13ba68..6135cd9 100644
--- a/tools/buildHeaders/jsonToSpirv.cpp
+++ b/tools/buildHeaders/jsonToSpirv.cpp
@@ -36,8 +36,185 @@
#include "jsonToSpirv.h"
+namespace {
+// Returns true if the given string is a valid SPIR-V version.
+bool validSpirvVersionString(const std::string s) {
+ return
+ s == "1.0" ||
+ s == "1.1" ||
+ s == "1.2" ||
+ s == "1.3" ||
+ s == "1.4" ||
+ s == "1.5" ||
+ s == "1.6";
+}
+
+// Returns true if the given string is a valid version
+// specifier in the grammar file.
+bool validSpirvVersionStringSpecifier(const std::string s) {
+ return s == "None" || validSpirvVersionString(s);
+}
+} // anonymous namespace
+
namespace spv {
+bool IsLegacyDoublyEnabledInstruction(const std::string& instruction) {
+ static std::unordered_set<std::string> allowed = {
+ "OpSubgroupBallotKHR",
+ "OpSubgroupFirstInvocationKHR",
+ "OpSubgroupAllKHR",
+ "OpSubgroupAnyKHR",
+ "OpSubgroupAllEqualKHR",
+ "OpSubgroupReadInvocationKHR",
+ "OpTraceRayKHR",
+ "OpExecuteCallableKHR",
+ "OpConvertUToAccelerationStructureKHR",
+ "OpIgnoreIntersectionKHR",
+ "OpTerminateRayKHR",
+ "OpTypeRayQueryKHR",
+ "OpRayQueryInitializeKHR",
+ "OpRayQueryTerminateKHR",
+ "OpRayQueryGenerateIntersectionKHR",
+ "OpRayQueryConfirmIntersectionKHR",
+ "OpRayQueryProceedKHR",
+ "OpRayQueryGetIntersectionTypeKHR",
+ "OpGroupIAddNonUniformAMD",
+ "OpGroupFAddNonUniformAMD",
+ "OpGroupFMinNonUniformAMD",
+ "OpGroupUMinNonUniformAMD",
+ "OpGroupSMinNonUniformAMD",
+ "OpGroupFMaxNonUniformAMD",
+ "OpGroupUMaxNonUniformAMD",
+ "OpGroupSMaxNonUniformAMD",
+ "OpFragmentMaskFetchAMD",
+ "OpFragmentFetchAMD",
+ "OpImageSampleFootprintNV",
+ "OpGroupNonUniformPartitionNV",
+ "OpWritePackedPrimitiveIndices4x8NV",
+ "OpReportIntersectionNV",
+ "OpReportIntersectionKHR",
+ "OpIgnoreIntersectionNV",
+ "OpTerminateRayNV",
+ "OpTraceNV",
+ "OpTraceMotionNV",
+ "OpTraceRayMotionNV",
+ "OpTypeAccelerationStructureNV",
+ "OpTypeAccelerationStructureKHR",
+ "OpExecuteCallableNV",
+ "OpTypeCooperativeMatrixNV",
+ "OpCooperativeMatrixLoadNV",
+ "OpCooperativeMatrixStoreNV",
+ "OpCooperativeMatrixMulAddNV",
+ "OpCooperativeMatrixLengthNV",
+ "OpBeginInvocationInterlockEXT",
+ "OpEndInvocationInterlockEXT",
+ "OpIsHelperInvocationEXT",
+ "OpConstantFunctionPointerINTEL",
+ "OpFunctionPointerCallINTEL",
+ "OpAssumeTrueKHR",
+ "OpExpectKHR",
+ "OpLoopControlINTEL",
+ "OpAliasDomainDeclINTEL",
+ "OpAliasScopeDeclINTEL",
+ "OpAliasScopeListDeclINTEL",
+ "OpReadPipeBlockingINTEL",
+ "OpWritePipeBlockingINTEL",
+ "OpFPGARegINTEL",
+ "OpRayQueryGetRayTMinKHR",
+ "OpRayQueryGetRayFlagsKHR",
+ "OpRayQueryGetIntersectionTKHR",
+ "OpRayQueryGetIntersectionInstanceCustomIndexKHR",
+ "OpRayQueryGetIntersectionInstanceIdKHR",
+ "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR",
+ "OpRayQueryGetIntersectionGeometryIndexKHR",
+ "OpRayQueryGetIntersectionPrimitiveIndexKHR",
+ "OpRayQueryGetIntersectionBarycentricsKHR",
+ "OpRayQueryGetIntersectionFrontFaceKHR",
+ "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR",
+ "OpRayQueryGetIntersectionObjectRayDirectionKHR",
+ "OpRayQueryGetIntersectionObjectRayOriginKHR",
+ "OpRayQueryGetWorldRayDirectionKHR",
+ "OpRayQueryGetWorldRayOriginKHR",
+ "OpRayQueryGetIntersectionObjectToWorldKHR",
+ "OpRayQueryGetIntersectionWorldToObjectKHR",
+ "OpAtomicFAddEXT",
+ };
+ return allowed.count(instruction) != 0;
+}
+
+bool EnumValue::IsValid(OperandClass oc, const std::string& context) const
+{
+ bool result = true;
+ if (firstVersion.empty()) {
+ std::cerr << "Error: " << context << " " << name << " \"version\" must be set, probably to \"None\"" << std::endl;
+ result = false;
+ } else if (!validSpirvVersionStringSpecifier(firstVersion)) {
+ std::cerr << "Error: " << context << " " << name << " \"version\" is invalid: " << firstVersion << std::endl;
+ result = false;
+ }
+ if (!lastVersion.empty() && !validSpirvVersionString(lastVersion)) {
+ std::cerr << "Error: " << context << " " << name << " \"lastVersion\" is invalid: " << lastVersion << std::endl;
+ result = false;
+ }
+
+ // When a feature is introduced by an extension, the firstVersion is set to
+ // "None". There are three cases:
+ // - A new capability should be guarded/enabled by the extension
+ // - A new instruction should be:
+ // - Guarded/enabled by a new capability.
+ // - Not enabled by *both* a capability and an extension.
+ // There are many existing instructions that are already like this,
+ // and we grandparent them as allowed.
+ // - Other enums fall into two cases:
+ // 1. The enum is part of a new operand kind introduced by the extension.
+ // In this case we rely on transitivity: The use of the operand occurs
+ // in a new instruction that itself is guarded; or as the operand of
+ // another operand that itself is (recursively) guarded.
+ // 2. The enum is a new case in an existing operand kind. This case
+ // should be guarded by a capability. However, we do not check this
+ // here. Checking it requires more context than we have here.
+ if (oc == OperandOpcode) {
+ const bool instruction_unusable =
+ (firstVersion == "None") && extensions.empty() && capabilities.empty();
+ if (instruction_unusable) {
+ std::cerr << "Error: " << context << " " << name << " is not usable: "
+ << "its version is set to \"None\", and it is not enabled by a "
+ << "capability or extension. Guard it with a capability."
+ << std::endl;
+ result = false;
+ }
+ // Complain if an instruction is not in any core version and also enabled by
+ // both an extension and a capability.
+ // It's important to check the "not in any core version" case, because,
+ // for example, OpTerminateInvocation is in SPIR-V 1.6 *and* enabled by an
+ // extension, and guarded by the Shader capability.
+ const bool instruction_doubly_enabled = (firstVersion == "None") &&
+ !extensions.empty() &&
+ !capabilities.empty();
+ if (instruction_doubly_enabled && !IsLegacyDoublyEnabledInstruction(name)) {
+ std::cerr << "Error: " << context << " " << name << " is doubly-enabled: "
+ << "it is enabled by both a capability and an extension. "
+ << "Guard it with a capability only." << std::endl;
+ result = false;
+ }
+ }
+ if (oc == OperandCapability) {
+ // If capability X lists capabilities Y and Z, then Y and Z are *enabled*
+ // when X is enabled. They are not *guards* on X's use.
+ // Only versions and extensions can guard a capability.
+ const bool capability_unusable =
+ (firstVersion == "None") && extensions.empty();
+ if (capability_unusable) {
+ std::cerr << "Error: " << context << " " << name << " is not usable: "
+ << "its version is set to \"None\", and it is not enabled by "
+ << "an extension. Guard it with an extension." << std::endl;
+ result = false;
+ }
+ }
+
+ return result;
+}
+
// The set of objects that hold all the instruction/operand
// parameterization information.
InstructionValues InstructionDesc;
@@ -290,6 +467,8 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
return;
initialized = true;
+ size_t errorCount = 0;
+
// Read the JSON grammar file.
bool fileReadOk = false;
std::string content;
@@ -404,12 +583,15 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
std::move(caps), std::move(version), std::move(lastVersion), std::move(exts),
std::move(operands))),
printingClass, defTypeId, defResultId);
+ if (!InstructionDesc.back().IsValid(OperandOpcode, "instruction")) {
+ errorCount++;
+ }
}
// Specific additional context-dependent operands
// Populate dest with EnumValue objects constructed from source.
- const auto populateEnumValues = [&getCaps,&getExts](EnumValues* dest, const Json::Value& source, bool bitEnum) {
+ const auto populateEnumValues = [&getCaps,&getExts,&errorCount](EnumValues* dest, const Json::Value& source, bool bitEnum) {
// A lambda for determining the numeric value to be used for a given
// enumerant in JSON form, and whether that value is a 0 in a bitfield.
auto getValue = [&bitEnum](const Json::Value& enumerant) {
@@ -468,12 +650,22 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
}
};
- const auto establishOperandClass = [&populateEnumValues](
+ const auto establishOperandClass = [&populateEnumValues,&errorCount](
const std::string& enumName, spv::OperandClass operandClass,
spv::EnumValues* enumValues, const Json::Value& operandEnum, const std::string& category) {
assert(category == "BitEnum" || category == "ValueEnum");
bool bitEnum = (category == "BitEnum");
+ if (!operandEnum["version"].empty()) {
+ std::cerr << "Error: container for " << enumName << " operand_kind must not have a version field" << std::endl;
+ errorCount++;
+ }
populateEnumValues(enumValues, operandEnum, bitEnum);
+ const std::string errContext = "enum " + enumName;
+ for (const auto& e: *enumValues) {
+ if (!e.IsValid(operandClass, errContext)) {
+ errorCount++;
+ }
+ }
OperandClassParams[operandClass].set(enumName, enumValues, bitEnum);
};
@@ -573,6 +765,10 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
establishOperandClass(enumName, OperandHostAccessQualifier, &HostAccessQualifierParams, operandEnum, category);
}
}
+
+ if (errorCount > 0) {
+ std::exit(1);
+ }
}
}; // end namespace spv
diff --git a/tools/buildHeaders/jsonToSpirv.h b/tools/buildHeaders/jsonToSpirv.h
index f902347..5e96218 100644
--- a/tools/buildHeaders/jsonToSpirv.h
+++ b/tools/buildHeaders/jsonToSpirv.h
@@ -189,6 +189,7 @@ public:
iterator begin() { return values.begin(); }
iterator end() { return values.end(); }
+ EValue& back() { return values.back(); }
private:
ContainerType values;
@@ -221,6 +222,10 @@ public:
Extensions extensions;
OperandParameters operands;
const char* desc;
+
+ // Returns true if this enum is valid, in isolation.
+ // Otherwise emits a diagnostic to std::cerr and returns false.
+ bool IsValid(OperandClass oc, const std::string& context) const;
};
using EnumValues = EnumValuesContainer<EnumValue>;