aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Kessenich <cepheus@frii.com>2017-05-15 23:34:12 -0600
committerJohn Kessenich <cepheus@frii.com>2017-05-15 23:34:12 -0600
commit63e1062a194750b354d48be8c16750d7a4d0dc4e (patch)
tree9184f7131a80e977128f1df00a1ac41718cf3956
parentdb5cf6176137003ca4c25df96f7c0649998c3499 (diff)
downloadspirv-headers-63e1062a194750b354d48be8c16750d7a4d0dc4e.tar.gz
Add version 1.2 headers, update 1.1 to rev. 7, and 1.0 to rev. 11.
-rw-r--r--include/spirv/1.0/spirv.core.grammar.json2
-rw-r--r--include/spirv/1.0/spirv.h4
-rw-r--r--include/spirv/1.0/spirv.hpp4
-rw-r--r--include/spirv/1.0/spirv.hpp114
-rw-r--r--include/spirv/1.0/spirv.json2
-rw-r--r--include/spirv/1.0/spirv.lua2
-rw-r--r--include/spirv/1.0/spirv.py2
-rw-r--r--include/spirv/1.1/spirv.core.grammar.json2
-rw-r--r--include/spirv/1.1/spirv.h4
-rw-r--r--include/spirv/1.1/spirv.hpp4
-rw-r--r--include/spirv/1.1/spirv.hpp114
-rw-r--r--include/spirv/1.1/spirv.json2
-rw-r--r--include/spirv/1.1/spirv.lua2
-rw-r--r--include/spirv/1.1/spirv.py2
-rw-r--r--include/spirv/1.2/GLSL.std.450.h131
-rw-r--r--include/spirv/1.2/OpenCL.std.h210
-rw-r--r--include/spirv/1.2/extinst.glsl.std.450.grammar.json642
-rw-r--r--include/spirv/1.2/extinst.opencl.std.100.grammar.json1279
-rw-r--r--include/spirv/1.2/spirv.core.grammar.json5643
-rw-r--r--include/spirv/1.2/spirv.h978
-rw-r--r--include/spirv/1.2/spirv.hpp987
-rw-r--r--include/spirv/1.2/spirv.hpp11987
-rw-r--r--include/spirv/1.2/spirv.json1003
-rw-r--r--include/spirv/1.2/spirv.lua934
-rwxr-xr-xinclude/spirv/1.2/spirv.py934
25 files changed, 13748 insertions, 20 deletions
diff --git a/include/spirv/1.0/spirv.core.grammar.json b/include/spirv/1.0/spirv.core.grammar.json
index d937191..d7b9867 100644
--- a/include/spirv/1.0/spirv.core.grammar.json
+++ b/include/spirv/1.0/spirv.core.grammar.json
@@ -27,7 +27,7 @@
"magic_number" : "0x07230203",
"major_version" : 1,
"minor_version" : 0,
- "revision" : 10,
+ "revision" : 11,
"instructions" : [
{
"opname" : "OpNop",
diff --git a/include/spirv/1.0/spirv.h b/include/spirv/1.0/spirv.h
index 1f609ad..3edddb2 100644
--- a/include/spirv/1.0/spirv.h
+++ b/include/spirv/1.0/spirv.h
@@ -51,11 +51,11 @@
typedef unsigned int SpvId;
#define SPV_VERSION 0x10000
-#define SPV_REVISION 10
+#define SPV_REVISION 11
static const unsigned int SpvMagicNumber = 0x07230203;
static const unsigned int SpvVersion = 0x00010000;
-static const unsigned int SpvRevision = 10;
+static const unsigned int SpvRevision = 11;
static const unsigned int SpvOpCodeMask = 0xffff;
static const unsigned int SpvWordCountShift = 16;
diff --git a/include/spirv/1.0/spirv.hpp b/include/spirv/1.0/spirv.hpp
index 91cb59e..834bfcd 100644
--- a/include/spirv/1.0/spirv.hpp
+++ b/include/spirv/1.0/spirv.hpp
@@ -47,11 +47,11 @@ namespace spv {
typedef unsigned int Id;
#define SPV_VERSION 0x10000
-#define SPV_REVISION 10
+#define SPV_REVISION 11
static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 0x00010000;
-static const unsigned int Revision = 10;
+static const unsigned int Revision = 11;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
diff --git a/include/spirv/1.0/spirv.hpp11 b/include/spirv/1.0/spirv.hpp11
index 51aefa5..19cb391 100644
--- a/include/spirv/1.0/spirv.hpp11
+++ b/include/spirv/1.0/spirv.hpp11
@@ -47,11 +47,11 @@ namespace spv {
typedef unsigned int Id;
#define SPV_VERSION 0x10000
-#define SPV_REVISION 10
+#define SPV_REVISION 11
static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 0x00010000;
-static const unsigned int Revision = 10;
+static const unsigned int Revision = 11;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
diff --git a/include/spirv/1.0/spirv.json b/include/spirv/1.0/spirv.json
index 37081b2..71dcb86 100644
--- a/include/spirv/1.0/spirv.json
+++ b/include/spirv/1.0/spirv.json
@@ -52,7 +52,7 @@
],
"MagicNumber": 119734787,
"Version": 65536,
- "Revision": 10,
+ "Revision": 11,
"OpCodeMask": 65535,
"WordCountShift": 16
},
diff --git a/include/spirv/1.0/spirv.lua b/include/spirv/1.0/spirv.lua
index ef8ce13..3200a5c 100644
--- a/include/spirv/1.0/spirv.lua
+++ b/include/spirv/1.0/spirv.lua
@@ -42,7 +42,7 @@
spv = {
MagicNumber = 0x07230203,
Version = 0x00010000,
- Revision = 10,
+ Revision = 11,
OpCodeMask = 0xffff,
WordCountShift = 16,
diff --git a/include/spirv/1.0/spirv.py b/include/spirv/1.0/spirv.py
index d37de61..7c1efcb 100644
--- a/include/spirv/1.0/spirv.py
+++ b/include/spirv/1.0/spirv.py
@@ -42,7 +42,7 @@
spv = {
'MagicNumber' : 0x07230203,
'Version' : 0x00010000,
- 'Revision' : 10,
+ 'Revision' : 11,
'OpCodeMask' : 0xffff,
'WordCountShift' : 16,
diff --git a/include/spirv/1.1/spirv.core.grammar.json b/include/spirv/1.1/spirv.core.grammar.json
index c3c62d3..037b01b 100644
--- a/include/spirv/1.1/spirv.core.grammar.json
+++ b/include/spirv/1.1/spirv.core.grammar.json
@@ -27,7 +27,7 @@
"magic_number" : "0x07230203",
"major_version" : 1,
"minor_version" : 1,
- "revision" : 6,
+ "revision" : 7,
"instructions" : [
{
"opname" : "OpNop",
diff --git a/include/spirv/1.1/spirv.h b/include/spirv/1.1/spirv.h
index 65a50ef..173d77b 100644
--- a/include/spirv/1.1/spirv.h
+++ b/include/spirv/1.1/spirv.h
@@ -51,11 +51,11 @@
typedef unsigned int SpvId;
#define SPV_VERSION 0x10100
-#define SPV_REVISION 6
+#define SPV_REVISION 7
static const unsigned int SpvMagicNumber = 0x07230203;
static const unsigned int SpvVersion = 0x00010100;
-static const unsigned int SpvRevision = 6;
+static const unsigned int SpvRevision = 7;
static const unsigned int SpvOpCodeMask = 0xffff;
static const unsigned int SpvWordCountShift = 16;
diff --git a/include/spirv/1.1/spirv.hpp b/include/spirv/1.1/spirv.hpp
index a70c595..d87bd02 100644
--- a/include/spirv/1.1/spirv.hpp
+++ b/include/spirv/1.1/spirv.hpp
@@ -47,11 +47,11 @@ namespace spv {
typedef unsigned int Id;
#define SPV_VERSION 0x10100
-#define SPV_REVISION 6
+#define SPV_REVISION 7
static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 0x00010100;
-static const unsigned int Revision = 6;
+static const unsigned int Revision = 7;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
diff --git a/include/spirv/1.1/spirv.hpp11 b/include/spirv/1.1/spirv.hpp11
index cb089a7..a681e14 100644
--- a/include/spirv/1.1/spirv.hpp11
+++ b/include/spirv/1.1/spirv.hpp11
@@ -47,11 +47,11 @@ namespace spv {
typedef unsigned int Id;
#define SPV_VERSION 0x10100
-#define SPV_REVISION 6
+#define SPV_REVISION 7
static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 0x00010100;
-static const unsigned int Revision = 6;
+static const unsigned int Revision = 7;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
diff --git a/include/spirv/1.1/spirv.json b/include/spirv/1.1/spirv.json
index b5a77d0..85d607f 100644
--- a/include/spirv/1.1/spirv.json
+++ b/include/spirv/1.1/spirv.json
@@ -52,7 +52,7 @@
],
"MagicNumber": 119734787,
"Version": 65792,
- "Revision": 6,
+ "Revision": 7,
"OpCodeMask": 65535,
"WordCountShift": 16
},
diff --git a/include/spirv/1.1/spirv.lua b/include/spirv/1.1/spirv.lua
index 743ba71..9ef12d5 100644
--- a/include/spirv/1.1/spirv.lua
+++ b/include/spirv/1.1/spirv.lua
@@ -42,7 +42,7 @@
spv = {
MagicNumber = 0x07230203,
Version = 0x00010100,
- Revision = 6,
+ Revision = 7,
OpCodeMask = 0xffff,
WordCountShift = 16,
diff --git a/include/spirv/1.1/spirv.py b/include/spirv/1.1/spirv.py
index 75f42dc..3e795ae 100644
--- a/include/spirv/1.1/spirv.py
+++ b/include/spirv/1.1/spirv.py
@@ -42,7 +42,7 @@
spv = {
'MagicNumber' : 0x07230203,
'Version' : 0x00010100,
- 'Revision' : 6,
+ 'Revision' : 7,
'OpCodeMask' : 0xffff,
'WordCountShift' : 16,
diff --git a/include/spirv/1.2/GLSL.std.450.h b/include/spirv/1.2/GLSL.std.450.h
new file mode 100644
index 0000000..54cc00e
--- /dev/null
+++ b/include/spirv/1.2/GLSL.std.450.h
@@ -0,0 +1,131 @@
+/*
+** Copyright (c) 2014-2016 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+#ifndef GLSLstd450_H
+#define GLSLstd450_H
+
+static const int GLSLstd450Version = 100;
+static const int GLSLstd450Revision = 3;
+
+enum GLSLstd450 {
+ GLSLstd450Bad = 0, // Don't use
+
+ GLSLstd450Round = 1,
+ GLSLstd450RoundEven = 2,
+ GLSLstd450Trunc = 3,
+ GLSLstd450FAbs = 4,
+ GLSLstd450SAbs = 5,
+ GLSLstd450FSign = 6,
+ GLSLstd450SSign = 7,
+ GLSLstd450Floor = 8,
+ GLSLstd450Ceil = 9,
+ GLSLstd450Fract = 10,
+
+ GLSLstd450Radians = 11,
+ GLSLstd450Degrees = 12,
+ GLSLstd450Sin = 13,
+ GLSLstd450Cos = 14,
+ GLSLstd450Tan = 15,
+ GLSLstd450Asin = 16,
+ GLSLstd450Acos = 17,
+ GLSLstd450Atan = 18,
+ GLSLstd450Sinh = 19,
+ GLSLstd450Cosh = 20,
+ GLSLstd450Tanh = 21,
+ GLSLstd450Asinh = 22,
+ GLSLstd450Acosh = 23,
+ GLSLstd450Atanh = 24,
+ GLSLstd450Atan2 = 25,
+
+ GLSLstd450Pow = 26,
+ GLSLstd450Exp = 27,
+ GLSLstd450Log = 28,
+ GLSLstd450Exp2 = 29,
+ GLSLstd450Log2 = 30,
+ GLSLstd450Sqrt = 31,
+ GLSLstd450InverseSqrt = 32,
+
+ GLSLstd450Determinant = 33,
+ GLSLstd450MatrixInverse = 34,
+
+ GLSLstd450Modf = 35, // second operand needs an OpVariable to write to
+ GLSLstd450ModfStruct = 36, // no OpVariable operand
+ GLSLstd450FMin = 37,
+ GLSLstd450UMin = 38,
+ GLSLstd450SMin = 39,
+ GLSLstd450FMax = 40,
+ GLSLstd450UMax = 41,
+ GLSLstd450SMax = 42,
+ GLSLstd450FClamp = 43,
+ GLSLstd450UClamp = 44,
+ GLSLstd450SClamp = 45,
+ GLSLstd450FMix = 46,
+ GLSLstd450IMix = 47, // Reserved
+ GLSLstd450Step = 48,
+ GLSLstd450SmoothStep = 49,
+
+ GLSLstd450Fma = 50,
+ GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to
+ GLSLstd450FrexpStruct = 52, // no OpVariable operand
+ GLSLstd450Ldexp = 53,
+
+ GLSLstd450PackSnorm4x8 = 54,
+ GLSLstd450PackUnorm4x8 = 55,
+ GLSLstd450PackSnorm2x16 = 56,
+ GLSLstd450PackUnorm2x16 = 57,
+ GLSLstd450PackHalf2x16 = 58,
+ GLSLstd450PackDouble2x32 = 59,
+ GLSLstd450UnpackSnorm2x16 = 60,
+ GLSLstd450UnpackUnorm2x16 = 61,
+ GLSLstd450UnpackHalf2x16 = 62,
+ GLSLstd450UnpackSnorm4x8 = 63,
+ GLSLstd450UnpackUnorm4x8 = 64,
+ GLSLstd450UnpackDouble2x32 = 65,
+
+ GLSLstd450Length = 66,
+ GLSLstd450Distance = 67,
+ GLSLstd450Cross = 68,
+ GLSLstd450Normalize = 69,
+ GLSLstd450FaceForward = 70,
+ GLSLstd450Reflect = 71,
+ GLSLstd450Refract = 72,
+
+ GLSLstd450FindILsb = 73,
+ GLSLstd450FindSMsb = 74,
+ GLSLstd450FindUMsb = 75,
+
+ GLSLstd450InterpolateAtCentroid = 76,
+ GLSLstd450InterpolateAtSample = 77,
+ GLSLstd450InterpolateAtOffset = 78,
+
+ GLSLstd450NMin = 79,
+ GLSLstd450NMax = 80,
+ GLSLstd450NClamp = 81,
+
+ GLSLstd450Count
+};
+
+#endif // #ifndef GLSLstd450_H
diff --git a/include/spirv/1.2/OpenCL.std.h b/include/spirv/1.2/OpenCL.std.h
new file mode 100644
index 0000000..19a6688
--- /dev/null
+++ b/include/spirv/1.2/OpenCL.std.h
@@ -0,0 +1,210 @@
+/*
+** Copyright (c) 2015-2017 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+namespace OpenCLLIB {
+
+enum Entrypoints {
+
+ // Section 2.1: Math extended instructions
+ Acos = 0,
+ Acosh = 1,
+ Acospi = 2,
+ Asin = 3,
+ Asinh = 4,
+ Asinpi = 5,
+ Atan = 6,
+ Atan2 = 7,
+ Atanh = 8,
+ Atanpi = 9,
+ Atan2pi = 10,
+ Cbrt = 11,
+ Ceil = 12,
+ Copysign = 13,
+ Cos = 14,
+ Cosh = 15,
+ Cospi = 16,
+ Erfc = 17,
+ Erf = 18,
+ Exp = 19,
+ Exp2 = 20,
+ Exp10 = 21,
+ Expm1 = 22,
+ Fabs = 23,
+ Fdim = 24,
+ Floor = 25,
+ Fma = 26,
+ Fmax = 27,
+ Fmin = 28,
+ Fmod = 29,
+ Fract = 30,
+ Frexp = 31,
+ Hypot = 32,
+ Ilogb = 33,
+ Ldexp = 34,
+ Lgamma = 35,
+ Lgamma_r = 36,
+ Log = 37,
+ Log2 = 38,
+ Log10 = 39,
+ Log1p = 40,
+ Logb = 41,
+ Mad = 42,
+ Maxmag = 43,
+ Minmag = 44,
+ Modf = 45,
+ Nan = 46,
+ Nextafter = 47,
+ Pow = 48,
+ Pown = 49,
+ Powr = 50,
+ Remainder = 51,
+ Remquo = 52,
+ Rint = 53,
+ Rootn = 54,
+ Round = 55,
+ Rsqrt = 56,
+ Sin = 57,
+ Sincos = 58,
+ Sinh = 59,
+ Sinpi = 60,
+ Sqrt = 61,
+ Tan = 62,
+ Tanh = 63,
+ Tanpi = 64,
+ Tgamma = 65,
+ Trunc = 66,
+ Half_cos = 67,
+ Half_divide = 68,
+ Half_exp = 69,
+ Half_exp2 = 70,
+ Half_exp10 = 71,
+ Half_log = 72,
+ Half_log2 = 73,
+ Half_log10 = 74,
+ Half_powr = 75,
+ Half_recip = 76,
+ Half_rsqrt = 77,
+ Half_sin = 78,
+ Half_sqrt = 79,
+ Half_tan = 80,
+ Native_cos = 81,
+ Native_divide = 82,
+ Native_exp = 83,
+ Native_exp2 = 84,
+ Native_exp10 = 85,
+ Native_log = 86,
+ Native_log2 = 87,
+ Native_log10 = 88,
+ Native_powr = 89,
+ Native_recip = 90,
+ Native_rsqrt = 91,
+ Native_sin = 92,
+ Native_sqrt = 93,
+ Native_tan = 94,
+
+ // Section 2.2: Integer instructions
+ SAbs = 141,
+ SAbs_diff = 142,
+ SAdd_sat = 143,
+ UAdd_sat = 144,
+ SHadd = 145,
+ UHadd = 146,
+ SRhadd = 147,
+ URhadd = 148,
+ SClamp = 149,
+ UClamp = 150,
+ Clz = 151,
+ Ctz = 152,
+ SMad_hi = 153,
+ UMad_sat = 154,
+ SMad_sat = 155,
+ SMax = 156,
+ UMax = 157,
+ SMin = 158,
+ UMin = 159,
+ SMul_hi = 160,
+ Rotate = 161,
+ SSub_sat = 162,
+ USub_sat = 163,
+ U_Upsample = 164,
+ S_Upsample = 165,
+ Popcount = 166,
+ SMad24 = 167,
+ UMad24 = 168,
+ SMul24 = 169,
+ UMul24 = 170,
+ UAbs = 201,
+ UAbs_diff = 202,
+ UMul_hi = 203,
+ UMad_hi = 204,
+
+ // Section 2.3: Common instructions
+ FClamp = 95,
+ Degrees = 96,
+ FMax_common = 97,
+ FMin_common = 98,
+ Mix = 99,
+ Radians = 100,
+ Step = 101,
+ Smoothstep = 102,
+ Sign = 103,
+
+ // Section 2.4: Geometric instructions
+ Cross = 104,
+ Distance = 105,
+ Length = 106,
+ Normalize = 107,
+ Fast_distance = 108,
+ Fast_length = 109,
+ Fast_normalize = 110,
+
+ // Section 2.5: Relational instructions
+ Bitselect = 186,
+ Select = 187,
+
+ // Section 2.6: Vector Data Load and Store instructions
+ Vloadn = 171,
+ Vstoren = 172,
+ Vload_half = 173,
+ Vload_halfn = 174,
+ Vstore_half = 175,
+ Vstore_half_r = 176,
+ Vstore_halfn = 177,
+ Vstore_halfn_r = 178,
+ Vloada_halfn = 179,
+ Vstorea_halfn = 180,
+ Vstorea_halfn_r = 181,
+
+ // Section 2.7: Miscellaneous Vector instructions
+ Shuffle = 182,
+ Shuffle2 = 183,
+
+ // Section 2.8: Misc instructions
+ Printf = 184,
+ Prefetch = 185,
+};
+
+} // end namespace OpenCLLIB
diff --git a/include/spirv/1.2/extinst.glsl.std.450.grammar.json b/include/spirv/1.2/extinst.glsl.std.450.grammar.json
new file mode 100644
index 0000000..3d9f39e
--- /dev/null
+++ b/include/spirv/1.2/extinst.glsl.std.450.grammar.json
@@ -0,0 +1,642 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "version" : 100,
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "Round",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "RoundEven",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Trunc",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FAbs",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SAbs",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FSign",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SSign",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Floor",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Ceil",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Fract",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Radians",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'degrees'" }
+ ]
+ },
+ {
+ "opname" : "Degrees",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'radians'" }
+ ]
+ },
+ {
+ "opname" : "Sin",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Cos",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Tan",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Asin",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Acos",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atan",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y_over_x'" }
+ ]
+ },
+ {
+ "opname" : "Sinh",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Cosh",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Tanh",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Asinh",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Acosh",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atanh",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atan2",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Pow",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "Exp",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Log",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Exp2",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Log2",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Sqrt",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "InverseSqrt",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Determinant",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "MatrixInverse",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Modf",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'i'" }
+ ]
+ },
+ {
+ "opname" : "ModfStruct",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FMin",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "UMin",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "SMin",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "FMax",
+ "opcode" : 40,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "UMax",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "SMax",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "FClamp",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "UClamp",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "SClamp",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "FMix",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "IMix",
+ "opcode" : 47,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "Step",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SmoothStep",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge0'" },
+ { "kind" : "IdRef", "name" : "'edge1'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Fma",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "Frexp",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "FrexpStruct",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Ldexp",
+ "opcode" : 53,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "PackSnorm4x8",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackUnorm4x8",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackSnorm2x16",
+ "opcode" : 56,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackUnorm2x16",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackHalf2x16",
+ "opcode" : 58,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackDouble2x32",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ],
+ "capabilities" : [ "Float64" ]
+ },
+ {
+ "opname" : "UnpackSnorm2x16",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackUnorm2x16",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackHalf2x16",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "UnpackSnorm4x8",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackUnorm4x8",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackDouble2x32",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ],
+ "capabilities" : [ "Float64" ]
+ },
+ {
+ "opname" : "Length",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Distance",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "Cross",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "Normalize",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FaceForward",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'N'" },
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'Nref'" }
+ ]
+ },
+ {
+ "opname" : "Reflect",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'N'" }
+ ]
+ },
+ {
+ "opname" : "Refract",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'N'" },
+ { "kind" : "IdRef", "name" : "'eta'" }
+ ]
+ },
+ {
+ "opname" : "FindILsb",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "FindSMsb",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "FindUMsb",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "InterpolateAtCentroid",
+ "opcode" : 76,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "InterpolateAtSample",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" },
+ { "kind" : "IdRef", "name" : "'sample'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "InterpolateAtOffset",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" },
+ { "kind" : "IdRef", "name" : "'offset'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "NMin",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "NMax",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "NClamp",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ }
+ ]
+}
diff --git a/include/spirv/1.2/extinst.opencl.std.100.grammar.json b/include/spirv/1.2/extinst.opencl.std.100.grammar.json
new file mode 100644
index 0000000..4fe4506
--- /dev/null
+++ b/include/spirv/1.2/extinst.opencl.std.100.grammar.json
@@ -0,0 +1,1279 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "version" : 100,
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "acos",
+ "opcode" : 0,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "acosh",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "acospi",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asin",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asinh",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asinpi",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan2",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atanh",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atanpi",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan2pi",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cbrt",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ceil",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "copysign",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "cos",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cosh",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cospi",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "erfc",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "erf",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp2",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp10",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "expm1",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fabs",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fdim",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "floor",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fma",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "fmax",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmin",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmod",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fract",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'ptr'" }
+ ]
+ },
+ {
+ "opname" : "frexp",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "hypot",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "ilogb",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ldexp",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'k'" }
+ ]
+ },
+ {
+ "opname" : "lgamma",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "lgamma_r",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'signp'" }
+ ]
+ },
+ {
+ "opname" : "log",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log2",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log10",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log1p",
+ "opcode" : 40,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "logb",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "mad",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "maxmag",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "minmag",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "modf",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'iptr'" }
+ ]
+ },
+ {
+ "opname" : "nan",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'nancode'" }
+ ]
+ },
+ {
+ "opname" : "nextafter",
+ "opcode" : 47,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "pow",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y" }
+ ]
+ },
+ {
+ "opname" : "pown",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "powr",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "remainder",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "remquo",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'quo'" }
+ ]
+ },
+ {
+ "opname" : "rint",
+ "opcode" : 53,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "rootn",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "round",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "rsqrt",
+ "opcode" : 56,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sin",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sincos",
+ "opcode" : 58,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'cosval'" }
+ ]
+ },
+ {
+ "opname" : "sinh",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sinpi",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sqrt",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tan",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tanh",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tanpi",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tgamma",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "trunc",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_cos",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_divide",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "half_exp",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_exp2",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_exp10",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log2",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log10",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_powr",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "half_recip",
+ "opcode" : 76,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_rsqrt",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_sin",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_sqrt",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_tan",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_cos",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_divide",
+ "opcode" : 82,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "native_exp",
+ "opcode" : 83,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_exp2",
+ "opcode" : 84,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_exp10",
+ "opcode" : 85,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log",
+ "opcode" : 86,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log2",
+ "opcode" : 87,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log10",
+ "opcode" : 88,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_powr",
+ "opcode" : 89,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "native_recip",
+ "opcode" : 90,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_rsqrt",
+ "opcode" : 91,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_sin",
+ "opcode" : 92,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_sqrt",
+ "opcode" : 93,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_tan",
+ "opcode" : 94,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_abs",
+ "opcode" : 141,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_abs_diff",
+ "opcode" : 142,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_add_sat",
+ "opcode" : 143,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_add_sat",
+ "opcode" : 144,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_hadd",
+ "opcode" : 145,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_hadd",
+ "opcode" : 146,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_rhadd",
+ "opcode" : 147,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_rhadd",
+ "opcode" : 148,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_clamp",
+ "opcode" : 149,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "u_clamp",
+ "opcode" : 150,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "clz",
+ "opcode" : 151,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ctz",
+ "opcode" : 152,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_mad_hi",
+ "opcode" : 153,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "u_mad_sat",
+ "opcode" : 154,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_mad_sat",
+ "opcode" : 155,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_max",
+ "opcode" : 156,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_max",
+ "opcode" : 157,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_min",
+ "opcode" : 158,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_min",
+ "opcode" : 159,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_mul_hi",
+ "opcode" : 160,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "rotate",
+ "opcode" : 161,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" },
+ { "kind" : "IdRef", "name" : "'i'" }
+ ]
+ },
+ {
+ "opname" : "s_sub_sat",
+ "opcode" : 162,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_sub_sat",
+ "opcode" : 163,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_upsample",
+ "opcode" : 164,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'hi'" },
+ { "kind" : "IdRef", "name" : "'lo'" }
+ ]
+ },
+ {
+ "opname" : "s_upsample",
+ "opcode" : 165,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'hi'" },
+ { "kind" : "IdRef", "name" : "'lo'" }
+ ]
+ },
+ {
+ "opname" : "popcount",
+ "opcode" : 166,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_mad24",
+ "opcode" : 167,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "u_mad24",
+ "opcode" : 168,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_mul24",
+ "opcode" : 169,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mul24",
+ "opcode" : 170,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_abs",
+ "opcode" : 201,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "u_abs_diff",
+ "opcode" : 202,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mul_hi",
+ "opcode" : 203,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mad_hi",
+ "opcode" : 204,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "fclamp",
+ "opcode" : 95,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "degrees",
+ "opcode" :96,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'radians'" }
+ ]
+ },
+ {
+ "opname" : "fmax_common",
+ "opcode" : 97,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmin_common",
+ "opcode" : 98,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "mix",
+ "opcode" : 99,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "radians",
+ "opcode" : 100,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'degrees'" }
+ ]
+ },
+ {
+ "opname" : "step",
+ "opcode" : 101,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "smoothstep",
+ "opcode" : 102,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge0'" },
+ { "kind" : "IdRef", "name" : "'edge1'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sign",
+ "opcode" : 103,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cross",
+ "opcode" : 104,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "distance",
+ "opcode" : 105,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "length",
+ "opcode" : 106,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "normalize",
+ "opcode" : 107,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "fast_distance",
+ "opcode" : 108,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "fast_length",
+ "opcode" : 109,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "fast_normalize",
+ "opcode" : 110,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "bitselect",
+ "opcode" : 186,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "select",
+ "opcode" : 187,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "vloadn",
+ "opcode" : 171,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstoren",
+ "opcode" : 172,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vload_half",
+ "opcode" : 173,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vload_halfn",
+ "opcode" : 174,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstore_half",
+ "opcode" : 175,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstore_half_r",
+ "opcode" : 176,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "vstore_halfn",
+ "opcode" : 177,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstore_halfn_r",
+ "opcode" : 178,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "vloada_halfn",
+ "opcode" : 179,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstorea_halfn",
+ "opcode" : 180,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstorea_halfn_r",
+ "opcode" : 181,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "shuffle",
+ "opcode" : 182,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'shuffle mask'" }
+ ]
+ },
+ {
+ "opname" : "shuffle2",
+ "opcode" : 183,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'shuffle mask'" }
+ ]
+ },
+ {
+ "opname" : "printf",
+ "opcode" : 184,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'format'" },
+ { "kind" : "IdRef", "name" : "'additional arguments'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "prefetch",
+ "opcode" : 185,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'ptr'" },
+ { "kind" : "IdRef", "name" : "'num elements'" }
+ ]
+ }
+ ]
+}
diff --git a/include/spirv/1.2/spirv.core.grammar.json b/include/spirv/1.2/spirv.core.grammar.json
new file mode 100644
index 0000000..22a4c6b
--- /dev/null
+++ b/include/spirv/1.2/spirv.core.grammar.json
@@ -0,0 +1,5643 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "magic_number" : "0x07230203",
+ "major_version" : 1,
+ "minor_version" : 2,
+ "revision" : 1,
+ "instructions" : [
+ {
+ "opname" : "OpNop",
+ "opcode" : 0
+ },
+ {
+ "opname" : "OpUndef",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSourceContinued",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Continued Source'" }
+ ]
+ },
+ {
+ "opname" : "OpSource",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "SourceLanguage" },
+ { "kind" : "LiteralInteger", "name" : "'Version'" },
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'File'" },
+ { "kind" : "LiteralString", "quantifier" : "?", "name" : "'Source'" }
+ ]
+ },
+ {
+ "opname" : "OpSourceExtension",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Extension'" }
+ ]
+ },
+ {
+ "opname" : "OpName",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpMemberName",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpString",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "'String'" }
+ ]
+ },
+ {
+ "opname" : "OpLine",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'File'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" }
+ ]
+ },
+ {
+ "opname" : "OpExtension",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpExtInstImport",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpExtInst",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Set'" },
+ { "kind" : "LiteralExtInstInteger", "name" : "'Instruction'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpMemoryModel",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "AddressingModel" },
+ { "kind" : "MemoryModel" }
+ ]
+ },
+ {
+ "opname" : "OpEntryPoint",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "ExecutionModel" },
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "LiteralString", "name" : "'Name'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Interface'" }
+ ]
+ },
+ {
+ "opname" : "OpExecutionMode",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "ExecutionMode", "name" : "'Mode'" }
+ ]
+ },
+ {
+ "opname" : "OpCapability",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "Capability", "name" : "'Capability'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeVoid",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeBool",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeInt",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralInteger", "name" : "'Width'" },
+ { "kind" : "LiteralInteger", "name" : "'Signedness'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeFloat",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralInteger", "name" : "'Width'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeVector",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Component Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Component Count'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeMatrix",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Column Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Column Count'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpTypeImage",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Type'" },
+ { "kind" : "Dim" },
+ { "kind" : "LiteralInteger", "name" : "'Depth'" },
+ { "kind" : "LiteralInteger", "name" : "'Arrayed'" },
+ { "kind" : "LiteralInteger", "name" : "'MS'" },
+ { "kind" : "LiteralInteger", "name" : "'Sampled'" },
+ { "kind" : "ImageFormat" },
+ { "kind" : "AccessQualifier", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpTypeSampler",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeSampledImage",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image Type'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeArray",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Element Type'" },
+ { "kind" : "IdRef", "name" : "'Length'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeRuntimeArray",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Element Type'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpTypeStruct",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpTypeOpaque",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "The name of the opaque type." }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpTypePointer",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "StorageClass" },
+ { "kind" : "IdRef", "name" : "'Type'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeFunction",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Return Type'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpTypeEvent",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpTypeDeviceEvent",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpTypeReserveId",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpTypeQueue",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpTypePipe",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "AccessQualifier", "name" : "'Qualifier'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpTypeForwardPointer",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer Type'" },
+ { "kind" : "StorageClass" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpConstantTrue",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpConstantFalse",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpConstant",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConstantComposite",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpConstantSampler",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "SamplerAddressingMode" },
+ { "kind" : "LiteralInteger", "name" : "'Param'" },
+ { "kind" : "SamplerFilterMode" }
+ ],
+ "capabilities" : [ "LiteralSampler" ]
+ },
+ {
+ "opname" : "OpConstantNull",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantTrue",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantFalse",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstant",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantComposite",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantOp",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" }
+ ]
+ },
+ {
+ "opname" : "OpFunction",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "FunctionControl" },
+ { "kind" : "IdRef", "name" : "'Function Type'" }
+ ]
+ },
+ {
+ "opname" : "OpFunctionParameter",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpFunctionEnd",
+ "opcode" : 56
+ },
+ {
+ "opname" : "OpFunctionCall",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Function'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpVariable",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "StorageClass" },
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'Initializer'" }
+ ]
+ },
+ {
+ "opname" : "OpImageTexelPointer",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Sample'" }
+ ]
+ },
+ {
+ "opname" : "OpLoad",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpStore",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Object'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpCopyMemory",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpCopyMemorySized",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpAccessChain",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpInBoundsAccessChain",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpPtrAccessChain",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Element'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ],
+ "capabilities" : [
+ "Addresses",
+ "VariablePointers",
+ "VariablePointersStorageBuffer"
+ ]
+ },
+ {
+ "opname" : "OpArrayLength",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Structure'" },
+ { "kind" : "LiteralInteger", "name" : "'Array member'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpGenericPtrMemSemantics",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpInBoundsPtrAccessChain",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Element'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpDecorate",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ]
+ },
+ {
+ "opname" : "OpMemberDecorate",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Structure Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "Decoration" }
+ ]
+ },
+ {
+ "opname" : "OpDecorationGroup",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpGroupDecorate",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Decoration Group'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" }
+ ]
+ },
+ {
+ "opname" : "OpGroupMemberDecorate",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Decoration Group'" },
+ { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorExtractDynamic",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorInsertDynamic",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorShuffle",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeConstruct",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeExtract",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Composite'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeInsert",
+ "opcode" : 82,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Object'" },
+ { "kind" : "IdRef", "name" : "'Composite'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpCopyObject",
+ "opcode" : 83,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpTranspose",
+ "opcode" : 84,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpSampledImage",
+ "opcode" : 86,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Sampler'" }
+ ]
+ },
+ {
+ "opname" : "OpImageSampleImplicitLod",
+ "opcode" : 87,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleExplicitLod",
+ "opcode" : 88,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ]
+ },
+ {
+ "opname" : "OpImageSampleDrefImplicitLod",
+ "opcode" : 89,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleDrefExplicitLod",
+ "opcode" : 90,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjImplicitLod",
+ "opcode" : 91,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjExplicitLod",
+ "opcode" : 92,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjDrefImplicitLod",
+ "opcode" : 93,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjDrefExplicitLod",
+ "opcode" : 94,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageFetch",
+ "opcode" : 95,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImageGather",
+ "opcode" : 96,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageDrefGather",
+ "opcode" : 97,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageRead",
+ "opcode" : 98,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImageWrite",
+ "opcode" : 99,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Texel'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImage",
+ "opcode" : 100,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" }
+ ]
+ },
+ {
+ "opname" : "OpImageQueryFormat",
+ "opcode" : 101,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageQueryOrder",
+ "opcode" : 102,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageQuerySizeLod",
+ "opcode" : 103,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Level of Detail'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQuerySize",
+ "opcode" : 104,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQueryLod",
+ "opcode" : 105,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" }
+ ],
+ "capabilities" : [ "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQueryLevels",
+ "opcode" : 106,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQuerySamples",
+ "opcode" : 107,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpConvertFToU",
+ "opcode" : 109,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertFToS",
+ "opcode" : 110,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertSToF",
+ "opcode" : 111,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertUToF",
+ "opcode" : 112,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ]
+ },
+ {
+ "opname" : "OpUConvert",
+ "opcode" : 113,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ]
+ },
+ {
+ "opname" : "OpSConvert",
+ "opcode" : 114,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ]
+ },
+ {
+ "opname" : "OpFConvert",
+ "opcode" : 115,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpQuantizeToF16",
+ "opcode" : 116,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertPtrToU",
+ "opcode" : 117,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpSatConvertSToU",
+ "opcode" : 118,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpSatConvertUToS",
+ "opcode" : 119,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpConvertUToPtr",
+ "opcode" : 120,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Integer Value'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpPtrCastToGeneric",
+ "opcode" : 121,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGenericCastToPtr",
+ "opcode" : 122,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGenericCastToPtrExplicit",
+ "opcode" : 123,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "StorageClass", "name" : "'Storage'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpBitcast",
+ "opcode" : 124,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpSNegate",
+ "opcode" : 126,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpFNegate",
+ "opcode" : 127,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpIAdd",
+ "opcode" : 128,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFAdd",
+ "opcode" : 129,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpISub",
+ "opcode" : 130,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFSub",
+ "opcode" : 131,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIMul",
+ "opcode" : 132,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFMul",
+ "opcode" : 133,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUDiv",
+ "opcode" : 134,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSDiv",
+ "opcode" : 135,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFDiv",
+ "opcode" : 136,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUMod",
+ "opcode" : 137,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSRem",
+ "opcode" : 138,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSMod",
+ "opcode" : 139,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFRem",
+ "opcode" : 140,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFMod",
+ "opcode" : 141,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorTimesScalar",
+ "opcode" : 142,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Scalar'" }
+ ]
+ },
+ {
+ "opname" : "OpMatrixTimesScalar",
+ "opcode" : 143,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" },
+ { "kind" : "IdRef", "name" : "'Scalar'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpVectorTimesMatrix",
+ "opcode" : 144,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Matrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpMatrixTimesVector",
+ "opcode" : 145,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpMatrixTimesMatrix",
+ "opcode" : 146,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'LeftMatrix'" },
+ { "kind" : "IdRef", "name" : "'RightMatrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpOuterProduct",
+ "opcode" : 147,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpDot",
+ "opcode" : 148,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIAddCarry",
+ "opcode" : 149,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpISubBorrow",
+ "opcode" : 150,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUMulExtended",
+ "opcode" : 151,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSMulExtended",
+ "opcode" : 152,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpAny",
+ "opcode" : 154,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ]
+ },
+ {
+ "opname" : "OpAll",
+ "opcode" : 155,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ]
+ },
+ {
+ "opname" : "OpIsNan",
+ "opcode" : 156,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "OpIsInf",
+ "opcode" : 157,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "OpIsFinite",
+ "opcode" : 158,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpIsNormal",
+ "opcode" : 159,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpSignBitSet",
+ "opcode" : 160,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLessOrGreater",
+ "opcode" : 161,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpOrdered",
+ "opcode" : 162,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpUnordered",
+ "opcode" : 163,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLogicalEqual",
+ "opcode" : 164,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalNotEqual",
+ "opcode" : 165,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalOr",
+ "opcode" : 166,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalAnd",
+ "opcode" : 167,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalNot",
+ "opcode" : 168,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpSelect",
+ "opcode" : 169,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Condition'" },
+ { "kind" : "IdRef", "name" : "'Object 1'" },
+ { "kind" : "IdRef", "name" : "'Object 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIEqual",
+ "opcode" : 170,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpINotEqual",
+ "opcode" : 171,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUGreaterThan",
+ "opcode" : 172,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSGreaterThan",
+ "opcode" : 173,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUGreaterThanEqual",
+ "opcode" : 174,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSGreaterThanEqual",
+ "opcode" : 175,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpULessThan",
+ "opcode" : 176,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSLessThan",
+ "opcode" : 177,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpULessThanEqual",
+ "opcode" : 178,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSLessThanEqual",
+ "opcode" : 179,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdEqual",
+ "opcode" : 180,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordEqual",
+ "opcode" : 181,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdNotEqual",
+ "opcode" : 182,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordNotEqual",
+ "opcode" : 183,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdLessThan",
+ "opcode" : 184,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordLessThan",
+ "opcode" : 185,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdGreaterThan",
+ "opcode" : 186,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordGreaterThan",
+ "opcode" : 187,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdLessThanEqual",
+ "opcode" : 188,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordLessThanEqual",
+ "opcode" : 189,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdGreaterThanEqual",
+ "opcode" : 190,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordGreaterThanEqual",
+ "opcode" : 191,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftRightLogical",
+ "opcode" : 194,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftRightArithmetic",
+ "opcode" : 195,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftLeftLogical",
+ "opcode" : 196,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseOr",
+ "opcode" : 197,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseXor",
+ "opcode" : 198,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseAnd",
+ "opcode" : 199,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpNot",
+ "opcode" : 200,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpBitFieldInsert",
+ "opcode" : 201,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Insert'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitFieldSExtract",
+ "opcode" : 202,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitFieldUExtract",
+ "opcode" : 203,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitReverse",
+ "opcode" : 204,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitCount",
+ "opcode" : 205,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" }
+ ]
+ },
+ {
+ "opname" : "OpDPdx",
+ "opcode" : 207,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpDPdy",
+ "opcode" : 208,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpFwidth",
+ "opcode" : 209,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpDPdxFine",
+ "opcode" : 210,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdyFine",
+ "opcode" : 211,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpFwidthFine",
+ "opcode" : 212,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdxCoarse",
+ "opcode" : 213,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdyCoarse",
+ "opcode" : 214,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpFwidthCoarse",
+ "opcode" : 215,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpEmitVertex",
+ "opcode" : 218,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "opname" : "OpEndPrimitive",
+ "opcode" : 219,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "opname" : "OpEmitStreamVertex",
+ "opcode" : 220,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Stream'" }
+ ],
+ "capabilities" : [ "GeometryStreams" ]
+ },
+ {
+ "opname" : "OpEndStreamPrimitive",
+ "opcode" : 221,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Stream'" }
+ ],
+ "capabilities" : [ "GeometryStreams" ]
+ },
+ {
+ "opname" : "OpControlBarrier",
+ "opcode" : 224,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpMemoryBarrier",
+ "opcode" : 225,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicLoad",
+ "opcode" : 227,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicStore",
+ "opcode" : 228,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicExchange",
+ "opcode" : 229,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicCompareExchange",
+ "opcode" : 230,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Comparator'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicCompareExchangeWeak",
+ "opcode" : 231,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Comparator'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpAtomicIIncrement",
+ "opcode" : 232,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicIDecrement",
+ "opcode" : 233,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicIAdd",
+ "opcode" : 234,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicISub",
+ "opcode" : 235,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicSMin",
+ "opcode" : 236,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicUMin",
+ "opcode" : 237,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicSMax",
+ "opcode" : 238,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicUMax",
+ "opcode" : 239,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicAnd",
+ "opcode" : 240,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicOr",
+ "opcode" : 241,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicXor",
+ "opcode" : 242,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpPhi",
+ "opcode" : 245,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" }
+ ]
+ },
+ {
+ "opname" : "OpLoopMerge",
+ "opcode" : 246,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Merge Block'" },
+ { "kind" : "IdRef", "name" : "'Continue Target'" },
+ { "kind" : "LoopControl" }
+ ]
+ },
+ {
+ "opname" : "OpSelectionMerge",
+ "opcode" : 247,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Merge Block'" },
+ { "kind" : "SelectionControl" }
+ ]
+ },
+ {
+ "opname" : "OpLabel",
+ "opcode" : 248,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpBranch",
+ "opcode" : 249,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target Label'" }
+ ]
+ },
+ {
+ "opname" : "OpBranchConditional",
+ "opcode" : 250,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Condition'" },
+ { "kind" : "IdRef", "name" : "'True Label'" },
+ { "kind" : "IdRef", "name" : "'False Label'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" }
+ ]
+ },
+ {
+ "opname" : "OpSwitch",
+ "opcode" : 251,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Selector'" },
+ { "kind" : "IdRef", "name" : "'Default'" },
+ { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" }
+ ]
+ },
+ {
+ "opname" : "OpKill",
+ "opcode" : 252,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpReturn",
+ "opcode" : 253
+ },
+ {
+ "opname" : "OpReturnValue",
+ "opcode" : 254,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpUnreachable",
+ "opcode" : 255
+ },
+ {
+ "opname" : "OpLifetimeStart",
+ "opcode" : 256,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "LiteralInteger", "name" : "'Size'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLifetimeStop",
+ "opcode" : 257,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "LiteralInteger", "name" : "'Size'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupAsyncCopy",
+ "opcode" : 259,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Destination'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Num Elements'" },
+ { "kind" : "IdRef", "name" : "'Stride'" },
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupWaitEvents",
+ "opcode" : 260,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Events List'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupAll",
+ "opcode" : 261,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupAny",
+ "opcode" : 262,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupBroadcast",
+ "opcode" : 263,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'LocalId'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupIAdd",
+ "opcode" : 264,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFAdd",
+ "opcode" : 265,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMin",
+ "opcode" : 266,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "X" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMin",
+ "opcode" : 267,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMin",
+ "opcode" : 268,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "X" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMax",
+ "opcode" : 269,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "X" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMax",
+ "opcode" : 270,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "X" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMax",
+ "opcode" : 271,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "X" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpReadPipe",
+ "opcode" : 274,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpWritePipe",
+ "opcode" : 275,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReservedReadPipe",
+ "opcode" : 276,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Index'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReservedWritePipe",
+ "opcode" : 277,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Index'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReserveReadPipePackets",
+ "opcode" : 278,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReserveWritePipePackets",
+ "opcode" : 279,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpCommitReadPipe",
+ "opcode" : 280,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpCommitWritePipe",
+ "opcode" : 281,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpIsValidReserveId",
+ "opcode" : 282,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGetNumPipePackets",
+ "opcode" : 283,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGetMaxPipePackets",
+ "opcode" : 284,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupReserveReadPipePackets",
+ "opcode" : 285,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupReserveWritePipePackets",
+ "opcode" : 286,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupCommitReadPipe",
+ "opcode" : 287,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupCommitWritePipe",
+ "opcode" : 288,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpEnqueueMarker",
+ "opcode" : 291,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Queue'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Wait Events'" },
+ { "kind" : "IdRef", "name" : "'Ret Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpEnqueueKernel",
+ "opcode" : 292,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Queue'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Wait Events'" },
+ { "kind" : "IdRef", "name" : "'Ret Event'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Local Size'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelNDrangeSubGroupCount",
+ "opcode" : 293,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelNDrangeMaxSubGroupSize",
+ "opcode" : 294,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelWorkGroupSize",
+ "opcode" : 295,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple",
+ "opcode" : 296,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpRetainEvent",
+ "opcode" : 297,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpReleaseEvent",
+ "opcode" : 298,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpCreateUserEvent",
+ "opcode" : 299,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpIsValidEvent",
+ "opcode" : 300,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpSetUserEventStatus",
+ "opcode" : 301,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" },
+ { "kind" : "IdRef", "name" : "'Status'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpCaptureEventProfilingInfo",
+ "opcode" : 302,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" },
+ { "kind" : "IdRef", "name" : "'Profiling Info'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetDefaultQueue",
+ "opcode" : 303,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpBuildNDRange",
+ "opcode" : 304,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'GlobalWorkSize'" },
+ { "kind" : "IdRef", "name" : "'LocalWorkSize'" },
+ { "kind" : "IdRef", "name" : "'GlobalWorkOffset'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleImplicitLod",
+ "opcode" : 305,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleExplicitLod",
+ "opcode" : 306,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleDrefImplicitLod",
+ "opcode" : 307,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleDrefExplicitLod",
+ "opcode" : 308,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjImplicitLod",
+ "opcode" : 309,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjExplicitLod",
+ "opcode" : 310,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjDrefImplicitLod",
+ "opcode" : 311,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjDrefExplicitLod",
+ "opcode" : 312,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseFetch",
+ "opcode" : 313,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseGather",
+ "opcode" : 314,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseDrefGather",
+ "opcode" : 315,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseTexelsResident",
+ "opcode" : 316,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Resident Code'" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpNoLine",
+ "opcode" : 317
+ },
+ {
+ "opname" : "OpAtomicFlagTestAndSet",
+ "opcode" : 318,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpAtomicFlagClear",
+ "opcode" : 319,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageSparseRead",
+ "opcode" : 320,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpSizeOf",
+ "opcode" : 321,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpTypePipeStorage",
+ "opcode" : 322,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "PipeStorage" ]
+ },
+ {
+ "opname" : "OpConstantPipeStorage",
+ "opcode" : 323,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralInteger", "name" : "'Packet Size'" },
+ { "kind" : "LiteralInteger", "name" : "'Packet Alignment'" },
+ { "kind" : "LiteralInteger", "name" : "'Capacity'" }
+ ],
+ "capabilities" : [ "PipeStorage" ]
+ },
+ {
+ "opname" : "OpCreatePipeFromPipeStorage",
+ "opcode" : 324,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe Storage'" }
+ ],
+ "capabilities" : [ "PipeStorage" ]
+ },
+ {
+ "opname" : "OpGetKernelLocalSizeForSubgroupCount",
+ "opcode" : 325,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Subgroup Count'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "SubgroupDispatch" ]
+ },
+ {
+ "opname" : "OpGetKernelMaxNumSubgroups",
+ "opcode" : 326,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "SubgroupDispatch" ]
+ },
+ {
+ "opname" : "OpTypeNamedBarrier",
+ "opcode" : 327,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "NamedBarrier" ]
+ },
+ {
+ "opname" : "OpNamedBarrierInitialize",
+ "opcode" : 328,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Subgroup Count'" }
+ ],
+ "capabilities" : [ "NamedBarrier" ]
+ },
+ {
+ "opname" : "OpMemoryNamedBarrier",
+ "opcode" : 329,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Named Barrier'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "NamedBarrier" ]
+ },
+ {
+ "opname" : "OpModuleProcessed",
+ "opcode" : 330,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Process'" }
+ ]
+ },
+ {
+ "opname" : "OpExecutionModeId",
+ "opcode" : 331,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "ExecutionMode", "name" : "'Mode'" }
+ ]
+ },
+ {
+ "opname" : "OpDecorateId",
+ "opcode" : 332,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ]
+ },
+ {
+ "opname" : "OpSubgroupBallotKHR",
+ "opcode" : 4421,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupFirstInvocationKHR",
+ "opcode" : 4422,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAllKHR",
+ "opcode" : 4428,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAnyKHR",
+ "opcode" : 4429,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAllEqualKHR",
+ "opcode" : 4430,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupReadInvocationKHR",
+ "opcode" : 4432,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ }
+ ],
+ "operand_kinds" : [
+ {
+ "category" : "BitEnum",
+ "kind" : "ImageOperands",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Bias",
+ "value" : "0x0001",
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Lod",
+ "value" : "0x0002",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Grad",
+ "value" : "0x0004",
+ "parameters" : [
+ { "kind" : "IdRef" },
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "ConstOffset",
+ "value" : "0x0008",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Offset",
+ "value" : "0x0010",
+ "capabilities" : [ "ImageGatherExtended" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "ConstOffsets",
+ "value" : "0x0020",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Sample",
+ "value" : "0x0040",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "MinLod",
+ "value" : "0x0080",
+ "capabilities" : [ "MinLod" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "FPFastMathMode",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "NotNaN",
+ "value" : "0x0001",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NotInf",
+ "value" : "0x0002",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NSZ",
+ "value" : "0x0004",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "AllowRecip",
+ "value" : "0x0008",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Fast",
+ "value" : "0x0010",
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "SelectionControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Flatten",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontFlatten",
+ "value" : "0x0002"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "LoopControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Unroll",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontUnroll",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "DependencyInfinite",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "DependencyLength",
+ "value" : "0x0008",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ]
+
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "FunctionControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Inline",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontInline",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "Pure",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "Const",
+ "value" : "0x0008"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "MemorySemantics",
+ "enumerants" : [
+ {
+ "enumerant" : "Relaxed",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Acquire",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "Release",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "AcquireRelease",
+ "value" : "0x0008"
+ },
+ {
+ "enumerant" : "SequentiallyConsistent",
+ "value" : "0x0010"
+ },
+ {
+ "enumerant" : "UniformMemory",
+ "value" : "0x0040",
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SubgroupMemory",
+ "value" : "0x0080"
+ },
+ {
+ "enumerant" : "WorkgroupMemory",
+ "value" : "0x0100"
+ },
+ {
+ "enumerant" : "CrossWorkgroupMemory",
+ "value" : "0x0200"
+ },
+ {
+ "enumerant" : "AtomicCounterMemory",
+ "value" : "0x0400",
+ "capabilities" : [ "AtomicStorage" ]
+ },
+ {
+ "enumerant" : "ImageMemory",
+ "value" : "0x0800"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "MemoryAccess",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Volatile",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "Aligned",
+ "value" : "0x0002",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ]
+ },
+ {
+ "enumerant" : "Nontemporal",
+ "value" : "0x0004"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "KernelProfilingInfo",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "CmdExecTime",
+ "value" : "0x0001",
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SourceLanguage",
+ "enumerants" : [
+ {
+ "enumerant" : "Unknown",
+ "value" : 0
+ },
+ {
+ "enumerant" : "ESSL",
+ "value" : 1
+ },
+ {
+ "enumerant" : "GLSL",
+ "value" : 2
+ },
+ {
+ "enumerant" : "OpenCL_C",
+ "value" : 3
+ },
+ {
+ "enumerant" : "OpenCL_CPP",
+ "value" : 4
+ },
+ {
+ "enumerant" : "HLSL",
+ "value" : 5
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ExecutionModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Vertex",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "TessellationControl",
+ "value" : 1,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessellationEvaluation",
+ "value" : 2,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Geometry",
+ "value" : 3,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Fragment",
+ "value" : 4,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLCompute",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Kernel",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "AddressingModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Logical",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Physical32",
+ "value" : 1,
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "enumerant" : "Physical64",
+ "value" : 2,
+ "capabilities" : [ "Addresses" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "MemoryModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Simple",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLSL450",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OpenCL",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ExecutionMode",
+ "enumerants" : [
+ {
+ "enumerant" : "Invocations",
+ "value" : 0,
+ "capabilities" : [ "Geometry" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Number of <<Invocation,invocations>>'" }
+ ]
+ },
+ {
+ "enumerant" : "SpacingEqual",
+ "value" : 1,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "SpacingFractionalEven",
+ "value" : 2,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "SpacingFractionalOdd",
+ "value" : 3,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "VertexOrderCw",
+ "value" : 4,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "VertexOrderCcw",
+ "value" : 5,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "PixelCenterInteger",
+ "value" : 6,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OriginUpperLeft",
+ "value" : 7,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OriginLowerLeft",
+ "value" : 8,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "EarlyFragmentTests",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointMode",
+ "value" : 10,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Xfb",
+ "value" : 11,
+ "capabilities" : [ "TransformFeedback" ]
+ },
+ {
+ "enumerant" : "DepthReplacing",
+ "value" : 12,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthGreater",
+ "value" : 14,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthLess",
+ "value" : 15,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthUnchanged",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "LocalSize",
+ "value" : 17,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'x size'" },
+ { "kind" : "LiteralInteger", "name" : "'y size'" },
+ { "kind" : "LiteralInteger", "name" : "'z size'" }
+ ]
+ },
+ {
+ "enumerant" : "LocalSizeHint",
+ "value" : 18,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'x size'" },
+ { "kind" : "LiteralInteger", "name" : "'y size'" },
+ { "kind" : "LiteralInteger", "name" : "'z size'" }
+ ]
+ },
+ {
+ "enumerant" : "InputPoints",
+ "value" : 19,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "InputLines",
+ "value" : 20,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "InputLinesAdjacency",
+ "value" : 21,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Triangles",
+ "value" : 22,
+ "capabilities" : [ "Geometry", "Tessellation" ]
+ },
+ {
+ "enumerant" : "InputTrianglesAdjacency",
+ "value" : 23,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Quads",
+ "value" : 24,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Isolines",
+ "value" : 25,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "OutputVertices",
+ "value" : 26,
+ "capabilities" : [ "Geometry", "Tessellation" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Vertex count'" }
+ ]
+ },
+ {
+ "enumerant" : "OutputPoints",
+ "value" : 27,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "OutputLineStrip",
+ "value" : 28,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "OutputTriangleStrip",
+ "value" : 29,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "VecTypeHint",
+ "value" : 30,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Vector type'" }
+ ]
+ },
+ {
+ "enumerant" : "ContractionOff",
+ "value" : 31,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Initializer",
+ "value" : 33,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Finalizer",
+ "value" : 34,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupSize",
+ "value" : 35,
+ "capabilities" : [ "SubgroupDispatch" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Subgroup Size'" }
+ ]
+ },
+ {
+ "enumerant" : "SubgroupsPerWorkgroup",
+ "value" : 36,
+ "capabilities" : [ "SubgroupDispatch" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Subgroups Per Workgroup'" }
+ ]
+ },
+ {
+ "enumerant" : "SubgroupsPerWorkgroupId",
+ "value" : 37,
+ "capabilities" : [ "SubgroupDispatch" ],
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Subgroups Per Workgroup'" }
+ ]
+ },
+ {
+ "enumerant" : "LocalSizeId",
+ "value" : 38,
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'x size'" },
+ { "kind" : "IdRef", "name" : "'y size'" },
+ { "kind" : "IdRef", "name" : "'z size'" }
+ ]
+ },
+ {
+ "enumerant" : "LocalSizeHintId",
+ "value" : 39,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Local Size Hint'" }
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "StorageClass",
+ "enumerants" : [
+ {
+ "enumerant" : "UniformConstant",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Input",
+ "value" : 1
+ },
+ {
+ "enumerant" : "Uniform",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Output",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Workgroup",
+ "value" : 4
+ },
+ {
+ "enumerant" : "CrossWorkgroup",
+ "value" : 5
+ },
+ {
+ "enumerant" : "Private",
+ "value" : 6,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Function",
+ "value" : 7
+ },
+ {
+ "enumerant" : "Generic",
+ "value" : 8,
+ "capabilities" : [ "GenericPointer" ]
+ },
+ {
+ "enumerant" : "PushConstant",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "AtomicCounter",
+ "value" : 10,
+ "capabilities" : [ "AtomicStorage" ]
+ },
+ {
+ "enumerant" : "Image",
+ "value" : 11
+ },
+ {
+ "enumerant" : "StorageBuffer",
+ "value" : 12,
+ "extensions" : [
+ "SPV_KHR_storage_buffer_storage_class",
+ "SPV_KHR_variable_pointers"
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Dim",
+ "enumerants" : [
+ {
+ "enumerant" : "1D",
+ "value" : 0,
+ "capabilities" : [ "Sampled1D" ]
+ },
+ {
+ "enumerant" : "2D",
+ "value" : 1
+ },
+ {
+ "enumerant" : "3D",
+ "value" : 2
+ },
+ {
+ "enumerant" : "Cube",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rect",
+ "value" : 4,
+ "capabilities" : [ "SampledRect" ]
+ },
+ {
+ "enumerant" : "Buffer",
+ "value" : 5,
+ "capabilities" : [ "SampledBuffer" ]
+ },
+ {
+ "enumerant" : "SubpassData",
+ "value" : 6,
+ "capabilities" : [ "InputAttachment" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SamplerAddressingMode",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ClampToEdge",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Clamp",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Repeat",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RepeatMirrored",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SamplerFilterMode",
+ "enumerants" : [
+ {
+ "enumerant" : "Nearest",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Linear",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageFormat",
+ "enumerants" : [
+ {
+ "enumerant" : "Unknown",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Rgba32f",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16f",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32f",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8",
+ "value" : 4,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8Snorm",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rg32f",
+ "value" : 6,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16f",
+ "value" : 7,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R11fG11fB10f",
+ "value" : 8,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16f",
+ "value" : 9,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba16",
+ "value" : 10,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgb10A2",
+ "value" : 11,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16",
+ "value" : 12,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8",
+ "value" : 13,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16",
+ "value" : 14,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8",
+ "value" : 15,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba16Snorm",
+ "value" : 16,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16Snorm",
+ "value" : 17,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8Snorm",
+ "value" : 18,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16Snorm",
+ "value" : 19,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8Snorm",
+ "value" : 20,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba32i",
+ "value" : 21,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16i",
+ "value" : 22,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8i",
+ "value" : 23,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32i",
+ "value" : 24,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rg32i",
+ "value" : 25,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16i",
+ "value" : 26,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8i",
+ "value" : 27,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16i",
+ "value" : 28,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8i",
+ "value" : 29,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba32ui",
+ "value" : 30,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16ui",
+ "value" : 31,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8ui",
+ "value" : 32,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32ui",
+ "value" : 33,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgb10a2ui",
+ "value" : 34,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg32ui",
+ "value" : 35,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16ui",
+ "value" : 36,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8ui",
+ "value" : 37,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16ui",
+ "value" : 38,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8ui",
+ "value" : 39,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageChannelOrder",
+ "enumerants" : [
+ {
+ "enumerant" : "R",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "A",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RG",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RA",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGB",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGBA",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "BGRA",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ARGB",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Intensity",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Luminance",
+ "value" : 9,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Rx",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGx",
+ "value" : 11,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGBx",
+ "value" : 12,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Depth",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "DepthStencil",
+ "value" : 14,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGB",
+ "value" : 15,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGBx",
+ "value" : 16,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGBA",
+ "value" : 17,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sBGRA",
+ "value" : 18,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ABGR",
+ "value" : 19,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageChannelDataType",
+ "enumerants" : [
+ {
+ "enumerant" : "SnormInt8",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SnormInt16",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt8",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt16",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormShort565",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormShort555",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt101010",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt8",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt16",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt32",
+ "value" : 9,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt8",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt16",
+ "value" : 11,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt32",
+ "value" : 12,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "HalfFloat",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float",
+ "value" : 14,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt24",
+ "value" : 15,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt101010_2",
+ "value" : 16,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "FPRoundingMode",
+ "enumerants" : [
+ {
+ "enumerant" : "RTE",
+ "value" : 0,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ },
+ {
+ "enumerant" : "RTZ",
+ "value" : 1,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ },
+ {
+ "enumerant" : "RTP",
+ "value" : 2,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ },
+ {
+ "enumerant" : "RTN",
+ "value" : 3,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "LinkageType",
+ "enumerants" : [
+ {
+ "enumerant" : "Export",
+ "value" : 0,
+ "capabilities" : [ "Linkage" ]
+ },
+ {
+ "enumerant" : "Import",
+ "value" : 1,
+ "capabilities" : [ "Linkage" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "AccessQualifier",
+ "enumerants" : [
+ {
+ "enumerant" : "ReadOnly",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WriteOnly",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ReadWrite",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "FunctionParameterAttribute",
+ "enumerants" : [
+ {
+ "enumerant" : "Zext",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Sext",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ByVal",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Sret",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoAlias",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoCapture",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoWrite",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoReadWrite",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Decoration",
+ "enumerants" : [
+ {
+ "enumerant" : "RelaxedPrecision",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SpecId",
+ "value" : 1,
+ "capabilities" : [ "Shader", "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" }
+ ]
+ },
+ {
+ "enumerant" : "Block",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "BufferBlock",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "RowMajor",
+ "value" : 4,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "ColMajor",
+ "value" : 5,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "ArrayStride",
+ "value" : 6,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Array Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "MatrixStride",
+ "value" : 7,
+ "capabilities" : [ "Matrix" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "GLSLShared",
+ "value" : 8,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLSLPacked",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "CPacked",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "BuiltIn",
+ "value" : 11,
+ "parameters" : [
+ { "kind" : "BuiltIn" }
+ ]
+ },
+ {
+ "enumerant" : "NoPerspective",
+ "value" : 13,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Flat",
+ "value" : 14,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Patch",
+ "value" : 15,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Centroid",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Sample",
+ "value" : 17,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "Invariant",
+ "value" : 18,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Restrict",
+ "value" : 19
+ },
+ {
+ "enumerant" : "Aliased",
+ "value" : 20
+ },
+ {
+ "enumerant" : "Volatile",
+ "value" : 21
+ },
+ {
+ "enumerant" : "Constant",
+ "value" : 22,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Coherent",
+ "value" : 23
+ },
+ {
+ "enumerant" : "NonWritable",
+ "value" : 24
+ },
+ {
+ "enumerant" : "NonReadable",
+ "value" : 25
+ },
+ {
+ "enumerant" : "Uniform",
+ "value" : 26,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SaturatedConversion",
+ "value" : 28,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Stream",
+ "value" : 29,
+ "capabilities" : [ "GeometryStreams" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Stream Number'" }
+ ]
+ },
+ {
+ "enumerant" : "Location",
+ "value" : 30,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Location'" }
+ ]
+ },
+ {
+ "enumerant" : "Component",
+ "value" : 31,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Component'" }
+ ]
+ },
+ {
+ "enumerant" : "Index",
+ "value" : 32,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Index'" }
+ ]
+ },
+ {
+ "enumerant" : "Binding",
+ "value" : 33,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Binding Point'" }
+ ]
+ },
+ {
+ "enumerant" : "DescriptorSet",
+ "value" : 34,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" }
+ ]
+ },
+ {
+ "enumerant" : "Offset",
+ "value" : 35,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Byte Offset'" }
+ ]
+ },
+ {
+ "enumerant" : "XfbBuffer",
+ "value" : 36,
+ "capabilities" : [ "TransformFeedback" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" }
+ ]
+ },
+ {
+ "enumerant" : "XfbStride",
+ "value" : 37,
+ "capabilities" : [ "TransformFeedback" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'XFB Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "FuncParamAttr",
+ "value" : 38,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" }
+ ]
+ },
+ {
+ "enumerant" : "FPRoundingMode",
+ "value" : 39,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ],
+ "parameters" : [
+ { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" }
+ ]
+ },
+ {
+ "enumerant" : "FPFastMathMode",
+ "value" : 40,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" }
+ ]
+ },
+ {
+ "enumerant" : "LinkageAttributes",
+ "value" : 41,
+ "capabilities" : [ "Linkage" ],
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Name'" },
+ { "kind" : "LinkageType", "name" : "'Linkage Type'" }
+ ]
+ },
+ {
+ "enumerant" : "NoContraction",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InputAttachmentIndex",
+ "value" : 43,
+ "capabilities" : [ "InputAttachment" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Attachment Index'" }
+ ]
+ },
+ {
+ "enumerant" : "Alignment",
+ "value" : 44,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Alignment'" }
+ ]
+ },
+ {
+ "enumerant" : "MaxByteOffset",
+ "value" : 45,
+ "capabilities" : [ "Addresses" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Max Byte Offset'" }
+ ]
+ },
+ {
+ "enumerant" : "AlignmentId",
+ "value" : 46,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Alignment'" }
+ ]
+ },
+ {
+ "enumerant" : "MaxByteOffsetId",
+ "value" : 47,
+ "capabilities" : [ "Addresses" ],
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Max Byte Offset'" }
+ ]
+ },
+ {
+ "enumerant" : "OverrideCoverageNV",
+ "value" : 5248,
+ "capabilities" : [ "SampleMaskOverrideCoverageNV" ]
+ },
+ {
+ "enumerant" : "PassthroughNV",
+ "value" : 5250,
+ "capabilities" : [ "GeometryShaderPassthroughNV" ]
+ },
+ {
+ "enumerant" : "ViewportRelativeNV",
+ "value" : 5252,
+ "capabilities" : [ "ShaderViewportMaskNV" ]
+ },
+ {
+ "enumerant" : "SecondaryViewportRelativeNV",
+ "value" : 5256,
+ "capabilities" : [ "ShaderStereoViewNV" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Offset'" }
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "BuiltIn",
+ "enumerants" : [
+ {
+ "enumerant" : "Position",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointSize",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ClipDistance",
+ "value" : 3,
+ "capabilities" : [ "ClipDistance" ]
+ },
+ {
+ "enumerant" : "CullDistance",
+ "value" : 4,
+ "capabilities" : [ "CullDistance" ]
+ },
+ {
+ "enumerant" : "VertexId",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InstanceId",
+ "value" : 6,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PrimitiveId",
+ "value" : 7,
+ "capabilities" : [ "Geometry", "Tessellation" ]
+ },
+ {
+ "enumerant" : "InvocationId",
+ "value" : 8,
+ "capabilities" : [ "Geometry", "Tessellation" ]
+ },
+ {
+ "enumerant" : "Layer",
+ "value" : 9,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "ViewportIndex",
+ "value" : 10,
+ "capabilities" : [ "MultiViewport" ]
+ },
+ {
+ "enumerant" : "TessLevelOuter",
+ "value" : 11,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessLevelInner",
+ "value" : 12,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessCoord",
+ "value" : 13,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "PatchVertices",
+ "value" : 14,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "FragCoord",
+ "value" : 15,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointCoord",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "FrontFacing",
+ "value" : 17,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampleId",
+ "value" : 18,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "SamplePosition",
+ "value" : 19,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "SampleMask",
+ "value" : 20,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "FragDepth",
+ "value" : 22,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "HelperInvocation",
+ "value" : 23,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "NumWorkgroups",
+ "value" : 24
+ },
+ {
+ "enumerant" : "WorkgroupSize",
+ "value" : 25
+ },
+ {
+ "enumerant" : "WorkgroupId",
+ "value" : 26
+ },
+ {
+ "enumerant" : "LocalInvocationId",
+ "value" : 27
+ },
+ {
+ "enumerant" : "GlobalInvocationId",
+ "value" : 28
+ },
+ {
+ "enumerant" : "LocalInvocationIndex",
+ "value" : 29
+ },
+ {
+ "enumerant" : "WorkDim",
+ "value" : 30,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalSize",
+ "value" : 31,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "EnqueuedWorkgroupSize",
+ "value" : 32,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalOffset",
+ "value" : 33,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalLinearId",
+ "value" : 34,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupSize",
+ "value" : 36,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupMaxSize",
+ "value" : 37,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NumSubgroups",
+ "value" : 38,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NumEnqueuedSubgroups",
+ "value" : 39,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupId",
+ "value" : 40,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupLocalInvocationId",
+ "value" : 41,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "VertexIndex",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InstanceIndex",
+ "value" : 43,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SubgroupEqMaskKHR",
+ "value" : 4416,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupGeMaskKHR",
+ "value" : 4417,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupGtMaskKHR",
+ "value" : 4418,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupLeMaskKHR",
+ "value" : 4419,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupLtMaskKHR",
+ "value" : 4420,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "BaseVertex",
+ "value" : 4424,
+ "capabilities" : [ "DrawParameters" ]
+ },
+ {
+ "enumerant" : "BaseInstance",
+ "value" : 4425,
+ "capabilities" : [ "DrawParameters" ]
+ },
+ {
+ "enumerant" : "DrawIndex",
+ "value" : 4426,
+ "capabilities" : [ "DrawParameters" ]
+ },
+ {
+ "enumerant" : "DeviceIndex",
+ "value" : 4438,
+ "capabilities" : [ "DeviceGroup" ]
+ },
+ {
+ "enumerant" : "ViewIndex",
+ "value" : 4440,
+ "capabilities" : [ "MultiView" ]
+ },
+ {
+ "enumerant" : "ViewportMaskNV",
+ "value" : 5253,
+ "capabilities" : [ "ShaderViewportMaskNV" ]
+ },
+ {
+ "enumerant" : "SecondaryPositionNV",
+ "value" : 5257,
+ "capabilities" : [ "ShaderStereoViewNV" ]
+ },
+ {
+ "enumerant" : "SecondaryViewportMaskNV",
+ "value" : 5258,
+ "capabilities" : [ "ShaderStereoViewNV" ]
+ },
+ {
+ "enumerant" : "PositionPerViewNV",
+ "value" : 5261,
+ "capabilities" : [ "PerViewAttributesNV" ]
+ },
+ {
+ "enumerant" : "ViewportMaskPerViewNV",
+ "value" : 5262,
+ "capabilities" : [ "PerViewAttributesNV" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Scope",
+ "enumerants" : [
+ {
+ "enumerant" : "CrossDevice",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Device",
+ "value" : 1
+ },
+ {
+ "enumerant" : "Workgroup",
+ "value" : 2
+ },
+ {
+ "enumerant" : "Subgroup",
+ "value" : 3
+ },
+ {
+ "enumerant" : "Invocation",
+ "value" : 4
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "GroupOperation",
+ "enumerants" : [
+ {
+ "enumerant" : "Reduce",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "InclusiveScan",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ExclusiveScan",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "KernelEnqueueFlags",
+ "enumerants" : [
+ {
+ "enumerant" : "NoWait",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WaitKernel",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WaitWorkGroup",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Capability",
+ "enumerants" : [
+ {
+ "enumerant" : "Matrix",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Shader",
+ "value" : 1,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "Geometry",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Tessellation",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Addresses",
+ "value" : 4
+ },
+ {
+ "enumerant" : "Linkage",
+ "value" : 5
+ },
+ {
+ "enumerant" : "Kernel",
+ "value" : 6
+ },
+ {
+ "enumerant" : "Vector16",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float16Buffer",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float16",
+ "value" : 9
+ },
+ {
+ "enumerant" : "Float64",
+ "value" : 10
+ },
+ {
+ "enumerant" : "Int64",
+ "value" : 11
+ },
+ {
+ "enumerant" : "Int64Atomics",
+ "value" : 12,
+ "capabilities" : [ "Int64" ]
+ },
+ {
+ "enumerant" : "ImageBasic",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ImageReadWrite",
+ "value" : 14,
+ "capabilities" : [ "ImageBasic" ]
+ },
+ {
+ "enumerant" : "ImageMipmap",
+ "value" : 15,
+ "capabilities" : [ "ImageBasic" ]
+ },
+ {
+ "enumerant" : "Pipes",
+ "value" : 17,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Groups",
+ "value" : 18
+ },
+ {
+ "enumerant" : "DeviceEnqueue",
+ "value" : 19,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "LiteralSampler",
+ "value" : 20,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "AtomicStorage",
+ "value" : 21,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Int16",
+ "value" : 22
+ },
+ {
+ "enumerant" : "TessellationPointSize",
+ "value" : 23,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "GeometryPointSize",
+ "value" : 24,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "ImageGatherExtended",
+ "value" : 25,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageMultisample",
+ "value" : 27,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "UniformBufferArrayDynamicIndexing",
+ "value" : 28,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampledImageArrayDynamicIndexing",
+ "value" : 29,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageBufferArrayDynamicIndexing",
+ "value" : 30,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageArrayDynamicIndexing",
+ "value" : 31,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ClipDistance",
+ "value" : 32,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "CullDistance",
+ "value" : 33,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageCubeArray",
+ "value" : 34,
+ "capabilities" : [ "SampledCubeArray" ]
+ },
+ {
+ "enumerant" : "SampleRateShading",
+ "value" : 35,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageRect",
+ "value" : 36,
+ "capabilities" : [ "SampledRect" ]
+ },
+ {
+ "enumerant" : "SampledRect",
+ "value" : 37,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GenericPointer",
+ "value" : 38,
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "enumerant" : "Int8",
+ "value" : 39,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "InputAttachment",
+ "value" : 40,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SparseResidency",
+ "value" : 41,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "MinLod",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Sampled1D",
+ "value" : 43
+ },
+ {
+ "enumerant" : "Image1D",
+ "value" : 44,
+ "capabilities" : [ "Sampled1D" ]
+ },
+ {
+ "enumerant" : "SampledCubeArray",
+ "value" : 45,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampledBuffer",
+ "value" : 46
+ },
+ {
+ "enumerant" : "ImageBuffer",
+ "value" : 47,
+ "capabilities" : [ "SampledBuffer" ]
+ },
+ {
+ "enumerant" : "ImageMSArray",
+ "value" : 48,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageExtendedFormats",
+ "value" : 49,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageQuery",
+ "value" : 50,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DerivativeControl",
+ "value" : 51,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InterpolationFunction",
+ "value" : 52,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "TransformFeedback",
+ "value" : 53,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GeometryStreams",
+ "value" : 54,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "StorageImageReadWithoutFormat",
+ "value" : 55,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageWriteWithoutFormat",
+ "value" : 56,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "MultiViewport",
+ "value" : 57,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "SubgroupDispatch",
+ "value" : 58,
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "enumerant" : "NamedBarrier",
+ "value" : 59,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "PipeStorage",
+ "value" : 60,
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "enumerant" : "SubgroupBallotKHR",
+ "value" : 4423,
+ "extensions" : [ "SPV_KHR_shader_ballot" ]
+ },
+ {
+ "enumerant" : "DrawParameters",
+ "value" : 4427,
+ "extensions" : [ "SPV_KHR_shader_draw_parameters" ]
+ },
+ {
+ "enumerant" : "SubgroupVoteKHR",
+ "value" : 4431,
+ "extensions" : [ "SPV_KHR_subgroup_vote" ]
+ },
+ {
+ "enumerant" : "StorageBuffer16BitAccess",
+ "value" : 4433,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StorageUniformBufferBlock16",
+ "value" : 4433,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "UniformAndStorageBuffer16BitAccess",
+ "value" : 4434,
+ "capabilities" : [
+ "StorageBuffer16BitAccess",
+ "StorageUniformBufferBlock16"
+ ],
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StorageUniform16",
+ "value" : 4434,
+ "capabilities" : [
+ "StorageBuffer16BitAccess",
+ "StorageUniformBufferBlock16"
+ ],
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StoragePushConstant16",
+ "value" : 4435,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StorageInputOutput16",
+ "value" : 4436,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "DeviceGroup",
+ "value" : 4437,
+ "extensions" : [ "SPV_KHR_device_group" ]
+ },
+ {
+ "enumerant" : "MultiView",
+ "value" : 4439,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_multiview" ]
+ },
+ {
+ "enumerant" : "VariablePointersStorageBuffer",
+ "value" : 4441,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_variable_pointers" ]
+ },
+ {
+ "enumerant" : "VariablePointers",
+ "value" : 4442,
+ "capabilities" : [ "VariablePointersStorageBuffer" ],
+ "extensions" : [ "SPV_KHR_variable_pointers" ]
+ },
+ {
+ "enumerant" : "SampleMaskOverrideCoverageNV",
+ "value" : 5249,
+ "capabilities" : [ "SampleRateShading" ],
+ "extensions" : [ "SPV_NV_sample_mask_override_coverage" ]
+ },
+ {
+ "enumerant" : "GeometryShaderPassthroughNV",
+ "value" : 5251,
+ "capabilities" : [ "Geometry" ],
+ "extensions" : [ "SPV_NV_geometry_shader_passthrough" ]
+ },
+ {
+ "enumerant" : "ShaderViewportIndexLayerNV",
+ "value" : 5254,
+ "capabilities" : [ "MultiViewport" ],
+ "extensions" : [ "SPV_NV_viewport_array2" ]
+ },
+ {
+ "enumerant" : "ShaderViewportMaskNV",
+ "value" : 5255,
+ "capabilities" : [ "ShaderViewportIndexLayerNV" ],
+ "extensions" : [ "SPV_NV_viewport_array2" ]
+ },
+ {
+ "enumerant" : "ShaderStereoViewNV",
+ "value" : 5259,
+ "capabilities" : [ "ShaderViewportMaskNV" ],
+ "extensions" : [ "SPV_NV_stereo_view_rendering" ]
+ },
+ {
+ "enumerant" : "PerViewAttributesNV",
+ "value" : 5260,
+ "capabilities" : [ "MultiView" ],
+ "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ]
+ }
+ ]
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdResultType",
+ "doc" : "Reference to an <id> representing the result's type of the enclosing instruction"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdResult",
+ "doc" : "Definition of an <id> representing the result of the enclosing instruction"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdMemorySemantics",
+ "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the MemorySemantics operand kind"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdScope",
+ "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the Scope operand kind"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdRef",
+ "doc" : "Reference to an <id>"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralInteger",
+ "doc" : "An integer consuming one or more words"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralString",
+ "doc" : "A null-terminated stream of characters consuming an integral number of words"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralContextDependentNumber",
+ "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralExtInstInteger",
+ "doc" : "A 32-bit unsigned integer indicating which instruction to use and determining the layout of following operands (for OpExtInst)"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralSpecConstantOpInteger",
+ "doc" : "An opcode indicating the operation to be performed and determining the layout of following operands (for OpSpecConstantOp)"
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairLiteralIntegerIdRef",
+ "bases" : [ "LiteralInteger", "IdRef" ]
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairIdRefLiteralInteger",
+ "bases" : [ "IdRef", "LiteralInteger" ]
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairIdRefIdRef",
+ "bases" : [ "IdRef", "IdRef" ]
+ }
+ ]
+}
diff --git a/include/spirv/1.2/spirv.h b/include/spirv/1.2/spirv.h
new file mode 100644
index 0000000..55472ca
--- /dev/null
+++ b/include/spirv/1.2/spirv.h
@@ -0,0 +1,978 @@
+/*
+** Copyright (c) 2014-2017 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+/*
+** This header is automatically generated by the same tool that creates
+** the Binary Section of the SPIR-V specification.
+*/
+
+/*
+** Enumeration tokens for SPIR-V, in various styles:
+** C, C++, C++11, JSON, Lua, Python
+**
+** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+**
+** Some tokens act like mask values, which can be OR'd together,
+** while others are mutually exclusive. The mask-like ones have
+** "Mask" in their name, and a parallel enum that has the shift
+** amount (1 << x) for each corresponding enumerant.
+*/
+
+#ifndef spirv_H
+#define spirv_H
+
+typedef unsigned int SpvId;
+
+#define SPV_VERSION 0x10200
+#define SPV_REVISION 1
+
+static const unsigned int SpvMagicNumber = 0x07230203;
+static const unsigned int SpvVersion = 0x00010200;
+static const unsigned int SpvRevision = 1;
+static const unsigned int SpvOpCodeMask = 0xffff;
+static const unsigned int SpvWordCountShift = 16;
+
+typedef enum SpvSourceLanguage_ {
+ SpvSourceLanguageUnknown = 0,
+ SpvSourceLanguageESSL = 1,
+ SpvSourceLanguageGLSL = 2,
+ SpvSourceLanguageOpenCL_C = 3,
+ SpvSourceLanguageOpenCL_CPP = 4,
+ SpvSourceLanguageHLSL = 5,
+ SpvSourceLanguageMax = 0x7fffffff,
+} SpvSourceLanguage;
+
+typedef enum SpvExecutionModel_ {
+ SpvExecutionModelVertex = 0,
+ SpvExecutionModelTessellationControl = 1,
+ SpvExecutionModelTessellationEvaluation = 2,
+ SpvExecutionModelGeometry = 3,
+ SpvExecutionModelFragment = 4,
+ SpvExecutionModelGLCompute = 5,
+ SpvExecutionModelKernel = 6,
+ SpvExecutionModelMax = 0x7fffffff,
+} SpvExecutionModel;
+
+typedef enum SpvAddressingModel_ {
+ SpvAddressingModelLogical = 0,
+ SpvAddressingModelPhysical32 = 1,
+ SpvAddressingModelPhysical64 = 2,
+ SpvAddressingModelMax = 0x7fffffff,
+} SpvAddressingModel;
+
+typedef enum SpvMemoryModel_ {
+ SpvMemoryModelSimple = 0,
+ SpvMemoryModelGLSL450 = 1,
+ SpvMemoryModelOpenCL = 2,
+ SpvMemoryModelMax = 0x7fffffff,
+} SpvMemoryModel;
+
+typedef enum SpvExecutionMode_ {
+ SpvExecutionModeInvocations = 0,
+ SpvExecutionModeSpacingEqual = 1,
+ SpvExecutionModeSpacingFractionalEven = 2,
+ SpvExecutionModeSpacingFractionalOdd = 3,
+ SpvExecutionModeVertexOrderCw = 4,
+ SpvExecutionModeVertexOrderCcw = 5,
+ SpvExecutionModePixelCenterInteger = 6,
+ SpvExecutionModeOriginUpperLeft = 7,
+ SpvExecutionModeOriginLowerLeft = 8,
+ SpvExecutionModeEarlyFragmentTests = 9,
+ SpvExecutionModePointMode = 10,
+ SpvExecutionModeXfb = 11,
+ SpvExecutionModeDepthReplacing = 12,
+ SpvExecutionModeDepthGreater = 14,
+ SpvExecutionModeDepthLess = 15,
+ SpvExecutionModeDepthUnchanged = 16,
+ SpvExecutionModeLocalSize = 17,
+ SpvExecutionModeLocalSizeHint = 18,
+ SpvExecutionModeInputPoints = 19,
+ SpvExecutionModeInputLines = 20,
+ SpvExecutionModeInputLinesAdjacency = 21,
+ SpvExecutionModeTriangles = 22,
+ SpvExecutionModeInputTrianglesAdjacency = 23,
+ SpvExecutionModeQuads = 24,
+ SpvExecutionModeIsolines = 25,
+ SpvExecutionModeOutputVertices = 26,
+ SpvExecutionModeOutputPoints = 27,
+ SpvExecutionModeOutputLineStrip = 28,
+ SpvExecutionModeOutputTriangleStrip = 29,
+ SpvExecutionModeVecTypeHint = 30,
+ SpvExecutionModeContractionOff = 31,
+ SpvExecutionModeInitializer = 33,
+ SpvExecutionModeFinalizer = 34,
+ SpvExecutionModeSubgroupSize = 35,
+ SpvExecutionModeSubgroupsPerWorkgroup = 36,
+ SpvExecutionModeSubgroupsPerWorkgroupId = 37,
+ SpvExecutionModeLocalSizeId = 38,
+ SpvExecutionModeLocalSizeHintId = 39,
+ SpvExecutionModeMax = 0x7fffffff,
+} SpvExecutionMode;
+
+typedef enum SpvStorageClass_ {
+ SpvStorageClassUniformConstant = 0,
+ SpvStorageClassInput = 1,
+ SpvStorageClassUniform = 2,
+ SpvStorageClassOutput = 3,
+ SpvStorageClassWorkgroup = 4,
+ SpvStorageClassCrossWorkgroup = 5,
+ SpvStorageClassPrivate = 6,
+ SpvStorageClassFunction = 7,
+ SpvStorageClassGeneric = 8,
+ SpvStorageClassPushConstant = 9,
+ SpvStorageClassAtomicCounter = 10,
+ SpvStorageClassImage = 11,
+ SpvStorageClassStorageBuffer = 12,
+ SpvStorageClassMax = 0x7fffffff,
+} SpvStorageClass;
+
+typedef enum SpvDim_ {
+ SpvDim1D = 0,
+ SpvDim2D = 1,
+ SpvDim3D = 2,
+ SpvDimCube = 3,
+ SpvDimRect = 4,
+ SpvDimBuffer = 5,
+ SpvDimSubpassData = 6,
+ SpvDimMax = 0x7fffffff,
+} SpvDim;
+
+typedef enum SpvSamplerAddressingMode_ {
+ SpvSamplerAddressingModeNone = 0,
+ SpvSamplerAddressingModeClampToEdge = 1,
+ SpvSamplerAddressingModeClamp = 2,
+ SpvSamplerAddressingModeRepeat = 3,
+ SpvSamplerAddressingModeRepeatMirrored = 4,
+ SpvSamplerAddressingModeMax = 0x7fffffff,
+} SpvSamplerAddressingMode;
+
+typedef enum SpvSamplerFilterMode_ {
+ SpvSamplerFilterModeNearest = 0,
+ SpvSamplerFilterModeLinear = 1,
+ SpvSamplerFilterModeMax = 0x7fffffff,
+} SpvSamplerFilterMode;
+
+typedef enum SpvImageFormat_ {
+ SpvImageFormatUnknown = 0,
+ SpvImageFormatRgba32f = 1,
+ SpvImageFormatRgba16f = 2,
+ SpvImageFormatR32f = 3,
+ SpvImageFormatRgba8 = 4,
+ SpvImageFormatRgba8Snorm = 5,
+ SpvImageFormatRg32f = 6,
+ SpvImageFormatRg16f = 7,
+ SpvImageFormatR11fG11fB10f = 8,
+ SpvImageFormatR16f = 9,
+ SpvImageFormatRgba16 = 10,
+ SpvImageFormatRgb10A2 = 11,
+ SpvImageFormatRg16 = 12,
+ SpvImageFormatRg8 = 13,
+ SpvImageFormatR16 = 14,
+ SpvImageFormatR8 = 15,
+ SpvImageFormatRgba16Snorm = 16,
+ SpvImageFormatRg16Snorm = 17,
+ SpvImageFormatRg8Snorm = 18,
+ SpvImageFormatR16Snorm = 19,
+ SpvImageFormatR8Snorm = 20,
+ SpvImageFormatRgba32i = 21,
+ SpvImageFormatRgba16i = 22,
+ SpvImageFormatRgba8i = 23,
+ SpvImageFormatR32i = 24,
+ SpvImageFormatRg32i = 25,
+ SpvImageFormatRg16i = 26,
+ SpvImageFormatRg8i = 27,
+ SpvImageFormatR16i = 28,
+ SpvImageFormatR8i = 29,
+ SpvImageFormatRgba32ui = 30,
+ SpvImageFormatRgba16ui = 31,
+ SpvImageFormatRgba8ui = 32,
+ SpvImageFormatR32ui = 33,
+ SpvImageFormatRgb10a2ui = 34,
+ SpvImageFormatRg32ui = 35,
+ SpvImageFormatRg16ui = 36,
+ SpvImageFormatRg8ui = 37,
+ SpvImageFormatR16ui = 38,
+ SpvImageFormatR8ui = 39,
+ SpvImageFormatMax = 0x7fffffff,
+} SpvImageFormat;
+
+typedef enum SpvImageChannelOrder_ {
+ SpvImageChannelOrderR = 0,
+ SpvImageChannelOrderA = 1,
+ SpvImageChannelOrderRG = 2,
+ SpvImageChannelOrderRA = 3,
+ SpvImageChannelOrderRGB = 4,
+ SpvImageChannelOrderRGBA = 5,
+ SpvImageChannelOrderBGRA = 6,
+ SpvImageChannelOrderARGB = 7,
+ SpvImageChannelOrderIntensity = 8,
+ SpvImageChannelOrderLuminance = 9,
+ SpvImageChannelOrderRx = 10,
+ SpvImageChannelOrderRGx = 11,
+ SpvImageChannelOrderRGBx = 12,
+ SpvImageChannelOrderDepth = 13,
+ SpvImageChannelOrderDepthStencil = 14,
+ SpvImageChannelOrdersRGB = 15,
+ SpvImageChannelOrdersRGBx = 16,
+ SpvImageChannelOrdersRGBA = 17,
+ SpvImageChannelOrdersBGRA = 18,
+ SpvImageChannelOrderABGR = 19,
+ SpvImageChannelOrderMax = 0x7fffffff,
+} SpvImageChannelOrder;
+
+typedef enum SpvImageChannelDataType_ {
+ SpvImageChannelDataTypeSnormInt8 = 0,
+ SpvImageChannelDataTypeSnormInt16 = 1,
+ SpvImageChannelDataTypeUnormInt8 = 2,
+ SpvImageChannelDataTypeUnormInt16 = 3,
+ SpvImageChannelDataTypeUnormShort565 = 4,
+ SpvImageChannelDataTypeUnormShort555 = 5,
+ SpvImageChannelDataTypeUnormInt101010 = 6,
+ SpvImageChannelDataTypeSignedInt8 = 7,
+ SpvImageChannelDataTypeSignedInt16 = 8,
+ SpvImageChannelDataTypeSignedInt32 = 9,
+ SpvImageChannelDataTypeUnsignedInt8 = 10,
+ SpvImageChannelDataTypeUnsignedInt16 = 11,
+ SpvImageChannelDataTypeUnsignedInt32 = 12,
+ SpvImageChannelDataTypeHalfFloat = 13,
+ SpvImageChannelDataTypeFloat = 14,
+ SpvImageChannelDataTypeUnormInt24 = 15,
+ SpvImageChannelDataTypeUnormInt101010_2 = 16,
+ SpvImageChannelDataTypeMax = 0x7fffffff,
+} SpvImageChannelDataType;
+
+typedef enum SpvImageOperandsShift_ {
+ SpvImageOperandsBiasShift = 0,
+ SpvImageOperandsLodShift = 1,
+ SpvImageOperandsGradShift = 2,
+ SpvImageOperandsConstOffsetShift = 3,
+ SpvImageOperandsOffsetShift = 4,
+ SpvImageOperandsConstOffsetsShift = 5,
+ SpvImageOperandsSampleShift = 6,
+ SpvImageOperandsMinLodShift = 7,
+ SpvImageOperandsMax = 0x7fffffff,
+} SpvImageOperandsShift;
+
+typedef enum SpvImageOperandsMask_ {
+ SpvImageOperandsMaskNone = 0,
+ SpvImageOperandsBiasMask = 0x00000001,
+ SpvImageOperandsLodMask = 0x00000002,
+ SpvImageOperandsGradMask = 0x00000004,
+ SpvImageOperandsConstOffsetMask = 0x00000008,
+ SpvImageOperandsOffsetMask = 0x00000010,
+ SpvImageOperandsConstOffsetsMask = 0x00000020,
+ SpvImageOperandsSampleMask = 0x00000040,
+ SpvImageOperandsMinLodMask = 0x00000080,
+} SpvImageOperandsMask;
+
+typedef enum SpvFPFastMathModeShift_ {
+ SpvFPFastMathModeNotNaNShift = 0,
+ SpvFPFastMathModeNotInfShift = 1,
+ SpvFPFastMathModeNSZShift = 2,
+ SpvFPFastMathModeAllowRecipShift = 3,
+ SpvFPFastMathModeFastShift = 4,
+ SpvFPFastMathModeMax = 0x7fffffff,
+} SpvFPFastMathModeShift;
+
+typedef enum SpvFPFastMathModeMask_ {
+ SpvFPFastMathModeMaskNone = 0,
+ SpvFPFastMathModeNotNaNMask = 0x00000001,
+ SpvFPFastMathModeNotInfMask = 0x00000002,
+ SpvFPFastMathModeNSZMask = 0x00000004,
+ SpvFPFastMathModeAllowRecipMask = 0x00000008,
+ SpvFPFastMathModeFastMask = 0x00000010,
+} SpvFPFastMathModeMask;
+
+typedef enum SpvFPRoundingMode_ {
+ SpvFPRoundingModeRTE = 0,
+ SpvFPRoundingModeRTZ = 1,
+ SpvFPRoundingModeRTP = 2,
+ SpvFPRoundingModeRTN = 3,
+ SpvFPRoundingModeMax = 0x7fffffff,
+} SpvFPRoundingMode;
+
+typedef enum SpvLinkageType_ {
+ SpvLinkageTypeExport = 0,
+ SpvLinkageTypeImport = 1,
+ SpvLinkageTypeMax = 0x7fffffff,
+} SpvLinkageType;
+
+typedef enum SpvAccessQualifier_ {
+ SpvAccessQualifierReadOnly = 0,
+ SpvAccessQualifierWriteOnly = 1,
+ SpvAccessQualifierReadWrite = 2,
+ SpvAccessQualifierMax = 0x7fffffff,
+} SpvAccessQualifier;
+
+typedef enum SpvFunctionParameterAttribute_ {
+ SpvFunctionParameterAttributeZext = 0,
+ SpvFunctionParameterAttributeSext = 1,
+ SpvFunctionParameterAttributeByVal = 2,
+ SpvFunctionParameterAttributeSret = 3,
+ SpvFunctionParameterAttributeNoAlias = 4,
+ SpvFunctionParameterAttributeNoCapture = 5,
+ SpvFunctionParameterAttributeNoWrite = 6,
+ SpvFunctionParameterAttributeNoReadWrite = 7,
+ SpvFunctionParameterAttributeMax = 0x7fffffff,
+} SpvFunctionParameterAttribute;
+
+typedef enum SpvDecoration_ {
+ SpvDecorationRelaxedPrecision = 0,
+ SpvDecorationSpecId = 1,
+ SpvDecorationBlock = 2,
+ SpvDecorationBufferBlock = 3,
+ SpvDecorationRowMajor = 4,
+ SpvDecorationColMajor = 5,
+ SpvDecorationArrayStride = 6,
+ SpvDecorationMatrixStride = 7,
+ SpvDecorationGLSLShared = 8,
+ SpvDecorationGLSLPacked = 9,
+ SpvDecorationCPacked = 10,
+ SpvDecorationBuiltIn = 11,
+ SpvDecorationNoPerspective = 13,
+ SpvDecorationFlat = 14,
+ SpvDecorationPatch = 15,
+ SpvDecorationCentroid = 16,
+ SpvDecorationSample = 17,
+ SpvDecorationInvariant = 18,
+ SpvDecorationRestrict = 19,
+ SpvDecorationAliased = 20,
+ SpvDecorationVolatile = 21,
+ SpvDecorationConstant = 22,
+ SpvDecorationCoherent = 23,
+ SpvDecorationNonWritable = 24,
+ SpvDecorationNonReadable = 25,
+ SpvDecorationUniform = 26,
+ SpvDecorationSaturatedConversion = 28,
+ SpvDecorationStream = 29,
+ SpvDecorationLocation = 30,
+ SpvDecorationComponent = 31,
+ SpvDecorationIndex = 32,
+ SpvDecorationBinding = 33,
+ SpvDecorationDescriptorSet = 34,
+ SpvDecorationOffset = 35,
+ SpvDecorationXfbBuffer = 36,
+ SpvDecorationXfbStride = 37,
+ SpvDecorationFuncParamAttr = 38,
+ SpvDecorationFPRoundingMode = 39,
+ SpvDecorationFPFastMathMode = 40,
+ SpvDecorationLinkageAttributes = 41,
+ SpvDecorationNoContraction = 42,
+ SpvDecorationInputAttachmentIndex = 43,
+ SpvDecorationAlignment = 44,
+ SpvDecorationMaxByteOffset = 45,
+ SpvDecorationAlignmentId = 46,
+ SpvDecorationMaxByteOffsetId = 47,
+ SpvDecorationOverrideCoverageNV = 5248,
+ SpvDecorationPassthroughNV = 5250,
+ SpvDecorationViewportRelativeNV = 5252,
+ SpvDecorationSecondaryViewportRelativeNV = 5256,
+ SpvDecorationMax = 0x7fffffff,
+} SpvDecoration;
+
+typedef enum SpvBuiltIn_ {
+ SpvBuiltInPosition = 0,
+ SpvBuiltInPointSize = 1,
+ SpvBuiltInClipDistance = 3,
+ SpvBuiltInCullDistance = 4,
+ SpvBuiltInVertexId = 5,
+ SpvBuiltInInstanceId = 6,
+ SpvBuiltInPrimitiveId = 7,
+ SpvBuiltInInvocationId = 8,
+ SpvBuiltInLayer = 9,
+ SpvBuiltInViewportIndex = 10,
+ SpvBuiltInTessLevelOuter = 11,
+ SpvBuiltInTessLevelInner = 12,
+ SpvBuiltInTessCoord = 13,
+ SpvBuiltInPatchVertices = 14,
+ SpvBuiltInFragCoord = 15,
+ SpvBuiltInPointCoord = 16,
+ SpvBuiltInFrontFacing = 17,
+ SpvBuiltInSampleId = 18,
+ SpvBuiltInSamplePosition = 19,
+ SpvBuiltInSampleMask = 20,
+ SpvBuiltInFragDepth = 22,
+ SpvBuiltInHelperInvocation = 23,
+ SpvBuiltInNumWorkgroups = 24,
+ SpvBuiltInWorkgroupSize = 25,
+ SpvBuiltInWorkgroupId = 26,
+ SpvBuiltInLocalInvocationId = 27,
+ SpvBuiltInGlobalInvocationId = 28,
+ SpvBuiltInLocalInvocationIndex = 29,
+ SpvBuiltInWorkDim = 30,
+ SpvBuiltInGlobalSize = 31,
+ SpvBuiltInEnqueuedWorkgroupSize = 32,
+ SpvBuiltInGlobalOffset = 33,
+ SpvBuiltInGlobalLinearId = 34,
+ SpvBuiltInSubgroupSize = 36,
+ SpvBuiltInSubgroupMaxSize = 37,
+ SpvBuiltInNumSubgroups = 38,
+ SpvBuiltInNumEnqueuedSubgroups = 39,
+ SpvBuiltInSubgroupId = 40,
+ SpvBuiltInSubgroupLocalInvocationId = 41,
+ SpvBuiltInVertexIndex = 42,
+ SpvBuiltInInstanceIndex = 43,
+ SpvBuiltInSubgroupEqMaskKHR = 4416,
+ SpvBuiltInSubgroupGeMaskKHR = 4417,
+ SpvBuiltInSubgroupGtMaskKHR = 4418,
+ SpvBuiltInSubgroupLeMaskKHR = 4419,
+ SpvBuiltInSubgroupLtMaskKHR = 4420,
+ SpvBuiltInBaseVertex = 4424,
+ SpvBuiltInBaseInstance = 4425,
+ SpvBuiltInDrawIndex = 4426,
+ SpvBuiltInDeviceIndex = 4438,
+ SpvBuiltInViewIndex = 4440,
+ SpvBuiltInViewportMaskNV = 5253,
+ SpvBuiltInSecondaryPositionNV = 5257,
+ SpvBuiltInSecondaryViewportMaskNV = 5258,
+ SpvBuiltInPositionPerViewNV = 5261,
+ SpvBuiltInViewportMaskPerViewNV = 5262,
+ SpvBuiltInMax = 0x7fffffff,
+} SpvBuiltIn;
+
+typedef enum SpvSelectionControlShift_ {
+ SpvSelectionControlFlattenShift = 0,
+ SpvSelectionControlDontFlattenShift = 1,
+ SpvSelectionControlMax = 0x7fffffff,
+} SpvSelectionControlShift;
+
+typedef enum SpvSelectionControlMask_ {
+ SpvSelectionControlMaskNone = 0,
+ SpvSelectionControlFlattenMask = 0x00000001,
+ SpvSelectionControlDontFlattenMask = 0x00000002,
+} SpvSelectionControlMask;
+
+typedef enum SpvLoopControlShift_ {
+ SpvLoopControlUnrollShift = 0,
+ SpvLoopControlDontUnrollShift = 1,
+ SpvLoopControlDependencyInfiniteShift = 2,
+ SpvLoopControlDependencyLengthShift = 3,
+ SpvLoopControlMax = 0x7fffffff,
+} SpvLoopControlShift;
+
+typedef enum SpvLoopControlMask_ {
+ SpvLoopControlMaskNone = 0,
+ SpvLoopControlUnrollMask = 0x00000001,
+ SpvLoopControlDontUnrollMask = 0x00000002,
+ SpvLoopControlDependencyInfiniteMask = 0x00000004,
+ SpvLoopControlDependencyLengthMask = 0x00000008,
+} SpvLoopControlMask;
+
+typedef enum SpvFunctionControlShift_ {
+ SpvFunctionControlInlineShift = 0,
+ SpvFunctionControlDontInlineShift = 1,
+ SpvFunctionControlPureShift = 2,
+ SpvFunctionControlConstShift = 3,
+ SpvFunctionControlMax = 0x7fffffff,
+} SpvFunctionControlShift;
+
+typedef enum SpvFunctionControlMask_ {
+ SpvFunctionControlMaskNone = 0,
+ SpvFunctionControlInlineMask = 0x00000001,
+ SpvFunctionControlDontInlineMask = 0x00000002,
+ SpvFunctionControlPureMask = 0x00000004,
+ SpvFunctionControlConstMask = 0x00000008,
+} SpvFunctionControlMask;
+
+typedef enum SpvMemorySemanticsShift_ {
+ SpvMemorySemanticsAcquireShift = 1,
+ SpvMemorySemanticsReleaseShift = 2,
+ SpvMemorySemanticsAcquireReleaseShift = 3,
+ SpvMemorySemanticsSequentiallyConsistentShift = 4,
+ SpvMemorySemanticsUniformMemoryShift = 6,
+ SpvMemorySemanticsSubgroupMemoryShift = 7,
+ SpvMemorySemanticsWorkgroupMemoryShift = 8,
+ SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
+ SpvMemorySemanticsAtomicCounterMemoryShift = 10,
+ SpvMemorySemanticsImageMemoryShift = 11,
+ SpvMemorySemanticsMax = 0x7fffffff,
+} SpvMemorySemanticsShift;
+
+typedef enum SpvMemorySemanticsMask_ {
+ SpvMemorySemanticsMaskNone = 0,
+ SpvMemorySemanticsAcquireMask = 0x00000002,
+ SpvMemorySemanticsReleaseMask = 0x00000004,
+ SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
+ SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
+ SpvMemorySemanticsUniformMemoryMask = 0x00000040,
+ SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
+ SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
+ SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
+ SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
+ SpvMemorySemanticsImageMemoryMask = 0x00000800,
+} SpvMemorySemanticsMask;
+
+typedef enum SpvMemoryAccessShift_ {
+ SpvMemoryAccessVolatileShift = 0,
+ SpvMemoryAccessAlignedShift = 1,
+ SpvMemoryAccessNontemporalShift = 2,
+ SpvMemoryAccessMax = 0x7fffffff,
+} SpvMemoryAccessShift;
+
+typedef enum SpvMemoryAccessMask_ {
+ SpvMemoryAccessMaskNone = 0,
+ SpvMemoryAccessVolatileMask = 0x00000001,
+ SpvMemoryAccessAlignedMask = 0x00000002,
+ SpvMemoryAccessNontemporalMask = 0x00000004,
+} SpvMemoryAccessMask;
+
+typedef enum SpvScope_ {
+ SpvScopeCrossDevice = 0,
+ SpvScopeDevice = 1,
+ SpvScopeWorkgroup = 2,
+ SpvScopeSubgroup = 3,
+ SpvScopeInvocation = 4,
+ SpvScopeMax = 0x7fffffff,
+} SpvScope;
+
+typedef enum SpvGroupOperation_ {
+ SpvGroupOperationReduce = 0,
+ SpvGroupOperationInclusiveScan = 1,
+ SpvGroupOperationExclusiveScan = 2,
+ SpvGroupOperationMax = 0x7fffffff,
+} SpvGroupOperation;
+
+typedef enum SpvKernelEnqueueFlags_ {
+ SpvKernelEnqueueFlagsNoWait = 0,
+ SpvKernelEnqueueFlagsWaitKernel = 1,
+ SpvKernelEnqueueFlagsWaitWorkGroup = 2,
+ SpvKernelEnqueueFlagsMax = 0x7fffffff,
+} SpvKernelEnqueueFlags;
+
+typedef enum SpvKernelProfilingInfoShift_ {
+ SpvKernelProfilingInfoCmdExecTimeShift = 0,
+ SpvKernelProfilingInfoMax = 0x7fffffff,
+} SpvKernelProfilingInfoShift;
+
+typedef enum SpvKernelProfilingInfoMask_ {
+ SpvKernelProfilingInfoMaskNone = 0,
+ SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
+} SpvKernelProfilingInfoMask;
+
+typedef enum SpvCapability_ {
+ SpvCapabilityMatrix = 0,
+ SpvCapabilityShader = 1,
+ SpvCapabilityGeometry = 2,
+ SpvCapabilityTessellation = 3,
+ SpvCapabilityAddresses = 4,
+ SpvCapabilityLinkage = 5,
+ SpvCapabilityKernel = 6,
+ SpvCapabilityVector16 = 7,
+ SpvCapabilityFloat16Buffer = 8,
+ SpvCapabilityFloat16 = 9,
+ SpvCapabilityFloat64 = 10,
+ SpvCapabilityInt64 = 11,
+ SpvCapabilityInt64Atomics = 12,
+ SpvCapabilityImageBasic = 13,
+ SpvCapabilityImageReadWrite = 14,
+ SpvCapabilityImageMipmap = 15,
+ SpvCapabilityPipes = 17,
+ SpvCapabilityGroups = 18,
+ SpvCapabilityDeviceEnqueue = 19,
+ SpvCapabilityLiteralSampler = 20,
+ SpvCapabilityAtomicStorage = 21,
+ SpvCapabilityInt16 = 22,
+ SpvCapabilityTessellationPointSize = 23,
+ SpvCapabilityGeometryPointSize = 24,
+ SpvCapabilityImageGatherExtended = 25,
+ SpvCapabilityStorageImageMultisample = 27,
+ SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
+ SpvCapabilitySampledImageArrayDynamicIndexing = 29,
+ SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
+ SpvCapabilityStorageImageArrayDynamicIndexing = 31,
+ SpvCapabilityClipDistance = 32,
+ SpvCapabilityCullDistance = 33,
+ SpvCapabilityImageCubeArray = 34,
+ SpvCapabilitySampleRateShading = 35,
+ SpvCapabilityImageRect = 36,
+ SpvCapabilitySampledRect = 37,
+ SpvCapabilityGenericPointer = 38,
+ SpvCapabilityInt8 = 39,
+ SpvCapabilityInputAttachment = 40,
+ SpvCapabilitySparseResidency = 41,
+ SpvCapabilityMinLod = 42,
+ SpvCapabilitySampled1D = 43,
+ SpvCapabilityImage1D = 44,
+ SpvCapabilitySampledCubeArray = 45,
+ SpvCapabilitySampledBuffer = 46,
+ SpvCapabilityImageBuffer = 47,
+ SpvCapabilityImageMSArray = 48,
+ SpvCapabilityStorageImageExtendedFormats = 49,
+ SpvCapabilityImageQuery = 50,
+ SpvCapabilityDerivativeControl = 51,
+ SpvCapabilityInterpolationFunction = 52,
+ SpvCapabilityTransformFeedback = 53,
+ SpvCapabilityGeometryStreams = 54,
+ SpvCapabilityStorageImageReadWithoutFormat = 55,
+ SpvCapabilityStorageImageWriteWithoutFormat = 56,
+ SpvCapabilityMultiViewport = 57,
+ SpvCapabilitySubgroupDispatch = 58,
+ SpvCapabilityNamedBarrier = 59,
+ SpvCapabilityPipeStorage = 60,
+ SpvCapabilitySubgroupBallotKHR = 4423,
+ SpvCapabilityDrawParameters = 4427,
+ SpvCapabilitySubgroupVoteKHR = 4431,
+ SpvCapabilityStorageBuffer16BitAccess = 4433,
+ SpvCapabilityStorageUniformBufferBlock16 = 4433,
+ SpvCapabilityStorageUniform16 = 4434,
+ SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
+ SpvCapabilityStoragePushConstant16 = 4435,
+ SpvCapabilityStorageInputOutput16 = 4436,
+ SpvCapabilityDeviceGroup = 4437,
+ SpvCapabilityMultiView = 4439,
+ SpvCapabilityVariablePointersStorageBuffer = 4441,
+ SpvCapabilityVariablePointers = 4442,
+ SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
+ SpvCapabilityGeometryShaderPassthroughNV = 5251,
+ SpvCapabilityShaderViewportIndexLayerNV = 5254,
+ SpvCapabilityShaderViewportMaskNV = 5255,
+ SpvCapabilityShaderStereoViewNV = 5259,
+ SpvCapabilityPerViewAttributesNV = 5260,
+ SpvCapabilityMax = 0x7fffffff,
+} SpvCapability;
+
+typedef enum SpvOp_ {
+ SpvOpNop = 0,
+ SpvOpUndef = 1,
+ SpvOpSourceContinued = 2,
+ SpvOpSource = 3,
+ SpvOpSourceExtension = 4,
+ SpvOpName = 5,
+ SpvOpMemberName = 6,
+ SpvOpString = 7,
+ SpvOpLine = 8,
+ SpvOpExtension = 10,
+ SpvOpExtInstImport = 11,
+ SpvOpExtInst = 12,
+ SpvOpMemoryModel = 14,
+ SpvOpEntryPoint = 15,
+ SpvOpExecutionMode = 16,
+ SpvOpCapability = 17,
+ SpvOpTypeVoid = 19,
+ SpvOpTypeBool = 20,
+ SpvOpTypeInt = 21,
+ SpvOpTypeFloat = 22,
+ SpvOpTypeVector = 23,
+ SpvOpTypeMatrix = 24,
+ SpvOpTypeImage = 25,
+ SpvOpTypeSampler = 26,
+ SpvOpTypeSampledImage = 27,
+ SpvOpTypeArray = 28,
+ SpvOpTypeRuntimeArray = 29,
+ SpvOpTypeStruct = 30,
+ SpvOpTypeOpaque = 31,
+ SpvOpTypePointer = 32,
+ SpvOpTypeFunction = 33,
+ SpvOpTypeEvent = 34,
+ SpvOpTypeDeviceEvent = 35,
+ SpvOpTypeReserveId = 36,
+ SpvOpTypeQueue = 37,
+ SpvOpTypePipe = 38,
+ SpvOpTypeForwardPointer = 39,
+ SpvOpConstantTrue = 41,
+ SpvOpConstantFalse = 42,
+ SpvOpConstant = 43,
+ SpvOpConstantComposite = 44,
+ SpvOpConstantSampler = 45,
+ SpvOpConstantNull = 46,
+ SpvOpSpecConstantTrue = 48,
+ SpvOpSpecConstantFalse = 49,
+ SpvOpSpecConstant = 50,
+ SpvOpSpecConstantComposite = 51,
+ SpvOpSpecConstantOp = 52,
+ SpvOpFunction = 54,
+ SpvOpFunctionParameter = 55,
+ SpvOpFunctionEnd = 56,
+ SpvOpFunctionCall = 57,
+ SpvOpVariable = 59,
+ SpvOpImageTexelPointer = 60,
+ SpvOpLoad = 61,
+ SpvOpStore = 62,
+ SpvOpCopyMemory = 63,
+ SpvOpCopyMemorySized = 64,
+ SpvOpAccessChain = 65,
+ SpvOpInBoundsAccessChain = 66,
+ SpvOpPtrAccessChain = 67,
+ SpvOpArrayLength = 68,
+ SpvOpGenericPtrMemSemantics = 69,
+ SpvOpInBoundsPtrAccessChain = 70,
+ SpvOpDecorate = 71,
+ SpvOpMemberDecorate = 72,
+ SpvOpDecorationGroup = 73,
+ SpvOpGroupDecorate = 74,
+ SpvOpGroupMemberDecorate = 75,
+ SpvOpVectorExtractDynamic = 77,
+ SpvOpVectorInsertDynamic = 78,
+ SpvOpVectorShuffle = 79,
+ SpvOpCompositeConstruct = 80,
+ SpvOpCompositeExtract = 81,
+ SpvOpCompositeInsert = 82,
+ SpvOpCopyObject = 83,
+ SpvOpTranspose = 84,
+ SpvOpSampledImage = 86,
+ SpvOpImageSampleImplicitLod = 87,
+ SpvOpImageSampleExplicitLod = 88,
+ SpvOpImageSampleDrefImplicitLod = 89,
+ SpvOpImageSampleDrefExplicitLod = 90,
+ SpvOpImageSampleProjImplicitLod = 91,
+ SpvOpImageSampleProjExplicitLod = 92,
+ SpvOpImageSampleProjDrefImplicitLod = 93,
+ SpvOpImageSampleProjDrefExplicitLod = 94,
+ SpvOpImageFetch = 95,
+ SpvOpImageGather = 96,
+ SpvOpImageDrefGather = 97,
+ SpvOpImageRead = 98,
+ SpvOpImageWrite = 99,
+ SpvOpImage = 100,
+ SpvOpImageQueryFormat = 101,
+ SpvOpImageQueryOrder = 102,
+ SpvOpImageQuerySizeLod = 103,
+ SpvOpImageQuerySize = 104,
+ SpvOpImageQueryLod = 105,
+ SpvOpImageQueryLevels = 106,
+ SpvOpImageQuerySamples = 107,
+ SpvOpConvertFToU = 109,
+ SpvOpConvertFToS = 110,
+ SpvOpConvertSToF = 111,
+ SpvOpConvertUToF = 112,
+ SpvOpUConvert = 113,
+ SpvOpSConvert = 114,
+ SpvOpFConvert = 115,
+ SpvOpQuantizeToF16 = 116,
+ SpvOpConvertPtrToU = 117,
+ SpvOpSatConvertSToU = 118,
+ SpvOpSatConvertUToS = 119,
+ SpvOpConvertUToPtr = 120,
+ SpvOpPtrCastToGeneric = 121,
+ SpvOpGenericCastToPtr = 122,
+ SpvOpGenericCastToPtrExplicit = 123,
+ SpvOpBitcast = 124,
+ SpvOpSNegate = 126,
+ SpvOpFNegate = 127,
+ SpvOpIAdd = 128,
+ SpvOpFAdd = 129,
+ SpvOpISub = 130,
+ SpvOpFSub = 131,
+ SpvOpIMul = 132,
+ SpvOpFMul = 133,
+ SpvOpUDiv = 134,
+ SpvOpSDiv = 135,
+ SpvOpFDiv = 136,
+ SpvOpUMod = 137,
+ SpvOpSRem = 138,
+ SpvOpSMod = 139,
+ SpvOpFRem = 140,
+ SpvOpFMod = 141,
+ SpvOpVectorTimesScalar = 142,
+ SpvOpMatrixTimesScalar = 143,
+ SpvOpVectorTimesMatrix = 144,
+ SpvOpMatrixTimesVector = 145,
+ SpvOpMatrixTimesMatrix = 146,
+ SpvOpOuterProduct = 147,
+ SpvOpDot = 148,
+ SpvOpIAddCarry = 149,
+ SpvOpISubBorrow = 150,
+ SpvOpUMulExtended = 151,
+ SpvOpSMulExtended = 152,
+ SpvOpAny = 154,
+ SpvOpAll = 155,
+ SpvOpIsNan = 156,
+ SpvOpIsInf = 157,
+ SpvOpIsFinite = 158,
+ SpvOpIsNormal = 159,
+ SpvOpSignBitSet = 160,
+ SpvOpLessOrGreater = 161,
+ SpvOpOrdered = 162,
+ SpvOpUnordered = 163,
+ SpvOpLogicalEqual = 164,
+ SpvOpLogicalNotEqual = 165,
+ SpvOpLogicalOr = 166,
+ SpvOpLogicalAnd = 167,
+ SpvOpLogicalNot = 168,
+ SpvOpSelect = 169,
+ SpvOpIEqual = 170,
+ SpvOpINotEqual = 171,
+ SpvOpUGreaterThan = 172,
+ SpvOpSGreaterThan = 173,
+ SpvOpUGreaterThanEqual = 174,
+ SpvOpSGreaterThanEqual = 175,
+ SpvOpULessThan = 176,
+ SpvOpSLessThan = 177,
+ SpvOpULessThanEqual = 178,
+ SpvOpSLessThanEqual = 179,
+ SpvOpFOrdEqual = 180,
+ SpvOpFUnordEqual = 181,
+ SpvOpFOrdNotEqual = 182,
+ SpvOpFUnordNotEqual = 183,
+ SpvOpFOrdLessThan = 184,
+ SpvOpFUnordLessThan = 185,
+ SpvOpFOrdGreaterThan = 186,
+ SpvOpFUnordGreaterThan = 187,
+ SpvOpFOrdLessThanEqual = 188,
+ SpvOpFUnordLessThanEqual = 189,
+ SpvOpFOrdGreaterThanEqual = 190,
+ SpvOpFUnordGreaterThanEqual = 191,
+ SpvOpShiftRightLogical = 194,
+ SpvOpShiftRightArithmetic = 195,
+ SpvOpShiftLeftLogical = 196,
+ SpvOpBitwiseOr = 197,
+ SpvOpBitwiseXor = 198,
+ SpvOpBitwiseAnd = 199,
+ SpvOpNot = 200,
+ SpvOpBitFieldInsert = 201,
+ SpvOpBitFieldSExtract = 202,
+ SpvOpBitFieldUExtract = 203,
+ SpvOpBitReverse = 204,
+ SpvOpBitCount = 205,
+ SpvOpDPdx = 207,
+ SpvOpDPdy = 208,
+ SpvOpFwidth = 209,
+ SpvOpDPdxFine = 210,
+ SpvOpDPdyFine = 211,
+ SpvOpFwidthFine = 212,
+ SpvOpDPdxCoarse = 213,
+ SpvOpDPdyCoarse = 214,
+ SpvOpFwidthCoarse = 215,
+ SpvOpEmitVertex = 218,
+ SpvOpEndPrimitive = 219,
+ SpvOpEmitStreamVertex = 220,
+ SpvOpEndStreamPrimitive = 221,
+ SpvOpControlBarrier = 224,
+ SpvOpMemoryBarrier = 225,
+ SpvOpAtomicLoad = 227,
+ SpvOpAtomicStore = 228,
+ SpvOpAtomicExchange = 229,
+ SpvOpAtomicCompareExchange = 230,
+ SpvOpAtomicCompareExchangeWeak = 231,
+ SpvOpAtomicIIncrement = 232,
+ SpvOpAtomicIDecrement = 233,
+ SpvOpAtomicIAdd = 234,
+ SpvOpAtomicISub = 235,
+ SpvOpAtomicSMin = 236,
+ SpvOpAtomicUMin = 237,
+ SpvOpAtomicSMax = 238,
+ SpvOpAtomicUMax = 239,
+ SpvOpAtomicAnd = 240,
+ SpvOpAtomicOr = 241,
+ SpvOpAtomicXor = 242,
+ SpvOpPhi = 245,
+ SpvOpLoopMerge = 246,
+ SpvOpSelectionMerge = 247,
+ SpvOpLabel = 248,
+ SpvOpBranch = 249,
+ SpvOpBranchConditional = 250,
+ SpvOpSwitch = 251,
+ SpvOpKill = 252,
+ SpvOpReturn = 253,
+ SpvOpReturnValue = 254,
+ SpvOpUnreachable = 255,
+ SpvOpLifetimeStart = 256,
+ SpvOpLifetimeStop = 257,
+ SpvOpGroupAsyncCopy = 259,
+ SpvOpGroupWaitEvents = 260,
+ SpvOpGroupAll = 261,
+ SpvOpGroupAny = 262,
+ SpvOpGroupBroadcast = 263,
+ SpvOpGroupIAdd = 264,
+ SpvOpGroupFAdd = 265,
+ SpvOpGroupFMin = 266,
+ SpvOpGroupUMin = 267,
+ SpvOpGroupSMin = 268,
+ SpvOpGroupFMax = 269,
+ SpvOpGroupUMax = 270,
+ SpvOpGroupSMax = 271,
+ SpvOpReadPipe = 274,
+ SpvOpWritePipe = 275,
+ SpvOpReservedReadPipe = 276,
+ SpvOpReservedWritePipe = 277,
+ SpvOpReserveReadPipePackets = 278,
+ SpvOpReserveWritePipePackets = 279,
+ SpvOpCommitReadPipe = 280,
+ SpvOpCommitWritePipe = 281,
+ SpvOpIsValidReserveId = 282,
+ SpvOpGetNumPipePackets = 283,
+ SpvOpGetMaxPipePackets = 284,
+ SpvOpGroupReserveReadPipePackets = 285,
+ SpvOpGroupReserveWritePipePackets = 286,
+ SpvOpGroupCommitReadPipe = 287,
+ SpvOpGroupCommitWritePipe = 288,
+ SpvOpEnqueueMarker = 291,
+ SpvOpEnqueueKernel = 292,
+ SpvOpGetKernelNDrangeSubGroupCount = 293,
+ SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
+ SpvOpGetKernelWorkGroupSize = 295,
+ SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
+ SpvOpRetainEvent = 297,
+ SpvOpReleaseEvent = 298,
+ SpvOpCreateUserEvent = 299,
+ SpvOpIsValidEvent = 300,
+ SpvOpSetUserEventStatus = 301,
+ SpvOpCaptureEventProfilingInfo = 302,
+ SpvOpGetDefaultQueue = 303,
+ SpvOpBuildNDRange = 304,
+ SpvOpImageSparseSampleImplicitLod = 305,
+ SpvOpImageSparseSampleExplicitLod = 306,
+ SpvOpImageSparseSampleDrefImplicitLod = 307,
+ SpvOpImageSparseSampleDrefExplicitLod = 308,
+ SpvOpImageSparseSampleProjImplicitLod = 309,
+ SpvOpImageSparseSampleProjExplicitLod = 310,
+ SpvOpImageSparseSampleProjDrefImplicitLod = 311,
+ SpvOpImageSparseSampleProjDrefExplicitLod = 312,
+ SpvOpImageSparseFetch = 313,
+ SpvOpImageSparseGather = 314,
+ SpvOpImageSparseDrefGather = 315,
+ SpvOpImageSparseTexelsResident = 316,
+ SpvOpNoLine = 317,
+ SpvOpAtomicFlagTestAndSet = 318,
+ SpvOpAtomicFlagClear = 319,
+ SpvOpImageSparseRead = 320,
+ SpvOpSizeOf = 321,
+ SpvOpTypePipeStorage = 322,
+ SpvOpConstantPipeStorage = 323,
+ SpvOpCreatePipeFromPipeStorage = 324,
+ SpvOpGetKernelLocalSizeForSubgroupCount = 325,
+ SpvOpGetKernelMaxNumSubgroups = 326,
+ SpvOpTypeNamedBarrier = 327,
+ SpvOpNamedBarrierInitialize = 328,
+ SpvOpMemoryNamedBarrier = 329,
+ SpvOpModuleProcessed = 330,
+ SpvOpExecutionModeId = 331,
+ SpvOpDecorateId = 332,
+ SpvOpSubgroupBallotKHR = 4421,
+ SpvOpSubgroupFirstInvocationKHR = 4422,
+ SpvOpSubgroupAllKHR = 4428,
+ SpvOpSubgroupAnyKHR = 4429,
+ SpvOpSubgroupAllEqualKHR = 4430,
+ SpvOpSubgroupReadInvocationKHR = 4432,
+ SpvOpMax = 0x7fffffff,
+} SpvOp;
+
+#endif // #ifndef spirv_H
+
diff --git a/include/spirv/1.2/spirv.hpp b/include/spirv/1.2/spirv.hpp
new file mode 100644
index 0000000..259e782
--- /dev/null
+++ b/include/spirv/1.2/spirv.hpp
@@ -0,0 +1,987 @@
+// Copyright (c) 2014-2017 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and/or associated documentation files (the "Materials"),
+// to deal in the Materials without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Materials, and to permit persons to whom the
+// Materials are furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+// IN THE MATERIALS.
+
+// This header is automatically generated by the same tool that creates
+// the Binary Section of the SPIR-V specification.
+
+// Enumeration tokens for SPIR-V, in various styles:
+// C, C++, C++11, JSON, Lua, Python
+//
+// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+//
+// Some tokens act like mask values, which can be OR'd together,
+// while others are mutually exclusive. The mask-like ones have
+// "Mask" in their name, and a parallel enum that has the shift
+// amount (1 << x) for each corresponding enumerant.
+
+#ifndef spirv_HPP
+#define spirv_HPP
+
+namespace spv {
+
+typedef unsigned int Id;
+
+#define SPV_VERSION 0x10200
+#define SPV_REVISION 1
+
+static const unsigned int MagicNumber = 0x07230203;
+static const unsigned int Version = 0x00010200;
+static const unsigned int Revision = 1;
+static const unsigned int OpCodeMask = 0xffff;
+static const unsigned int WordCountShift = 16;
+
+enum SourceLanguage {
+ SourceLanguageUnknown = 0,
+ SourceLanguageESSL = 1,
+ SourceLanguageGLSL = 2,
+ SourceLanguageOpenCL_C = 3,
+ SourceLanguageOpenCL_CPP = 4,
+ SourceLanguageHLSL = 5,
+ SourceLanguageMax = 0x7fffffff,
+};
+
+enum ExecutionModel {
+ ExecutionModelVertex = 0,
+ ExecutionModelTessellationControl = 1,
+ ExecutionModelTessellationEvaluation = 2,
+ ExecutionModelGeometry = 3,
+ ExecutionModelFragment = 4,
+ ExecutionModelGLCompute = 5,
+ ExecutionModelKernel = 6,
+ ExecutionModelMax = 0x7fffffff,
+};
+
+enum AddressingModel {
+ AddressingModelLogical = 0,
+ AddressingModelPhysical32 = 1,
+ AddressingModelPhysical64 = 2,
+ AddressingModelMax = 0x7fffffff,
+};
+
+enum MemoryModel {
+ MemoryModelSimple = 0,
+ MemoryModelGLSL450 = 1,
+ MemoryModelOpenCL = 2,
+ MemoryModelMax = 0x7fffffff,
+};
+
+enum ExecutionMode {
+ ExecutionModeInvocations = 0,
+ ExecutionModeSpacingEqual = 1,
+ ExecutionModeSpacingFractionalEven = 2,
+ ExecutionModeSpacingFractionalOdd = 3,
+ ExecutionModeVertexOrderCw = 4,
+ ExecutionModeVertexOrderCcw = 5,
+ ExecutionModePixelCenterInteger = 6,
+ ExecutionModeOriginUpperLeft = 7,
+ ExecutionModeOriginLowerLeft = 8,
+ ExecutionModeEarlyFragmentTests = 9,
+ ExecutionModePointMode = 10,
+ ExecutionModeXfb = 11,
+ ExecutionModeDepthReplacing = 12,
+ ExecutionModeDepthGreater = 14,
+ ExecutionModeDepthLess = 15,
+ ExecutionModeDepthUnchanged = 16,
+ ExecutionModeLocalSize = 17,
+ ExecutionModeLocalSizeHint = 18,
+ ExecutionModeInputPoints = 19,
+ ExecutionModeInputLines = 20,
+ ExecutionModeInputLinesAdjacency = 21,
+ ExecutionModeTriangles = 22,
+ ExecutionModeInputTrianglesAdjacency = 23,
+ ExecutionModeQuads = 24,
+ ExecutionModeIsolines = 25,
+ ExecutionModeOutputVertices = 26,
+ ExecutionModeOutputPoints = 27,
+ ExecutionModeOutputLineStrip = 28,
+ ExecutionModeOutputTriangleStrip = 29,
+ ExecutionModeVecTypeHint = 30,
+ ExecutionModeContractionOff = 31,
+ ExecutionModeInitializer = 33,
+ ExecutionModeFinalizer = 34,
+ ExecutionModeSubgroupSize = 35,
+ ExecutionModeSubgroupsPerWorkgroup = 36,
+ ExecutionModeSubgroupsPerWorkgroupId = 37,
+ ExecutionModeLocalSizeId = 38,
+ ExecutionModeLocalSizeHintId = 39,
+ ExecutionModeMax = 0x7fffffff,
+};
+
+enum StorageClass {
+ StorageClassUniformConstant = 0,
+ StorageClassInput = 1,
+ StorageClassUniform = 2,
+ StorageClassOutput = 3,
+ StorageClassWorkgroup = 4,
+ StorageClassCrossWorkgroup = 5,
+ StorageClassPrivate = 6,
+ StorageClassFunction = 7,
+ StorageClassGeneric = 8,
+ StorageClassPushConstant = 9,
+ StorageClassAtomicCounter = 10,
+ StorageClassImage = 11,
+ StorageClassStorageBuffer = 12,
+ StorageClassMax = 0x7fffffff,
+};
+
+enum Dim {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ DimCube = 3,
+ DimRect = 4,
+ DimBuffer = 5,
+ DimSubpassData = 6,
+ DimMax = 0x7fffffff,
+};
+
+enum SamplerAddressingMode {
+ SamplerAddressingModeNone = 0,
+ SamplerAddressingModeClampToEdge = 1,
+ SamplerAddressingModeClamp = 2,
+ SamplerAddressingModeRepeat = 3,
+ SamplerAddressingModeRepeatMirrored = 4,
+ SamplerAddressingModeMax = 0x7fffffff,
+};
+
+enum SamplerFilterMode {
+ SamplerFilterModeNearest = 0,
+ SamplerFilterModeLinear = 1,
+ SamplerFilterModeMax = 0x7fffffff,
+};
+
+enum ImageFormat {
+ ImageFormatUnknown = 0,
+ ImageFormatRgba32f = 1,
+ ImageFormatRgba16f = 2,
+ ImageFormatR32f = 3,
+ ImageFormatRgba8 = 4,
+ ImageFormatRgba8Snorm = 5,
+ ImageFormatRg32f = 6,
+ ImageFormatRg16f = 7,
+ ImageFormatR11fG11fB10f = 8,
+ ImageFormatR16f = 9,
+ ImageFormatRgba16 = 10,
+ ImageFormatRgb10A2 = 11,
+ ImageFormatRg16 = 12,
+ ImageFormatRg8 = 13,
+ ImageFormatR16 = 14,
+ ImageFormatR8 = 15,
+ ImageFormatRgba16Snorm = 16,
+ ImageFormatRg16Snorm = 17,
+ ImageFormatRg8Snorm = 18,
+ ImageFormatR16Snorm = 19,
+ ImageFormatR8Snorm = 20,
+ ImageFormatRgba32i = 21,
+ ImageFormatRgba16i = 22,
+ ImageFormatRgba8i = 23,
+ ImageFormatR32i = 24,
+ ImageFormatRg32i = 25,
+ ImageFormatRg16i = 26,
+ ImageFormatRg8i = 27,
+ ImageFormatR16i = 28,
+ ImageFormatR8i = 29,
+ ImageFormatRgba32ui = 30,
+ ImageFormatRgba16ui = 31,
+ ImageFormatRgba8ui = 32,
+ ImageFormatR32ui = 33,
+ ImageFormatRgb10a2ui = 34,
+ ImageFormatRg32ui = 35,
+ ImageFormatRg16ui = 36,
+ ImageFormatRg8ui = 37,
+ ImageFormatR16ui = 38,
+ ImageFormatR8ui = 39,
+ ImageFormatMax = 0x7fffffff,
+};
+
+enum ImageChannelOrder {
+ ImageChannelOrderR = 0,
+ ImageChannelOrderA = 1,
+ ImageChannelOrderRG = 2,
+ ImageChannelOrderRA = 3,
+ ImageChannelOrderRGB = 4,
+ ImageChannelOrderRGBA = 5,
+ ImageChannelOrderBGRA = 6,
+ ImageChannelOrderARGB = 7,
+ ImageChannelOrderIntensity = 8,
+ ImageChannelOrderLuminance = 9,
+ ImageChannelOrderRx = 10,
+ ImageChannelOrderRGx = 11,
+ ImageChannelOrderRGBx = 12,
+ ImageChannelOrderDepth = 13,
+ ImageChannelOrderDepthStencil = 14,
+ ImageChannelOrdersRGB = 15,
+ ImageChannelOrdersRGBx = 16,
+ ImageChannelOrdersRGBA = 17,
+ ImageChannelOrdersBGRA = 18,
+ ImageChannelOrderABGR = 19,
+ ImageChannelOrderMax = 0x7fffffff,
+};
+
+enum ImageChannelDataType {
+ ImageChannelDataTypeSnormInt8 = 0,
+ ImageChannelDataTypeSnormInt16 = 1,
+ ImageChannelDataTypeUnormInt8 = 2,
+ ImageChannelDataTypeUnormInt16 = 3,
+ ImageChannelDataTypeUnormShort565 = 4,
+ ImageChannelDataTypeUnormShort555 = 5,
+ ImageChannelDataTypeUnormInt101010 = 6,
+ ImageChannelDataTypeSignedInt8 = 7,
+ ImageChannelDataTypeSignedInt16 = 8,
+ ImageChannelDataTypeSignedInt32 = 9,
+ ImageChannelDataTypeUnsignedInt8 = 10,
+ ImageChannelDataTypeUnsignedInt16 = 11,
+ ImageChannelDataTypeUnsignedInt32 = 12,
+ ImageChannelDataTypeHalfFloat = 13,
+ ImageChannelDataTypeFloat = 14,
+ ImageChannelDataTypeUnormInt24 = 15,
+ ImageChannelDataTypeUnormInt101010_2 = 16,
+ ImageChannelDataTypeMax = 0x7fffffff,
+};
+
+enum ImageOperandsShift {
+ ImageOperandsBiasShift = 0,
+ ImageOperandsLodShift = 1,
+ ImageOperandsGradShift = 2,
+ ImageOperandsConstOffsetShift = 3,
+ ImageOperandsOffsetShift = 4,
+ ImageOperandsConstOffsetsShift = 5,
+ ImageOperandsSampleShift = 6,
+ ImageOperandsMinLodShift = 7,
+ ImageOperandsMax = 0x7fffffff,
+};
+
+enum ImageOperandsMask {
+ ImageOperandsMaskNone = 0,
+ ImageOperandsBiasMask = 0x00000001,
+ ImageOperandsLodMask = 0x00000002,
+ ImageOperandsGradMask = 0x00000004,
+ ImageOperandsConstOffsetMask = 0x00000008,
+ ImageOperandsOffsetMask = 0x00000010,
+ ImageOperandsConstOffsetsMask = 0x00000020,
+ ImageOperandsSampleMask = 0x00000040,
+ ImageOperandsMinLodMask = 0x00000080,
+};
+
+enum FPFastMathModeShift {
+ FPFastMathModeNotNaNShift = 0,
+ FPFastMathModeNotInfShift = 1,
+ FPFastMathModeNSZShift = 2,
+ FPFastMathModeAllowRecipShift = 3,
+ FPFastMathModeFastShift = 4,
+ FPFastMathModeMax = 0x7fffffff,
+};
+
+enum FPFastMathModeMask {
+ FPFastMathModeMaskNone = 0,
+ FPFastMathModeNotNaNMask = 0x00000001,
+ FPFastMathModeNotInfMask = 0x00000002,
+ FPFastMathModeNSZMask = 0x00000004,
+ FPFastMathModeAllowRecipMask = 0x00000008,
+ FPFastMathModeFastMask = 0x00000010,
+};
+
+enum FPRoundingMode {
+ FPRoundingModeRTE = 0,
+ FPRoundingModeRTZ = 1,
+ FPRoundingModeRTP = 2,
+ FPRoundingModeRTN = 3,
+ FPRoundingModeMax = 0x7fffffff,
+};
+
+enum LinkageType {
+ LinkageTypeExport = 0,
+ LinkageTypeImport = 1,
+ LinkageTypeMax = 0x7fffffff,
+};
+
+enum AccessQualifier {
+ AccessQualifierReadOnly = 0,
+ AccessQualifierWriteOnly = 1,
+ AccessQualifierReadWrite = 2,
+ AccessQualifierMax = 0x7fffffff,
+};
+
+enum FunctionParameterAttribute {
+ FunctionParameterAttributeZext = 0,
+ FunctionParameterAttributeSext = 1,
+ FunctionParameterAttributeByVal = 2,
+ FunctionParameterAttributeSret = 3,
+ FunctionParameterAttributeNoAlias = 4,
+ FunctionParameterAttributeNoCapture = 5,
+ FunctionParameterAttributeNoWrite = 6,
+ FunctionParameterAttributeNoReadWrite = 7,
+ FunctionParameterAttributeMax = 0x7fffffff,
+};
+
+enum Decoration {
+ DecorationRelaxedPrecision = 0,
+ DecorationSpecId = 1,
+ DecorationBlock = 2,
+ DecorationBufferBlock = 3,
+ DecorationRowMajor = 4,
+ DecorationColMajor = 5,
+ DecorationArrayStride = 6,
+ DecorationMatrixStride = 7,
+ DecorationGLSLShared = 8,
+ DecorationGLSLPacked = 9,
+ DecorationCPacked = 10,
+ DecorationBuiltIn = 11,
+ DecorationNoPerspective = 13,
+ DecorationFlat = 14,
+ DecorationPatch = 15,
+ DecorationCentroid = 16,
+ DecorationSample = 17,
+ DecorationInvariant = 18,
+ DecorationRestrict = 19,
+ DecorationAliased = 20,
+ DecorationVolatile = 21,
+ DecorationConstant = 22,
+ DecorationCoherent = 23,
+ DecorationNonWritable = 24,
+ DecorationNonReadable = 25,
+ DecorationUniform = 26,
+ DecorationSaturatedConversion = 28,
+ DecorationStream = 29,
+ DecorationLocation = 30,
+ DecorationComponent = 31,
+ DecorationIndex = 32,
+ DecorationBinding = 33,
+ DecorationDescriptorSet = 34,
+ DecorationOffset = 35,
+ DecorationXfbBuffer = 36,
+ DecorationXfbStride = 37,
+ DecorationFuncParamAttr = 38,
+ DecorationFPRoundingMode = 39,
+ DecorationFPFastMathMode = 40,
+ DecorationLinkageAttributes = 41,
+ DecorationNoContraction = 42,
+ DecorationInputAttachmentIndex = 43,
+ DecorationAlignment = 44,
+ DecorationMaxByteOffset = 45,
+ DecorationAlignmentId = 46,
+ DecorationMaxByteOffsetId = 47,
+ DecorationOverrideCoverageNV = 5248,
+ DecorationPassthroughNV = 5250,
+ DecorationViewportRelativeNV = 5252,
+ DecorationSecondaryViewportRelativeNV = 5256,
+ DecorationMax = 0x7fffffff,
+};
+
+enum BuiltIn {
+ BuiltInPosition = 0,
+ BuiltInPointSize = 1,
+ BuiltInClipDistance = 3,
+ BuiltInCullDistance = 4,
+ BuiltInVertexId = 5,
+ BuiltInInstanceId = 6,
+ BuiltInPrimitiveId = 7,
+ BuiltInInvocationId = 8,
+ BuiltInLayer = 9,
+ BuiltInViewportIndex = 10,
+ BuiltInTessLevelOuter = 11,
+ BuiltInTessLevelInner = 12,
+ BuiltInTessCoord = 13,
+ BuiltInPatchVertices = 14,
+ BuiltInFragCoord = 15,
+ BuiltInPointCoord = 16,
+ BuiltInFrontFacing = 17,
+ BuiltInSampleId = 18,
+ BuiltInSamplePosition = 19,
+ BuiltInSampleMask = 20,
+ BuiltInFragDepth = 22,
+ BuiltInHelperInvocation = 23,
+ BuiltInNumWorkgroups = 24,
+ BuiltInWorkgroupSize = 25,
+ BuiltInWorkgroupId = 26,
+ BuiltInLocalInvocationId = 27,
+ BuiltInGlobalInvocationId = 28,
+ BuiltInLocalInvocationIndex = 29,
+ BuiltInWorkDim = 30,
+ BuiltInGlobalSize = 31,
+ BuiltInEnqueuedWorkgroupSize = 32,
+ BuiltInGlobalOffset = 33,
+ BuiltInGlobalLinearId = 34,
+ BuiltInSubgroupSize = 36,
+ BuiltInSubgroupMaxSize = 37,
+ BuiltInNumSubgroups = 38,
+ BuiltInNumEnqueuedSubgroups = 39,
+ BuiltInSubgroupId = 40,
+ BuiltInSubgroupLocalInvocationId = 41,
+ BuiltInVertexIndex = 42,
+ BuiltInInstanceIndex = 43,
+ BuiltInSubgroupEqMaskKHR = 4416,
+ BuiltInSubgroupGeMaskKHR = 4417,
+ BuiltInSubgroupGtMaskKHR = 4418,
+ BuiltInSubgroupLeMaskKHR = 4419,
+ BuiltInSubgroupLtMaskKHR = 4420,
+ BuiltInBaseVertex = 4424,
+ BuiltInBaseInstance = 4425,
+ BuiltInDrawIndex = 4426,
+ BuiltInDeviceIndex = 4438,
+ BuiltInViewIndex = 4440,
+ BuiltInViewportMaskNV = 5253,
+ BuiltInSecondaryPositionNV = 5257,
+ BuiltInSecondaryViewportMaskNV = 5258,
+ BuiltInPositionPerViewNV = 5261,
+ BuiltInViewportMaskPerViewNV = 5262,
+ BuiltInMax = 0x7fffffff,
+};
+
+enum SelectionControlShift {
+ SelectionControlFlattenShift = 0,
+ SelectionControlDontFlattenShift = 1,
+ SelectionControlMax = 0x7fffffff,
+};
+
+enum SelectionControlMask {
+ SelectionControlMaskNone = 0,
+ SelectionControlFlattenMask = 0x00000001,
+ SelectionControlDontFlattenMask = 0x00000002,
+};
+
+enum LoopControlShift {
+ LoopControlUnrollShift = 0,
+ LoopControlDontUnrollShift = 1,
+ LoopControlDependencyInfiniteShift = 2,
+ LoopControlDependencyLengthShift = 3,
+ LoopControlMax = 0x7fffffff,
+};
+
+enum LoopControlMask {
+ LoopControlMaskNone = 0,
+ LoopControlUnrollMask = 0x00000001,
+ LoopControlDontUnrollMask = 0x00000002,
+ LoopControlDependencyInfiniteMask = 0x00000004,
+ LoopControlDependencyLengthMask = 0x00000008,
+};
+
+enum FunctionControlShift {
+ FunctionControlInlineShift = 0,
+ FunctionControlDontInlineShift = 1,
+ FunctionControlPureShift = 2,
+ FunctionControlConstShift = 3,
+ FunctionControlMax = 0x7fffffff,
+};
+
+enum FunctionControlMask {
+ FunctionControlMaskNone = 0,
+ FunctionControlInlineMask = 0x00000001,
+ FunctionControlDontInlineMask = 0x00000002,
+ FunctionControlPureMask = 0x00000004,
+ FunctionControlConstMask = 0x00000008,
+};
+
+enum MemorySemanticsShift {
+ MemorySemanticsAcquireShift = 1,
+ MemorySemanticsReleaseShift = 2,
+ MemorySemanticsAcquireReleaseShift = 3,
+ MemorySemanticsSequentiallyConsistentShift = 4,
+ MemorySemanticsUniformMemoryShift = 6,
+ MemorySemanticsSubgroupMemoryShift = 7,
+ MemorySemanticsWorkgroupMemoryShift = 8,
+ MemorySemanticsCrossWorkgroupMemoryShift = 9,
+ MemorySemanticsAtomicCounterMemoryShift = 10,
+ MemorySemanticsImageMemoryShift = 11,
+ MemorySemanticsMax = 0x7fffffff,
+};
+
+enum MemorySemanticsMask {
+ MemorySemanticsMaskNone = 0,
+ MemorySemanticsAcquireMask = 0x00000002,
+ MemorySemanticsReleaseMask = 0x00000004,
+ MemorySemanticsAcquireReleaseMask = 0x00000008,
+ MemorySemanticsSequentiallyConsistentMask = 0x00000010,
+ MemorySemanticsUniformMemoryMask = 0x00000040,
+ MemorySemanticsSubgroupMemoryMask = 0x00000080,
+ MemorySemanticsWorkgroupMemoryMask = 0x00000100,
+ MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
+ MemorySemanticsAtomicCounterMemoryMask = 0x00000400,
+ MemorySemanticsImageMemoryMask = 0x00000800,
+};
+
+enum MemoryAccessShift {
+ MemoryAccessVolatileShift = 0,
+ MemoryAccessAlignedShift = 1,
+ MemoryAccessNontemporalShift = 2,
+ MemoryAccessMax = 0x7fffffff,
+};
+
+enum MemoryAccessMask {
+ MemoryAccessMaskNone = 0,
+ MemoryAccessVolatileMask = 0x00000001,
+ MemoryAccessAlignedMask = 0x00000002,
+ MemoryAccessNontemporalMask = 0x00000004,
+};
+
+enum Scope {
+ ScopeCrossDevice = 0,
+ ScopeDevice = 1,
+ ScopeWorkgroup = 2,
+ ScopeSubgroup = 3,
+ ScopeInvocation = 4,
+ ScopeMax = 0x7fffffff,
+};
+
+enum GroupOperation {
+ GroupOperationReduce = 0,
+ GroupOperationInclusiveScan = 1,
+ GroupOperationExclusiveScan = 2,
+ GroupOperationMax = 0x7fffffff,
+};
+
+enum KernelEnqueueFlags {
+ KernelEnqueueFlagsNoWait = 0,
+ KernelEnqueueFlagsWaitKernel = 1,
+ KernelEnqueueFlagsWaitWorkGroup = 2,
+ KernelEnqueueFlagsMax = 0x7fffffff,
+};
+
+enum KernelProfilingInfoShift {
+ KernelProfilingInfoCmdExecTimeShift = 0,
+ KernelProfilingInfoMax = 0x7fffffff,
+};
+
+enum KernelProfilingInfoMask {
+ KernelProfilingInfoMaskNone = 0,
+ KernelProfilingInfoCmdExecTimeMask = 0x00000001,
+};
+
+enum Capability {
+ CapabilityMatrix = 0,
+ CapabilityShader = 1,
+ CapabilityGeometry = 2,
+ CapabilityTessellation = 3,
+ CapabilityAddresses = 4,
+ CapabilityLinkage = 5,
+ CapabilityKernel = 6,
+ CapabilityVector16 = 7,
+ CapabilityFloat16Buffer = 8,
+ CapabilityFloat16 = 9,
+ CapabilityFloat64 = 10,
+ CapabilityInt64 = 11,
+ CapabilityInt64Atomics = 12,
+ CapabilityImageBasic = 13,
+ CapabilityImageReadWrite = 14,
+ CapabilityImageMipmap = 15,
+ CapabilityPipes = 17,
+ CapabilityGroups = 18,
+ CapabilityDeviceEnqueue = 19,
+ CapabilityLiteralSampler = 20,
+ CapabilityAtomicStorage = 21,
+ CapabilityInt16 = 22,
+ CapabilityTessellationPointSize = 23,
+ CapabilityGeometryPointSize = 24,
+ CapabilityImageGatherExtended = 25,
+ CapabilityStorageImageMultisample = 27,
+ CapabilityUniformBufferArrayDynamicIndexing = 28,
+ CapabilitySampledImageArrayDynamicIndexing = 29,
+ CapabilityStorageBufferArrayDynamicIndexing = 30,
+ CapabilityStorageImageArrayDynamicIndexing = 31,
+ CapabilityClipDistance = 32,
+ CapabilityCullDistance = 33,
+ CapabilityImageCubeArray = 34,
+ CapabilitySampleRateShading = 35,
+ CapabilityImageRect = 36,
+ CapabilitySampledRect = 37,
+ CapabilityGenericPointer = 38,
+ CapabilityInt8 = 39,
+ CapabilityInputAttachment = 40,
+ CapabilitySparseResidency = 41,
+ CapabilityMinLod = 42,
+ CapabilitySampled1D = 43,
+ CapabilityImage1D = 44,
+ CapabilitySampledCubeArray = 45,
+ CapabilitySampledBuffer = 46,
+ CapabilityImageBuffer = 47,
+ CapabilityImageMSArray = 48,
+ CapabilityStorageImageExtendedFormats = 49,
+ CapabilityImageQuery = 50,
+ CapabilityDerivativeControl = 51,
+ CapabilityInterpolationFunction = 52,
+ CapabilityTransformFeedback = 53,
+ CapabilityGeometryStreams = 54,
+ CapabilityStorageImageReadWithoutFormat = 55,
+ CapabilityStorageImageWriteWithoutFormat = 56,
+ CapabilityMultiViewport = 57,
+ CapabilitySubgroupDispatch = 58,
+ CapabilityNamedBarrier = 59,
+ CapabilityPipeStorage = 60,
+ CapabilitySubgroupBallotKHR = 4423,
+ CapabilityDrawParameters = 4427,
+ CapabilitySubgroupVoteKHR = 4431,
+ CapabilityStorageBuffer16BitAccess = 4433,
+ CapabilityStorageUniformBufferBlock16 = 4433,
+ CapabilityStorageUniform16 = 4434,
+ CapabilityUniformAndStorageBuffer16BitAccess = 4434,
+ CapabilityStoragePushConstant16 = 4435,
+ CapabilityStorageInputOutput16 = 4436,
+ CapabilityDeviceGroup = 4437,
+ CapabilityMultiView = 4439,
+ CapabilityVariablePointersStorageBuffer = 4441,
+ CapabilityVariablePointers = 4442,
+ CapabilitySampleMaskOverrideCoverageNV = 5249,
+ CapabilityGeometryShaderPassthroughNV = 5251,
+ CapabilityShaderViewportIndexLayerNV = 5254,
+ CapabilityShaderViewportMaskNV = 5255,
+ CapabilityShaderStereoViewNV = 5259,
+ CapabilityPerViewAttributesNV = 5260,
+ CapabilityMax = 0x7fffffff,
+};
+
+enum Op {
+ OpNop = 0,
+ OpUndef = 1,
+ OpSourceContinued = 2,
+ OpSource = 3,
+ OpSourceExtension = 4,
+ OpName = 5,
+ OpMemberName = 6,
+ OpString = 7,
+ OpLine = 8,
+ OpExtension = 10,
+ OpExtInstImport = 11,
+ OpExtInst = 12,
+ OpMemoryModel = 14,
+ OpEntryPoint = 15,
+ OpExecutionMode = 16,
+ OpCapability = 17,
+ OpTypeVoid = 19,
+ OpTypeBool = 20,
+ OpTypeInt = 21,
+ OpTypeFloat = 22,
+ OpTypeVector = 23,
+ OpTypeMatrix = 24,
+ OpTypeImage = 25,
+ OpTypeSampler = 26,
+ OpTypeSampledImage = 27,
+ OpTypeArray = 28,
+ OpTypeRuntimeArray = 29,
+ OpTypeStruct = 30,
+ OpTypeOpaque = 31,
+ OpTypePointer = 32,
+ OpTypeFunction = 33,
+ OpTypeEvent = 34,
+ OpTypeDeviceEvent = 35,
+ OpTypeReserveId = 36,
+ OpTypeQueue = 37,
+ OpTypePipe = 38,
+ OpTypeForwardPointer = 39,
+ OpConstantTrue = 41,
+ OpConstantFalse = 42,
+ OpConstant = 43,
+ OpConstantComposite = 44,
+ OpConstantSampler = 45,
+ OpConstantNull = 46,
+ OpSpecConstantTrue = 48,
+ OpSpecConstantFalse = 49,
+ OpSpecConstant = 50,
+ OpSpecConstantComposite = 51,
+ OpSpecConstantOp = 52,
+ OpFunction = 54,
+ OpFunctionParameter = 55,
+ OpFunctionEnd = 56,
+ OpFunctionCall = 57,
+ OpVariable = 59,
+ OpImageTexelPointer = 60,
+ OpLoad = 61,
+ OpStore = 62,
+ OpCopyMemory = 63,
+ OpCopyMemorySized = 64,
+ OpAccessChain = 65,
+ OpInBoundsAccessChain = 66,
+ OpPtrAccessChain = 67,
+ OpArrayLength = 68,
+ OpGenericPtrMemSemantics = 69,
+ OpInBoundsPtrAccessChain = 70,
+ OpDecorate = 71,
+ OpMemberDecorate = 72,
+ OpDecorationGroup = 73,
+ OpGroupDecorate = 74,
+ OpGroupMemberDecorate = 75,
+ OpVectorExtractDynamic = 77,
+ OpVectorInsertDynamic = 78,
+ OpVectorShuffle = 79,
+ OpCompositeConstruct = 80,
+ OpCompositeExtract = 81,
+ OpCompositeInsert = 82,
+ OpCopyObject = 83,
+ OpTranspose = 84,
+ OpSampledImage = 86,
+ OpImageSampleImplicitLod = 87,
+ OpImageSampleExplicitLod = 88,
+ OpImageSampleDrefImplicitLod = 89,
+ OpImageSampleDrefExplicitLod = 90,
+ OpImageSampleProjImplicitLod = 91,
+ OpImageSampleProjExplicitLod = 92,
+ OpImageSampleProjDrefImplicitLod = 93,
+ OpImageSampleProjDrefExplicitLod = 94,
+ OpImageFetch = 95,
+ OpImageGather = 96,
+ OpImageDrefGather = 97,
+ OpImageRead = 98,
+ OpImageWrite = 99,
+ OpImage = 100,
+ OpImageQueryFormat = 101,
+ OpImageQueryOrder = 102,
+ OpImageQuerySizeLod = 103,
+ OpImageQuerySize = 104,
+ OpImageQueryLod = 105,
+ OpImageQueryLevels = 106,
+ OpImageQuerySamples = 107,
+ OpConvertFToU = 109,
+ OpConvertFToS = 110,
+ OpConvertSToF = 111,
+ OpConvertUToF = 112,
+ OpUConvert = 113,
+ OpSConvert = 114,
+ OpFConvert = 115,
+ OpQuantizeToF16 = 116,
+ OpConvertPtrToU = 117,
+ OpSatConvertSToU = 118,
+ OpSatConvertUToS = 119,
+ OpConvertUToPtr = 120,
+ OpPtrCastToGeneric = 121,
+ OpGenericCastToPtr = 122,
+ OpGenericCastToPtrExplicit = 123,
+ OpBitcast = 124,
+ OpSNegate = 126,
+ OpFNegate = 127,
+ OpIAdd = 128,
+ OpFAdd = 129,
+ OpISub = 130,
+ OpFSub = 131,
+ OpIMul = 132,
+ OpFMul = 133,
+ OpUDiv = 134,
+ OpSDiv = 135,
+ OpFDiv = 136,
+ OpUMod = 137,
+ OpSRem = 138,
+ OpSMod = 139,
+ OpFRem = 140,
+ OpFMod = 141,
+ OpVectorTimesScalar = 142,
+ OpMatrixTimesScalar = 143,
+ OpVectorTimesMatrix = 144,
+ OpMatrixTimesVector = 145,
+ OpMatrixTimesMatrix = 146,
+ OpOuterProduct = 147,
+ OpDot = 148,
+ OpIAddCarry = 149,
+ OpISubBorrow = 150,
+ OpUMulExtended = 151,
+ OpSMulExtended = 152,
+ OpAny = 154,
+ OpAll = 155,
+ OpIsNan = 156,
+ OpIsInf = 157,
+ OpIsFinite = 158,
+ OpIsNormal = 159,
+ OpSignBitSet = 160,
+ OpLessOrGreater = 161,
+ OpOrdered = 162,
+ OpUnordered = 163,
+ OpLogicalEqual = 164,
+ OpLogicalNotEqual = 165,
+ OpLogicalOr = 166,
+ OpLogicalAnd = 167,
+ OpLogicalNot = 168,
+ OpSelect = 169,
+ OpIEqual = 170,
+ OpINotEqual = 171,
+ OpUGreaterThan = 172,
+ OpSGreaterThan = 173,
+ OpUGreaterThanEqual = 174,
+ OpSGreaterThanEqual = 175,
+ OpULessThan = 176,
+ OpSLessThan = 177,
+ OpULessThanEqual = 178,
+ OpSLessThanEqual = 179,
+ OpFOrdEqual = 180,
+ OpFUnordEqual = 181,
+ OpFOrdNotEqual = 182,
+ OpFUnordNotEqual = 183,
+ OpFOrdLessThan = 184,
+ OpFUnordLessThan = 185,
+ OpFOrdGreaterThan = 186,
+ OpFUnordGreaterThan = 187,
+ OpFOrdLessThanEqual = 188,
+ OpFUnordLessThanEqual = 189,
+ OpFOrdGreaterThanEqual = 190,
+ OpFUnordGreaterThanEqual = 191,
+ OpShiftRightLogical = 194,
+ OpShiftRightArithmetic = 195,
+ OpShiftLeftLogical = 196,
+ OpBitwiseOr = 197,
+ OpBitwiseXor = 198,
+ OpBitwiseAnd = 199,
+ OpNot = 200,
+ OpBitFieldInsert = 201,
+ OpBitFieldSExtract = 202,
+ OpBitFieldUExtract = 203,
+ OpBitReverse = 204,
+ OpBitCount = 205,
+ OpDPdx = 207,
+ OpDPdy = 208,
+ OpFwidth = 209,
+ OpDPdxFine = 210,
+ OpDPdyFine = 211,
+ OpFwidthFine = 212,
+ OpDPdxCoarse = 213,
+ OpDPdyCoarse = 214,
+ OpFwidthCoarse = 215,
+ OpEmitVertex = 218,
+ OpEndPrimitive = 219,
+ OpEmitStreamVertex = 220,
+ OpEndStreamPrimitive = 221,
+ OpControlBarrier = 224,
+ OpMemoryBarrier = 225,
+ OpAtomicLoad = 227,
+ OpAtomicStore = 228,
+ OpAtomicExchange = 229,
+ OpAtomicCompareExchange = 230,
+ OpAtomicCompareExchangeWeak = 231,
+ OpAtomicIIncrement = 232,
+ OpAtomicIDecrement = 233,
+ OpAtomicIAdd = 234,
+ OpAtomicISub = 235,
+ OpAtomicSMin = 236,
+ OpAtomicUMin = 237,
+ OpAtomicSMax = 238,
+ OpAtomicUMax = 239,
+ OpAtomicAnd = 240,
+ OpAtomicOr = 241,
+ OpAtomicXor = 242,
+ OpPhi = 245,
+ OpLoopMerge = 246,
+ OpSelectionMerge = 247,
+ OpLabel = 248,
+ OpBranch = 249,
+ OpBranchConditional = 250,
+ OpSwitch = 251,
+ OpKill = 252,
+ OpReturn = 253,
+ OpReturnValue = 254,
+ OpUnreachable = 255,
+ OpLifetimeStart = 256,
+ OpLifetimeStop = 257,
+ OpGroupAsyncCopy = 259,
+ OpGroupWaitEvents = 260,
+ OpGroupAll = 261,
+ OpGroupAny = 262,
+ OpGroupBroadcast = 263,
+ OpGroupIAdd = 264,
+ OpGroupFAdd = 265,
+ OpGroupFMin = 266,
+ OpGroupUMin = 267,
+ OpGroupSMin = 268,
+ OpGroupFMax = 269,
+ OpGroupUMax = 270,
+ OpGroupSMax = 271,
+ OpReadPipe = 274,
+ OpWritePipe = 275,
+ OpReservedReadPipe = 276,
+ OpReservedWritePipe = 277,
+ OpReserveReadPipePackets = 278,
+ OpReserveWritePipePackets = 279,
+ OpCommitReadPipe = 280,
+ OpCommitWritePipe = 281,
+ OpIsValidReserveId = 282,
+ OpGetNumPipePackets = 283,
+ OpGetMaxPipePackets = 284,
+ OpGroupReserveReadPipePackets = 285,
+ OpGroupReserveWritePipePackets = 286,
+ OpGroupCommitReadPipe = 287,
+ OpGroupCommitWritePipe = 288,
+ OpEnqueueMarker = 291,
+ OpEnqueueKernel = 292,
+ OpGetKernelNDrangeSubGroupCount = 293,
+ OpGetKernelNDrangeMaxSubGroupSize = 294,
+ OpGetKernelWorkGroupSize = 295,
+ OpGetKernelPreferredWorkGroupSizeMultiple = 296,
+ OpRetainEvent = 297,
+ OpReleaseEvent = 298,
+ OpCreateUserEvent = 299,
+ OpIsValidEvent = 300,
+ OpSetUserEventStatus = 301,
+ OpCaptureEventProfilingInfo = 302,
+ OpGetDefaultQueue = 303,
+ OpBuildNDRange = 304,
+ OpImageSparseSampleImplicitLod = 305,
+ OpImageSparseSampleExplicitLod = 306,
+ OpImageSparseSampleDrefImplicitLod = 307,
+ OpImageSparseSampleDrefExplicitLod = 308,
+ OpImageSparseSampleProjImplicitLod = 309,
+ OpImageSparseSampleProjExplicitLod = 310,
+ OpImageSparseSampleProjDrefImplicitLod = 311,
+ OpImageSparseSampleProjDrefExplicitLod = 312,
+ OpImageSparseFetch = 313,
+ OpImageSparseGather = 314,
+ OpImageSparseDrefGather = 315,
+ OpImageSparseTexelsResident = 316,
+ OpNoLine = 317,
+ OpAtomicFlagTestAndSet = 318,
+ OpAtomicFlagClear = 319,
+ OpImageSparseRead = 320,
+ OpSizeOf = 321,
+ OpTypePipeStorage = 322,
+ OpConstantPipeStorage = 323,
+ OpCreatePipeFromPipeStorage = 324,
+ OpGetKernelLocalSizeForSubgroupCount = 325,
+ OpGetKernelMaxNumSubgroups = 326,
+ OpTypeNamedBarrier = 327,
+ OpNamedBarrierInitialize = 328,
+ OpMemoryNamedBarrier = 329,
+ OpModuleProcessed = 330,
+ OpExecutionModeId = 331,
+ OpDecorateId = 332,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpMax = 0x7fffffff,
+};
+
+// Overload operator| for mask bit combining
+
+inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
+inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
+inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
+inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
+inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
+inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
+inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
+inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
+
+} // end namespace spv
+
+#endif // #ifndef spirv_HPP
+
diff --git a/include/spirv/1.2/spirv.hpp11 b/include/spirv/1.2/spirv.hpp11
new file mode 100644
index 0000000..52da73d
--- /dev/null
+++ b/include/spirv/1.2/spirv.hpp11
@@ -0,0 +1,987 @@
+// Copyright (c) 2014-2017 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and/or associated documentation files (the "Materials"),
+// to deal in the Materials without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Materials, and to permit persons to whom the
+// Materials are furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+// IN THE MATERIALS.
+
+// This header is automatically generated by the same tool that creates
+// the Binary Section of the SPIR-V specification.
+
+// Enumeration tokens for SPIR-V, in various styles:
+// C, C++, C++11, JSON, Lua, Python
+//
+// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+//
+// Some tokens act like mask values, which can be OR'd together,
+// while others are mutually exclusive. The mask-like ones have
+// "Mask" in their name, and a parallel enum that has the shift
+// amount (1 << x) for each corresponding enumerant.
+
+#ifndef spirv_HPP
+#define spirv_HPP
+
+namespace spv {
+
+typedef unsigned int Id;
+
+#define SPV_VERSION 0x10200
+#define SPV_REVISION 1
+
+static const unsigned int MagicNumber = 0x07230203;
+static const unsigned int Version = 0x00010200;
+static const unsigned int Revision = 1;
+static const unsigned int OpCodeMask = 0xffff;
+static const unsigned int WordCountShift = 16;
+
+enum class SourceLanguage : unsigned {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ Max = 0x7fffffff,
+};
+
+enum class ExecutionModel : unsigned {
+ Vertex = 0,
+ TessellationControl = 1,
+ TessellationEvaluation = 2,
+ Geometry = 3,
+ Fragment = 4,
+ GLCompute = 5,
+ Kernel = 6,
+ Max = 0x7fffffff,
+};
+
+enum class AddressingModel : unsigned {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ Max = 0x7fffffff,
+};
+
+enum class MemoryModel : unsigned {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ Max = 0x7fffffff,
+};
+
+enum class ExecutionMode : unsigned {
+ Invocations = 0,
+ SpacingEqual = 1,
+ SpacingFractionalEven = 2,
+ SpacingFractionalOdd = 3,
+ VertexOrderCw = 4,
+ VertexOrderCcw = 5,
+ PixelCenterInteger = 6,
+ OriginUpperLeft = 7,
+ OriginLowerLeft = 8,
+ EarlyFragmentTests = 9,
+ PointMode = 10,
+ Xfb = 11,
+ DepthReplacing = 12,
+ DepthGreater = 14,
+ DepthLess = 15,
+ DepthUnchanged = 16,
+ LocalSize = 17,
+ LocalSizeHint = 18,
+ InputPoints = 19,
+ InputLines = 20,
+ InputLinesAdjacency = 21,
+ Triangles = 22,
+ InputTrianglesAdjacency = 23,
+ Quads = 24,
+ Isolines = 25,
+ OutputVertices = 26,
+ OutputPoints = 27,
+ OutputLineStrip = 28,
+ OutputTriangleStrip = 29,
+ VecTypeHint = 30,
+ ContractionOff = 31,
+ Initializer = 33,
+ Finalizer = 34,
+ SubgroupSize = 35,
+ SubgroupsPerWorkgroup = 36,
+ SubgroupsPerWorkgroupId = 37,
+ LocalSizeId = 38,
+ LocalSizeHintId = 39,
+ Max = 0x7fffffff,
+};
+
+enum class StorageClass : unsigned {
+ UniformConstant = 0,
+ Input = 1,
+ Uniform = 2,
+ Output = 3,
+ Workgroup = 4,
+ CrossWorkgroup = 5,
+ Private = 6,
+ Function = 7,
+ Generic = 8,
+ PushConstant = 9,
+ AtomicCounter = 10,
+ Image = 11,
+ StorageBuffer = 12,
+ Max = 0x7fffffff,
+};
+
+enum class Dim : unsigned {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ Max = 0x7fffffff,
+};
+
+enum class SamplerAddressingMode : unsigned {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ Max = 0x7fffffff,
+};
+
+enum class SamplerFilterMode : unsigned {
+ Nearest = 0,
+ Linear = 1,
+ Max = 0x7fffffff,
+};
+
+enum class ImageFormat : unsigned {
+ Unknown = 0,
+ Rgba32f = 1,
+ Rgba16f = 2,
+ R32f = 3,
+ Rgba8 = 4,
+ Rgba8Snorm = 5,
+ Rg32f = 6,
+ Rg16f = 7,
+ R11fG11fB10f = 8,
+ R16f = 9,
+ Rgba16 = 10,
+ Rgb10A2 = 11,
+ Rg16 = 12,
+ Rg8 = 13,
+ R16 = 14,
+ R8 = 15,
+ Rgba16Snorm = 16,
+ Rg16Snorm = 17,
+ Rg8Snorm = 18,
+ R16Snorm = 19,
+ R8Snorm = 20,
+ Rgba32i = 21,
+ Rgba16i = 22,
+ Rgba8i = 23,
+ R32i = 24,
+ Rg32i = 25,
+ Rg16i = 26,
+ Rg8i = 27,
+ R16i = 28,
+ R8i = 29,
+ Rgba32ui = 30,
+ Rgba16ui = 31,
+ Rgba8ui = 32,
+ R32ui = 33,
+ Rgb10a2ui = 34,
+ Rg32ui = 35,
+ Rg16ui = 36,
+ Rg8ui = 37,
+ R16ui = 38,
+ R8ui = 39,
+ Max = 0x7fffffff,
+};
+
+enum class ImageChannelOrder : unsigned {
+ R = 0,
+ A = 1,
+ RG = 2,
+ RA = 3,
+ RGB = 4,
+ RGBA = 5,
+ BGRA = 6,
+ ARGB = 7,
+ Intensity = 8,
+ Luminance = 9,
+ Rx = 10,
+ RGx = 11,
+ RGBx = 12,
+ Depth = 13,
+ DepthStencil = 14,
+ sRGB = 15,
+ sRGBx = 16,
+ sRGBA = 17,
+ sBGRA = 18,
+ ABGR = 19,
+ Max = 0x7fffffff,
+};
+
+enum class ImageChannelDataType : unsigned {
+ SnormInt8 = 0,
+ SnormInt16 = 1,
+ UnormInt8 = 2,
+ UnormInt16 = 3,
+ UnormShort565 = 4,
+ UnormShort555 = 5,
+ UnormInt101010 = 6,
+ SignedInt8 = 7,
+ SignedInt16 = 8,
+ SignedInt32 = 9,
+ UnsignedInt8 = 10,
+ UnsignedInt16 = 11,
+ UnsignedInt32 = 12,
+ HalfFloat = 13,
+ Float = 14,
+ UnormInt24 = 15,
+ UnormInt101010_2 = 16,
+ Max = 0x7fffffff,
+};
+
+enum class ImageOperandsShift : unsigned {
+ Bias = 0,
+ Lod = 1,
+ Grad = 2,
+ ConstOffset = 3,
+ Offset = 4,
+ ConstOffsets = 5,
+ Sample = 6,
+ MinLod = 7,
+ Max = 0x7fffffff,
+};
+
+enum class ImageOperandsMask : unsigned {
+ MaskNone = 0,
+ Bias = 0x00000001,
+ Lod = 0x00000002,
+ Grad = 0x00000004,
+ ConstOffset = 0x00000008,
+ Offset = 0x00000010,
+ ConstOffsets = 0x00000020,
+ Sample = 0x00000040,
+ MinLod = 0x00000080,
+};
+
+enum class FPFastMathModeShift : unsigned {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ Max = 0x7fffffff,
+};
+
+enum class FPFastMathModeMask : unsigned {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+};
+
+enum class FPRoundingMode : unsigned {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ Max = 0x7fffffff,
+};
+
+enum class LinkageType : unsigned {
+ Export = 0,
+ Import = 1,
+ Max = 0x7fffffff,
+};
+
+enum class AccessQualifier : unsigned {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ Max = 0x7fffffff,
+};
+
+enum class FunctionParameterAttribute : unsigned {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ Max = 0x7fffffff,
+};
+
+enum class Decoration : unsigned {
+ RelaxedPrecision = 0,
+ SpecId = 1,
+ Block = 2,
+ BufferBlock = 3,
+ RowMajor = 4,
+ ColMajor = 5,
+ ArrayStride = 6,
+ MatrixStride = 7,
+ GLSLShared = 8,
+ GLSLPacked = 9,
+ CPacked = 10,
+ BuiltIn = 11,
+ NoPerspective = 13,
+ Flat = 14,
+ Patch = 15,
+ Centroid = 16,
+ Sample = 17,
+ Invariant = 18,
+ Restrict = 19,
+ Aliased = 20,
+ Volatile = 21,
+ Constant = 22,
+ Coherent = 23,
+ NonWritable = 24,
+ NonReadable = 25,
+ Uniform = 26,
+ SaturatedConversion = 28,
+ Stream = 29,
+ Location = 30,
+ Component = 31,
+ Index = 32,
+ Binding = 33,
+ DescriptorSet = 34,
+ Offset = 35,
+ XfbBuffer = 36,
+ XfbStride = 37,
+ FuncParamAttr = 38,
+ FPRoundingMode = 39,
+ FPFastMathMode = 40,
+ LinkageAttributes = 41,
+ NoContraction = 42,
+ InputAttachmentIndex = 43,
+ Alignment = 44,
+ MaxByteOffset = 45,
+ AlignmentId = 46,
+ MaxByteOffsetId = 47,
+ OverrideCoverageNV = 5248,
+ PassthroughNV = 5250,
+ ViewportRelativeNV = 5252,
+ SecondaryViewportRelativeNV = 5256,
+ Max = 0x7fffffff,
+};
+
+enum class BuiltIn : unsigned {
+ Position = 0,
+ PointSize = 1,
+ ClipDistance = 3,
+ CullDistance = 4,
+ VertexId = 5,
+ InstanceId = 6,
+ PrimitiveId = 7,
+ InvocationId = 8,
+ Layer = 9,
+ ViewportIndex = 10,
+ TessLevelOuter = 11,
+ TessLevelInner = 12,
+ TessCoord = 13,
+ PatchVertices = 14,
+ FragCoord = 15,
+ PointCoord = 16,
+ FrontFacing = 17,
+ SampleId = 18,
+ SamplePosition = 19,
+ SampleMask = 20,
+ FragDepth = 22,
+ HelperInvocation = 23,
+ NumWorkgroups = 24,
+ WorkgroupSize = 25,
+ WorkgroupId = 26,
+ LocalInvocationId = 27,
+ GlobalInvocationId = 28,
+ LocalInvocationIndex = 29,
+ WorkDim = 30,
+ GlobalSize = 31,
+ EnqueuedWorkgroupSize = 32,
+ GlobalOffset = 33,
+ GlobalLinearId = 34,
+ SubgroupSize = 36,
+ SubgroupMaxSize = 37,
+ NumSubgroups = 38,
+ NumEnqueuedSubgroups = 39,
+ SubgroupId = 40,
+ SubgroupLocalInvocationId = 41,
+ VertexIndex = 42,
+ InstanceIndex = 43,
+ SubgroupEqMaskKHR = 4416,
+ SubgroupGeMaskKHR = 4417,
+ SubgroupGtMaskKHR = 4418,
+ SubgroupLeMaskKHR = 4419,
+ SubgroupLtMaskKHR = 4420,
+ BaseVertex = 4424,
+ BaseInstance = 4425,
+ DrawIndex = 4426,
+ DeviceIndex = 4438,
+ ViewIndex = 4440,
+ ViewportMaskNV = 5253,
+ SecondaryPositionNV = 5257,
+ SecondaryViewportMaskNV = 5258,
+ PositionPerViewNV = 5261,
+ ViewportMaskPerViewNV = 5262,
+ Max = 0x7fffffff,
+};
+
+enum class SelectionControlShift : unsigned {
+ Flatten = 0,
+ DontFlatten = 1,
+ Max = 0x7fffffff,
+};
+
+enum class SelectionControlMask : unsigned {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+};
+
+enum class LoopControlShift : unsigned {
+ Unroll = 0,
+ DontUnroll = 1,
+ DependencyInfinite = 2,
+ DependencyLength = 3,
+ Max = 0x7fffffff,
+};
+
+enum class LoopControlMask : unsigned {
+ MaskNone = 0,
+ Unroll = 0x00000001,
+ DontUnroll = 0x00000002,
+ DependencyInfinite = 0x00000004,
+ DependencyLength = 0x00000008,
+};
+
+enum class FunctionControlShift : unsigned {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ Max = 0x7fffffff,
+};
+
+enum class FunctionControlMask : unsigned {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+};
+
+enum class MemorySemanticsShift : unsigned {
+ Acquire = 1,
+ Release = 2,
+ AcquireRelease = 3,
+ SequentiallyConsistent = 4,
+ UniformMemory = 6,
+ SubgroupMemory = 7,
+ WorkgroupMemory = 8,
+ CrossWorkgroupMemory = 9,
+ AtomicCounterMemory = 10,
+ ImageMemory = 11,
+ Max = 0x7fffffff,
+};
+
+enum class MemorySemanticsMask : unsigned {
+ MaskNone = 0,
+ Acquire = 0x00000002,
+ Release = 0x00000004,
+ AcquireRelease = 0x00000008,
+ SequentiallyConsistent = 0x00000010,
+ UniformMemory = 0x00000040,
+ SubgroupMemory = 0x00000080,
+ WorkgroupMemory = 0x00000100,
+ CrossWorkgroupMemory = 0x00000200,
+ AtomicCounterMemory = 0x00000400,
+ ImageMemory = 0x00000800,
+};
+
+enum class MemoryAccessShift : unsigned {
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ Max = 0x7fffffff,
+};
+
+enum class MemoryAccessMask : unsigned {
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+};
+
+enum class Scope : unsigned {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ Max = 0x7fffffff,
+};
+
+enum class GroupOperation : unsigned {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ Max = 0x7fffffff,
+};
+
+enum class KernelEnqueueFlags : unsigned {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ Max = 0x7fffffff,
+};
+
+enum class KernelProfilingInfoShift : unsigned {
+ CmdExecTime = 0,
+ Max = 0x7fffffff,
+};
+
+enum class KernelProfilingInfoMask : unsigned {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+};
+
+enum class Capability : unsigned {
+ Matrix = 0,
+ Shader = 1,
+ Geometry = 2,
+ Tessellation = 3,
+ Addresses = 4,
+ Linkage = 5,
+ Kernel = 6,
+ Vector16 = 7,
+ Float16Buffer = 8,
+ Float16 = 9,
+ Float64 = 10,
+ Int64 = 11,
+ Int64Atomics = 12,
+ ImageBasic = 13,
+ ImageReadWrite = 14,
+ ImageMipmap = 15,
+ Pipes = 17,
+ Groups = 18,
+ DeviceEnqueue = 19,
+ LiteralSampler = 20,
+ AtomicStorage = 21,
+ Int16 = 22,
+ TessellationPointSize = 23,
+ GeometryPointSize = 24,
+ ImageGatherExtended = 25,
+ StorageImageMultisample = 27,
+ UniformBufferArrayDynamicIndexing = 28,
+ SampledImageArrayDynamicIndexing = 29,
+ StorageBufferArrayDynamicIndexing = 30,
+ StorageImageArrayDynamicIndexing = 31,
+ ClipDistance = 32,
+ CullDistance = 33,
+ ImageCubeArray = 34,
+ SampleRateShading = 35,
+ ImageRect = 36,
+ SampledRect = 37,
+ GenericPointer = 38,
+ Int8 = 39,
+ InputAttachment = 40,
+ SparseResidency = 41,
+ MinLod = 42,
+ Sampled1D = 43,
+ Image1D = 44,
+ SampledCubeArray = 45,
+ SampledBuffer = 46,
+ ImageBuffer = 47,
+ ImageMSArray = 48,
+ StorageImageExtendedFormats = 49,
+ ImageQuery = 50,
+ DerivativeControl = 51,
+ InterpolationFunction = 52,
+ TransformFeedback = 53,
+ GeometryStreams = 54,
+ StorageImageReadWithoutFormat = 55,
+ StorageImageWriteWithoutFormat = 56,
+ MultiViewport = 57,
+ SubgroupDispatch = 58,
+ NamedBarrier = 59,
+ PipeStorage = 60,
+ SubgroupBallotKHR = 4423,
+ DrawParameters = 4427,
+ SubgroupVoteKHR = 4431,
+ StorageBuffer16BitAccess = 4433,
+ StorageUniformBufferBlock16 = 4433,
+ StorageUniform16 = 4434,
+ UniformAndStorageBuffer16BitAccess = 4434,
+ StoragePushConstant16 = 4435,
+ StorageInputOutput16 = 4436,
+ DeviceGroup = 4437,
+ MultiView = 4439,
+ VariablePointersStorageBuffer = 4441,
+ VariablePointers = 4442,
+ SampleMaskOverrideCoverageNV = 5249,
+ GeometryShaderPassthroughNV = 5251,
+ ShaderViewportIndexLayerNV = 5254,
+ ShaderViewportMaskNV = 5255,
+ ShaderStereoViewNV = 5259,
+ PerViewAttributesNV = 5260,
+ Max = 0x7fffffff,
+};
+
+enum class Op : unsigned {
+ OpNop = 0,
+ OpUndef = 1,
+ OpSourceContinued = 2,
+ OpSource = 3,
+ OpSourceExtension = 4,
+ OpName = 5,
+ OpMemberName = 6,
+ OpString = 7,
+ OpLine = 8,
+ OpExtension = 10,
+ OpExtInstImport = 11,
+ OpExtInst = 12,
+ OpMemoryModel = 14,
+ OpEntryPoint = 15,
+ OpExecutionMode = 16,
+ OpCapability = 17,
+ OpTypeVoid = 19,
+ OpTypeBool = 20,
+ OpTypeInt = 21,
+ OpTypeFloat = 22,
+ OpTypeVector = 23,
+ OpTypeMatrix = 24,
+ OpTypeImage = 25,
+ OpTypeSampler = 26,
+ OpTypeSampledImage = 27,
+ OpTypeArray = 28,
+ OpTypeRuntimeArray = 29,
+ OpTypeStruct = 30,
+ OpTypeOpaque = 31,
+ OpTypePointer = 32,
+ OpTypeFunction = 33,
+ OpTypeEvent = 34,
+ OpTypeDeviceEvent = 35,
+ OpTypeReserveId = 36,
+ OpTypeQueue = 37,
+ OpTypePipe = 38,
+ OpTypeForwardPointer = 39,
+ OpConstantTrue = 41,
+ OpConstantFalse = 42,
+ OpConstant = 43,
+ OpConstantComposite = 44,
+ OpConstantSampler = 45,
+ OpConstantNull = 46,
+ OpSpecConstantTrue = 48,
+ OpSpecConstantFalse = 49,
+ OpSpecConstant = 50,
+ OpSpecConstantComposite = 51,
+ OpSpecConstantOp = 52,
+ OpFunction = 54,
+ OpFunctionParameter = 55,
+ OpFunctionEnd = 56,
+ OpFunctionCall = 57,
+ OpVariable = 59,
+ OpImageTexelPointer = 60,
+ OpLoad = 61,
+ OpStore = 62,
+ OpCopyMemory = 63,
+ OpCopyMemorySized = 64,
+ OpAccessChain = 65,
+ OpInBoundsAccessChain = 66,
+ OpPtrAccessChain = 67,
+ OpArrayLength = 68,
+ OpGenericPtrMemSemantics = 69,
+ OpInBoundsPtrAccessChain = 70,
+ OpDecorate = 71,
+ OpMemberDecorate = 72,
+ OpDecorationGroup = 73,
+ OpGroupDecorate = 74,
+ OpGroupMemberDecorate = 75,
+ OpVectorExtractDynamic = 77,
+ OpVectorInsertDynamic = 78,
+ OpVectorShuffle = 79,
+ OpCompositeConstruct = 80,
+ OpCompositeExtract = 81,
+ OpCompositeInsert = 82,
+ OpCopyObject = 83,
+ OpTranspose = 84,
+ OpSampledImage = 86,
+ OpImageSampleImplicitLod = 87,
+ OpImageSampleExplicitLod = 88,
+ OpImageSampleDrefImplicitLod = 89,
+ OpImageSampleDrefExplicitLod = 90,
+ OpImageSampleProjImplicitLod = 91,
+ OpImageSampleProjExplicitLod = 92,
+ OpImageSampleProjDrefImplicitLod = 93,
+ OpImageSampleProjDrefExplicitLod = 94,
+ OpImageFetch = 95,
+ OpImageGather = 96,
+ OpImageDrefGather = 97,
+ OpImageRead = 98,
+ OpImageWrite = 99,
+ OpImage = 100,
+ OpImageQueryFormat = 101,
+ OpImageQueryOrder = 102,
+ OpImageQuerySizeLod = 103,
+ OpImageQuerySize = 104,
+ OpImageQueryLod = 105,
+ OpImageQueryLevels = 106,
+ OpImageQuerySamples = 107,
+ OpConvertFToU = 109,
+ OpConvertFToS = 110,
+ OpConvertSToF = 111,
+ OpConvertUToF = 112,
+ OpUConvert = 113,
+ OpSConvert = 114,
+ OpFConvert = 115,
+ OpQuantizeToF16 = 116,
+ OpConvertPtrToU = 117,
+ OpSatConvertSToU = 118,
+ OpSatConvertUToS = 119,
+ OpConvertUToPtr = 120,
+ OpPtrCastToGeneric = 121,
+ OpGenericCastToPtr = 122,
+ OpGenericCastToPtrExplicit = 123,
+ OpBitcast = 124,
+ OpSNegate = 126,
+ OpFNegate = 127,
+ OpIAdd = 128,
+ OpFAdd = 129,
+ OpISub = 130,
+ OpFSub = 131,
+ OpIMul = 132,
+ OpFMul = 133,
+ OpUDiv = 134,
+ OpSDiv = 135,
+ OpFDiv = 136,
+ OpUMod = 137,
+ OpSRem = 138,
+ OpSMod = 139,
+ OpFRem = 140,
+ OpFMod = 141,
+ OpVectorTimesScalar = 142,
+ OpMatrixTimesScalar = 143,
+ OpVectorTimesMatrix = 144,
+ OpMatrixTimesVector = 145,
+ OpMatrixTimesMatrix = 146,
+ OpOuterProduct = 147,
+ OpDot = 148,
+ OpIAddCarry = 149,
+ OpISubBorrow = 150,
+ OpUMulExtended = 151,
+ OpSMulExtended = 152,
+ OpAny = 154,
+ OpAll = 155,
+ OpIsNan = 156,
+ OpIsInf = 157,
+ OpIsFinite = 158,
+ OpIsNormal = 159,
+ OpSignBitSet = 160,
+ OpLessOrGreater = 161,
+ OpOrdered = 162,
+ OpUnordered = 163,
+ OpLogicalEqual = 164,
+ OpLogicalNotEqual = 165,
+ OpLogicalOr = 166,
+ OpLogicalAnd = 167,
+ OpLogicalNot = 168,
+ OpSelect = 169,
+ OpIEqual = 170,
+ OpINotEqual = 171,
+ OpUGreaterThan = 172,
+ OpSGreaterThan = 173,
+ OpUGreaterThanEqual = 174,
+ OpSGreaterThanEqual = 175,
+ OpULessThan = 176,
+ OpSLessThan = 177,
+ OpULessThanEqual = 178,
+ OpSLessThanEqual = 179,
+ OpFOrdEqual = 180,
+ OpFUnordEqual = 181,
+ OpFOrdNotEqual = 182,
+ OpFUnordNotEqual = 183,
+ OpFOrdLessThan = 184,
+ OpFUnordLessThan = 185,
+ OpFOrdGreaterThan = 186,
+ OpFUnordGreaterThan = 187,
+ OpFOrdLessThanEqual = 188,
+ OpFUnordLessThanEqual = 189,
+ OpFOrdGreaterThanEqual = 190,
+ OpFUnordGreaterThanEqual = 191,
+ OpShiftRightLogical = 194,
+ OpShiftRightArithmetic = 195,
+ OpShiftLeftLogical = 196,
+ OpBitwiseOr = 197,
+ OpBitwiseXor = 198,
+ OpBitwiseAnd = 199,
+ OpNot = 200,
+ OpBitFieldInsert = 201,
+ OpBitFieldSExtract = 202,
+ OpBitFieldUExtract = 203,
+ OpBitReverse = 204,
+ OpBitCount = 205,
+ OpDPdx = 207,
+ OpDPdy = 208,
+ OpFwidth = 209,
+ OpDPdxFine = 210,
+ OpDPdyFine = 211,
+ OpFwidthFine = 212,
+ OpDPdxCoarse = 213,
+ OpDPdyCoarse = 214,
+ OpFwidthCoarse = 215,
+ OpEmitVertex = 218,
+ OpEndPrimitive = 219,
+ OpEmitStreamVertex = 220,
+ OpEndStreamPrimitive = 221,
+ OpControlBarrier = 224,
+ OpMemoryBarrier = 225,
+ OpAtomicLoad = 227,
+ OpAtomicStore = 228,
+ OpAtomicExchange = 229,
+ OpAtomicCompareExchange = 230,
+ OpAtomicCompareExchangeWeak = 231,
+ OpAtomicIIncrement = 232,
+ OpAtomicIDecrement = 233,
+ OpAtomicIAdd = 234,
+ OpAtomicISub = 235,
+ OpAtomicSMin = 236,
+ OpAtomicUMin = 237,
+ OpAtomicSMax = 238,
+ OpAtomicUMax = 239,
+ OpAtomicAnd = 240,
+ OpAtomicOr = 241,
+ OpAtomicXor = 242,
+ OpPhi = 245,
+ OpLoopMerge = 246,
+ OpSelectionMerge = 247,
+ OpLabel = 248,
+ OpBranch = 249,
+ OpBranchConditional = 250,
+ OpSwitch = 251,
+ OpKill = 252,
+ OpReturn = 253,
+ OpReturnValue = 254,
+ OpUnreachable = 255,
+ OpLifetimeStart = 256,
+ OpLifetimeStop = 257,
+ OpGroupAsyncCopy = 259,
+ OpGroupWaitEvents = 260,
+ OpGroupAll = 261,
+ OpGroupAny = 262,
+ OpGroupBroadcast = 263,
+ OpGroupIAdd = 264,
+ OpGroupFAdd = 265,
+ OpGroupFMin = 266,
+ OpGroupUMin = 267,
+ OpGroupSMin = 268,
+ OpGroupFMax = 269,
+ OpGroupUMax = 270,
+ OpGroupSMax = 271,
+ OpReadPipe = 274,
+ OpWritePipe = 275,
+ OpReservedReadPipe = 276,
+ OpReservedWritePipe = 277,
+ OpReserveReadPipePackets = 278,
+ OpReserveWritePipePackets = 279,
+ OpCommitReadPipe = 280,
+ OpCommitWritePipe = 281,
+ OpIsValidReserveId = 282,
+ OpGetNumPipePackets = 283,
+ OpGetMaxPipePackets = 284,
+ OpGroupReserveReadPipePackets = 285,
+ OpGroupReserveWritePipePackets = 286,
+ OpGroupCommitReadPipe = 287,
+ OpGroupCommitWritePipe = 288,
+ OpEnqueueMarker = 291,
+ OpEnqueueKernel = 292,
+ OpGetKernelNDrangeSubGroupCount = 293,
+ OpGetKernelNDrangeMaxSubGroupSize = 294,
+ OpGetKernelWorkGroupSize = 295,
+ OpGetKernelPreferredWorkGroupSizeMultiple = 296,
+ OpRetainEvent = 297,
+ OpReleaseEvent = 298,
+ OpCreateUserEvent = 299,
+ OpIsValidEvent = 300,
+ OpSetUserEventStatus = 301,
+ OpCaptureEventProfilingInfo = 302,
+ OpGetDefaultQueue = 303,
+ OpBuildNDRange = 304,
+ OpImageSparseSampleImplicitLod = 305,
+ OpImageSparseSampleExplicitLod = 306,
+ OpImageSparseSampleDrefImplicitLod = 307,
+ OpImageSparseSampleDrefExplicitLod = 308,
+ OpImageSparseSampleProjImplicitLod = 309,
+ OpImageSparseSampleProjExplicitLod = 310,
+ OpImageSparseSampleProjDrefImplicitLod = 311,
+ OpImageSparseSampleProjDrefExplicitLod = 312,
+ OpImageSparseFetch = 313,
+ OpImageSparseGather = 314,
+ OpImageSparseDrefGather = 315,
+ OpImageSparseTexelsResident = 316,
+ OpNoLine = 317,
+ OpAtomicFlagTestAndSet = 318,
+ OpAtomicFlagClear = 319,
+ OpImageSparseRead = 320,
+ OpSizeOf = 321,
+ OpTypePipeStorage = 322,
+ OpConstantPipeStorage = 323,
+ OpCreatePipeFromPipeStorage = 324,
+ OpGetKernelLocalSizeForSubgroupCount = 325,
+ OpGetKernelMaxNumSubgroups = 326,
+ OpTypeNamedBarrier = 327,
+ OpNamedBarrierInitialize = 328,
+ OpMemoryNamedBarrier = 329,
+ OpModuleProcessed = 330,
+ OpExecutionModeId = 331,
+ OpDecorateId = 332,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ Max = 0x7fffffff,
+};
+
+// Overload operator| for mask bit combining
+
+inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
+inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
+inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
+inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
+inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
+inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
+inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
+inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
+
+} // end namespace spv
+
+#endif // #ifndef spirv_HPP
+
diff --git a/include/spirv/1.2/spirv.json b/include/spirv/1.2/spirv.json
new file mode 100644
index 0000000..b195ddd
--- /dev/null
+++ b/include/spirv/1.2/spirv.json
@@ -0,0 +1,1003 @@
+{
+ "spv":
+ {
+ "meta":
+ {
+ "Comment":
+ [
+ [
+ "Copyright (c) 2014-2017 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ [
+ "This header is automatically generated by the same tool that creates",
+ "the Binary Section of the SPIR-V specification."
+ ],
+ [
+ "Enumeration tokens for SPIR-V, in various styles:",
+ " C, C++, C++11, JSON, Lua, Python",
+ "",
+ "- C will have tokens with a \"Spv\" prefix, e.g.: SpvSourceLanguageGLSL",
+ "- C++ will have tokens in the \"spv\" name space, e.g.: spv::SourceLanguageGLSL",
+ "- C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL",
+ "- Lua will use tables, e.g.: spv.SourceLanguage.GLSL",
+ "- Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']",
+ "",
+ "Some tokens act like mask values, which can be OR'd together,",
+ "while others are mutually exclusive. The mask-like ones have",
+ "\"Mask\" in their name, and a parallel enum that has the shift",
+ "amount (1 << x) for each corresponding enumerant."
+ ]
+ ],
+ "MagicNumber": 119734787,
+ "Version": 66048,
+ "Revision": 1,
+ "OpCodeMask": 65535,
+ "WordCountShift": 16
+ },
+ "enum":
+ [
+ {
+ "Name": "SourceLanguage",
+ "Type": "Value",
+ "Values":
+ {
+ "Unknown": 0,
+ "ESSL": 1,
+ "GLSL": 2,
+ "OpenCL_C": 3,
+ "OpenCL_CPP": 4,
+ "HLSL": 5
+ }
+ },
+ {
+ "Name": "ExecutionModel",
+ "Type": "Value",
+ "Values":
+ {
+ "Vertex": 0,
+ "TessellationControl": 1,
+ "TessellationEvaluation": 2,
+ "Geometry": 3,
+ "Fragment": 4,
+ "GLCompute": 5,
+ "Kernel": 6
+ }
+ },
+ {
+ "Name": "AddressingModel",
+ "Type": "Value",
+ "Values":
+ {
+ "Logical": 0,
+ "Physical32": 1,
+ "Physical64": 2
+ }
+ },
+ {
+ "Name": "MemoryModel",
+ "Type": "Value",
+ "Values":
+ {
+ "Simple": 0,
+ "GLSL450": 1,
+ "OpenCL": 2
+ }
+ },
+ {
+ "Name": "ExecutionMode",
+ "Type": "Value",
+ "Values":
+ {
+ "Invocations": 0,
+ "SpacingEqual": 1,
+ "SpacingFractionalEven": 2,
+ "SpacingFractionalOdd": 3,
+ "VertexOrderCw": 4,
+ "VertexOrderCcw": 5,
+ "PixelCenterInteger": 6,
+ "OriginUpperLeft": 7,
+ "OriginLowerLeft": 8,
+ "EarlyFragmentTests": 9,
+ "PointMode": 10,
+ "Xfb": 11,
+ "DepthReplacing": 12,
+ "DepthGreater": 14,
+ "DepthLess": 15,
+ "DepthUnchanged": 16,
+ "LocalSize": 17,
+ "LocalSizeHint": 18,
+ "InputPoints": 19,
+ "InputLines": 20,
+ "InputLinesAdjacency": 21,
+ "Triangles": 22,
+ "InputTrianglesAdjacency": 23,
+ "Quads": 24,
+ "Isolines": 25,
+ "OutputVertices": 26,
+ "OutputPoints": 27,
+ "OutputLineStrip": 28,
+ "OutputTriangleStrip": 29,
+ "VecTypeHint": 30,
+ "ContractionOff": 31,
+ "Initializer": 33,
+ "Finalizer": 34,
+ "SubgroupSize": 35,
+ "SubgroupsPerWorkgroup": 36,
+ "SubgroupsPerWorkgroupId": 37,
+ "LocalSizeId": 38,
+ "LocalSizeHintId": 39
+ }
+ },
+ {
+ "Name": "StorageClass",
+ "Type": "Value",
+ "Values":
+ {
+ "UniformConstant": 0,
+ "Input": 1,
+ "Uniform": 2,
+ "Output": 3,
+ "Workgroup": 4,
+ "CrossWorkgroup": 5,
+ "Private": 6,
+ "Function": 7,
+ "Generic": 8,
+ "PushConstant": 9,
+ "AtomicCounter": 10,
+ "Image": 11,
+ "StorageBuffer": 12
+ }
+ },
+ {
+ "Name": "Dim",
+ "Type": "Value",
+ "Values":
+ {
+ "Dim1D": 0,
+ "Dim2D": 1,
+ "Dim3D": 2,
+ "Cube": 3,
+ "Rect": 4,
+ "Buffer": 5,
+ "SubpassData": 6
+ }
+ },
+ {
+ "Name": "SamplerAddressingMode",
+ "Type": "Value",
+ "Values":
+ {
+ "None": 0,
+ "ClampToEdge": 1,
+ "Clamp": 2,
+ "Repeat": 3,
+ "RepeatMirrored": 4
+ }
+ },
+ {
+ "Name": "SamplerFilterMode",
+ "Type": "Value",
+ "Values":
+ {
+ "Nearest": 0,
+ "Linear": 1
+ }
+ },
+ {
+ "Name": "ImageFormat",
+ "Type": "Value",
+ "Values":
+ {
+ "Unknown": 0,
+ "Rgba32f": 1,
+ "Rgba16f": 2,
+ "R32f": 3,
+ "Rgba8": 4,
+ "Rgba8Snorm": 5,
+ "Rg32f": 6,
+ "Rg16f": 7,
+ "R11fG11fB10f": 8,
+ "R16f": 9,
+ "Rgba16": 10,
+ "Rgb10A2": 11,
+ "Rg16": 12,
+ "Rg8": 13,
+ "R16": 14,
+ "R8": 15,
+ "Rgba16Snorm": 16,
+ "Rg16Snorm": 17,
+ "Rg8Snorm": 18,
+ "R16Snorm": 19,
+ "R8Snorm": 20,
+ "Rgba32i": 21,
+ "Rgba16i": 22,
+ "Rgba8i": 23,
+ "R32i": 24,
+ "Rg32i": 25,
+ "Rg16i": 26,
+ "Rg8i": 27,
+ "R16i": 28,
+ "R8i": 29,
+ "Rgba32ui": 30,
+ "Rgba16ui": 31,
+ "Rgba8ui": 32,
+ "R32ui": 33,
+ "Rgb10a2ui": 34,
+ "Rg32ui": 35,
+ "Rg16ui": 36,
+ "Rg8ui": 37,
+ "R16ui": 38,
+ "R8ui": 39
+ }
+ },
+ {
+ "Name": "ImageChannelOrder",
+ "Type": "Value",
+ "Values":
+ {
+ "R": 0,
+ "A": 1,
+ "RG": 2,
+ "RA": 3,
+ "RGB": 4,
+ "RGBA": 5,
+ "BGRA": 6,
+ "ARGB": 7,
+ "Intensity": 8,
+ "Luminance": 9,
+ "Rx": 10,
+ "RGx": 11,
+ "RGBx": 12,
+ "Depth": 13,
+ "DepthStencil": 14,
+ "sRGB": 15,
+ "sRGBx": 16,
+ "sRGBA": 17,
+ "sBGRA": 18,
+ "ABGR": 19
+ }
+ },
+ {
+ "Name": "ImageChannelDataType",
+ "Type": "Value",
+ "Values":
+ {
+ "SnormInt8": 0,
+ "SnormInt16": 1,
+ "UnormInt8": 2,
+ "UnormInt16": 3,
+ "UnormShort565": 4,
+ "UnormShort555": 5,
+ "UnormInt101010": 6,
+ "SignedInt8": 7,
+ "SignedInt16": 8,
+ "SignedInt32": 9,
+ "UnsignedInt8": 10,
+ "UnsignedInt16": 11,
+ "UnsignedInt32": 12,
+ "HalfFloat": 13,
+ "Float": 14,
+ "UnormInt24": 15,
+ "UnormInt101010_2": 16
+ }
+ },
+ {
+ "Name": "ImageOperands",
+ "Type": "Bit",
+ "Values":
+ {
+ "Bias": 0,
+ "Lod": 1,
+ "Grad": 2,
+ "ConstOffset": 3,
+ "Offset": 4,
+ "ConstOffsets": 5,
+ "Sample": 6,
+ "MinLod": 7
+ }
+ },
+ {
+ "Name": "FPFastMathMode",
+ "Type": "Bit",
+ "Values":
+ {
+ "NotNaN": 0,
+ "NotInf": 1,
+ "NSZ": 2,
+ "AllowRecip": 3,
+ "Fast": 4
+ }
+ },
+ {
+ "Name": "FPRoundingMode",
+ "Type": "Value",
+ "Values":
+ {
+ "RTE": 0,
+ "RTZ": 1,
+ "RTP": 2,
+ "RTN": 3
+ }
+ },
+ {
+ "Name": "LinkageType",
+ "Type": "Value",
+ "Values":
+ {
+ "Export": 0,
+ "Import": 1
+ }
+ },
+ {
+ "Name": "AccessQualifier",
+ "Type": "Value",
+ "Values":
+ {
+ "ReadOnly": 0,
+ "WriteOnly": 1,
+ "ReadWrite": 2
+ }
+ },
+ {
+ "Name": "FunctionParameterAttribute",
+ "Type": "Value",
+ "Values":
+ {
+ "Zext": 0,
+ "Sext": 1,
+ "ByVal": 2,
+ "Sret": 3,
+ "NoAlias": 4,
+ "NoCapture": 5,
+ "NoWrite": 6,
+ "NoReadWrite": 7
+ }
+ },
+ {
+ "Name": "Decoration",
+ "Type": "Value",
+ "Values":
+ {
+ "RelaxedPrecision": 0,
+ "SpecId": 1,
+ "Block": 2,
+ "BufferBlock": 3,
+ "RowMajor": 4,
+ "ColMajor": 5,
+ "ArrayStride": 6,
+ "MatrixStride": 7,
+ "GLSLShared": 8,
+ "GLSLPacked": 9,
+ "CPacked": 10,
+ "BuiltIn": 11,
+ "NoPerspective": 13,
+ "Flat": 14,
+ "Patch": 15,
+ "Centroid": 16,
+ "Sample": 17,
+ "Invariant": 18,
+ "Restrict": 19,
+ "Aliased": 20,
+ "Volatile": 21,
+ "Constant": 22,
+ "Coherent": 23,
+ "NonWritable": 24,
+ "NonReadable": 25,
+ "Uniform": 26,
+ "SaturatedConversion": 28,
+ "Stream": 29,
+ "Location": 30,
+ "Component": 31,
+ "Index": 32,
+ "Binding": 33,
+ "DescriptorSet": 34,
+ "Offset": 35,
+ "XfbBuffer": 36,
+ "XfbStride": 37,
+ "FuncParamAttr": 38,
+ "FPRoundingMode": 39,
+ "FPFastMathMode": 40,
+ "LinkageAttributes": 41,
+ "NoContraction": 42,
+ "InputAttachmentIndex": 43,
+ "Alignment": 44,
+ "MaxByteOffset": 45,
+ "AlignmentId": 46,
+ "MaxByteOffsetId": 47,
+ "OverrideCoverageNV": 5248,
+ "PassthroughNV": 5250,
+ "ViewportRelativeNV": 5252,
+ "SecondaryViewportRelativeNV": 5256
+ }
+ },
+ {
+ "Name": "BuiltIn",
+ "Type": "Value",
+ "Values":
+ {
+ "Position": 0,
+ "PointSize": 1,
+ "ClipDistance": 3,
+ "CullDistance": 4,
+ "VertexId": 5,
+ "InstanceId": 6,
+ "PrimitiveId": 7,
+ "InvocationId": 8,
+ "Layer": 9,
+ "ViewportIndex": 10,
+ "TessLevelOuter": 11,
+ "TessLevelInner": 12,
+ "TessCoord": 13,
+ "PatchVertices": 14,
+ "FragCoord": 15,
+ "PointCoord": 16,
+ "FrontFacing": 17,
+ "SampleId": 18,
+ "SamplePosition": 19,
+ "SampleMask": 20,
+ "FragDepth": 22,
+ "HelperInvocation": 23,
+ "NumWorkgroups": 24,
+ "WorkgroupSize": 25,
+ "WorkgroupId": 26,
+ "LocalInvocationId": 27,
+ "GlobalInvocationId": 28,
+ "LocalInvocationIndex": 29,
+ "WorkDim": 30,
+ "GlobalSize": 31,
+ "EnqueuedWorkgroupSize": 32,
+ "GlobalOffset": 33,
+ "GlobalLinearId": 34,
+ "SubgroupSize": 36,
+ "SubgroupMaxSize": 37,
+ "NumSubgroups": 38,
+ "NumEnqueuedSubgroups": 39,
+ "SubgroupId": 40,
+ "SubgroupLocalInvocationId": 41,
+ "VertexIndex": 42,
+ "InstanceIndex": 43,
+ "SubgroupEqMaskKHR": 4416,
+ "SubgroupGeMaskKHR": 4417,
+ "SubgroupGtMaskKHR": 4418,
+ "SubgroupLeMaskKHR": 4419,
+ "SubgroupLtMaskKHR": 4420,
+ "BaseVertex": 4424,
+ "BaseInstance": 4425,
+ "DrawIndex": 4426,
+ "DeviceIndex": 4438,
+ "ViewIndex": 4440,
+ "ViewportMaskNV": 5253,
+ "SecondaryPositionNV": 5257,
+ "SecondaryViewportMaskNV": 5258,
+ "PositionPerViewNV": 5261,
+ "ViewportMaskPerViewNV": 5262
+ }
+ },
+ {
+ "Name": "SelectionControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "Flatten": 0,
+ "DontFlatten": 1
+ }
+ },
+ {
+ "Name": "LoopControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "Unroll": 0,
+ "DontUnroll": 1,
+ "DependencyInfinite": 2,
+ "DependencyLength": 3
+ }
+ },
+ {
+ "Name": "FunctionControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "Inline": 0,
+ "DontInline": 1,
+ "Pure": 2,
+ "Const": 3
+ }
+ },
+ {
+ "Name": "MemorySemantics",
+ "Type": "Bit",
+ "Values":
+ {
+ "Acquire": 1,
+ "Release": 2,
+ "AcquireRelease": 3,
+ "SequentiallyConsistent": 4,
+ "UniformMemory": 6,
+ "SubgroupMemory": 7,
+ "WorkgroupMemory": 8,
+ "CrossWorkgroupMemory": 9,
+ "AtomicCounterMemory": 10,
+ "ImageMemory": 11
+ }
+ },
+ {
+ "Name": "MemoryAccess",
+ "Type": "Bit",
+ "Values":
+ {
+ "Volatile": 0,
+ "Aligned": 1,
+ "Nontemporal": 2
+ }
+ },
+ {
+ "Name": "Scope",
+ "Type": "Value",
+ "Values":
+ {
+ "CrossDevice": 0,
+ "Device": 1,
+ "Workgroup": 2,
+ "Subgroup": 3,
+ "Invocation": 4
+ }
+ },
+ {
+ "Name": "GroupOperation",
+ "Type": "Value",
+ "Values":
+ {
+ "Reduce": 0,
+ "InclusiveScan": 1,
+ "ExclusiveScan": 2
+ }
+ },
+ {
+ "Name": "KernelEnqueueFlags",
+ "Type": "Value",
+ "Values":
+ {
+ "NoWait": 0,
+ "WaitKernel": 1,
+ "WaitWorkGroup": 2
+ }
+ },
+ {
+ "Name": "KernelProfilingInfo",
+ "Type": "Bit",
+ "Values":
+ {
+ "CmdExecTime": 0
+ }
+ },
+ {
+ "Name": "Capability",
+ "Type": "Value",
+ "Values":
+ {
+ "Matrix": 0,
+ "Shader": 1,
+ "Geometry": 2,
+ "Tessellation": 3,
+ "Addresses": 4,
+ "Linkage": 5,
+ "Kernel": 6,
+ "Vector16": 7,
+ "Float16Buffer": 8,
+ "Float16": 9,
+ "Float64": 10,
+ "Int64": 11,
+ "Int64Atomics": 12,
+ "ImageBasic": 13,
+ "ImageReadWrite": 14,
+ "ImageMipmap": 15,
+ "Pipes": 17,
+ "Groups": 18,
+ "DeviceEnqueue": 19,
+ "LiteralSampler": 20,
+ "AtomicStorage": 21,
+ "Int16": 22,
+ "TessellationPointSize": 23,
+ "GeometryPointSize": 24,
+ "ImageGatherExtended": 25,
+ "StorageImageMultisample": 27,
+ "UniformBufferArrayDynamicIndexing": 28,
+ "SampledImageArrayDynamicIndexing": 29,
+ "StorageBufferArrayDynamicIndexing": 30,
+ "StorageImageArrayDynamicIndexing": 31,
+ "ClipDistance": 32,
+ "CullDistance": 33,
+ "ImageCubeArray": 34,
+ "SampleRateShading": 35,
+ "ImageRect": 36,
+ "SampledRect": 37,
+ "GenericPointer": 38,
+ "Int8": 39,
+ "InputAttachment": 40,
+ "SparseResidency": 41,
+ "MinLod": 42,
+ "Sampled1D": 43,
+ "Image1D": 44,
+ "SampledCubeArray": 45,
+ "SampledBuffer": 46,
+ "ImageBuffer": 47,
+ "ImageMSArray": 48,
+ "StorageImageExtendedFormats": 49,
+ "ImageQuery": 50,
+ "DerivativeControl": 51,
+ "InterpolationFunction": 52,
+ "TransformFeedback": 53,
+ "GeometryStreams": 54,
+ "StorageImageReadWithoutFormat": 55,
+ "StorageImageWriteWithoutFormat": 56,
+ "MultiViewport": 57,
+ "SubgroupDispatch": 58,
+ "NamedBarrier": 59,
+ "PipeStorage": 60,
+ "SubgroupBallotKHR": 4423,
+ "DrawParameters": 4427,
+ "SubgroupVoteKHR": 4431,
+ "StorageBuffer16BitAccess": 4433,
+ "StorageUniformBufferBlock16": 4433,
+ "StorageUniform16": 4434,
+ "UniformAndStorageBuffer16BitAccess": 4434,
+ "StoragePushConstant16": 4435,
+ "StorageInputOutput16": 4436,
+ "DeviceGroup": 4437,
+ "MultiView": 4439,
+ "VariablePointersStorageBuffer": 4441,
+ "VariablePointers": 4442,
+ "SampleMaskOverrideCoverageNV": 5249,
+ "GeometryShaderPassthroughNV": 5251,
+ "ShaderViewportIndexLayerNV": 5254,
+ "ShaderViewportMaskNV": 5255,
+ "ShaderStereoViewNV": 5259,
+ "PerViewAttributesNV": 5260
+ }
+ },
+ {
+ "Name": "Op",
+ "Type": "Value",
+ "Values":
+ {
+ "OpNop": 0,
+ "OpUndef": 1,
+ "OpSourceContinued": 2,
+ "OpSource": 3,
+ "OpSourceExtension": 4,
+ "OpName": 5,
+ "OpMemberName": 6,
+ "OpString": 7,
+ "OpLine": 8,
+ "OpExtension": 10,
+ "OpExtInstImport": 11,
+ "OpExtInst": 12,
+ "OpMemoryModel": 14,
+ "OpEntryPoint": 15,
+ "OpExecutionMode": 16,
+ "OpCapability": 17,
+ "OpTypeVoid": 19,
+ "OpTypeBool": 20,
+ "OpTypeInt": 21,
+ "OpTypeFloat": 22,
+ "OpTypeVector": 23,
+ "OpTypeMatrix": 24,
+ "OpTypeImage": 25,
+ "OpTypeSampler": 26,
+ "OpTypeSampledImage": 27,
+ "OpTypeArray": 28,
+ "OpTypeRuntimeArray": 29,
+ "OpTypeStruct": 30,
+ "OpTypeOpaque": 31,
+ "OpTypePointer": 32,
+ "OpTypeFunction": 33,
+ "OpTypeEvent": 34,
+ "OpTypeDeviceEvent": 35,
+ "OpTypeReserveId": 36,
+ "OpTypeQueue": 37,
+ "OpTypePipe": 38,
+ "OpTypeForwardPointer": 39,
+ "OpConstantTrue": 41,
+ "OpConstantFalse": 42,
+ "OpConstant": 43,
+ "OpConstantComposite": 44,
+ "OpConstantSampler": 45,
+ "OpConstantNull": 46,
+ "OpSpecConstantTrue": 48,
+ "OpSpecConstantFalse": 49,
+ "OpSpecConstant": 50,
+ "OpSpecConstantComposite": 51,
+ "OpSpecConstantOp": 52,
+ "OpFunction": 54,
+ "OpFunctionParameter": 55,
+ "OpFunctionEnd": 56,
+ "OpFunctionCall": 57,
+ "OpVariable": 59,
+ "OpImageTexelPointer": 60,
+ "OpLoad": 61,
+ "OpStore": 62,
+ "OpCopyMemory": 63,
+ "OpCopyMemorySized": 64,
+ "OpAccessChain": 65,
+ "OpInBoundsAccessChain": 66,
+ "OpPtrAccessChain": 67,
+ "OpArrayLength": 68,
+ "OpGenericPtrMemSemantics": 69,
+ "OpInBoundsPtrAccessChain": 70,
+ "OpDecorate": 71,
+ "OpMemberDecorate": 72,
+ "OpDecorationGroup": 73,
+ "OpGroupDecorate": 74,
+ "OpGroupMemberDecorate": 75,
+ "OpVectorExtractDynamic": 77,
+ "OpVectorInsertDynamic": 78,
+ "OpVectorShuffle": 79,
+ "OpCompositeConstruct": 80,
+ "OpCompositeExtract": 81,
+ "OpCompositeInsert": 82,
+ "OpCopyObject": 83,
+ "OpTranspose": 84,
+ "OpSampledImage": 86,
+ "OpImageSampleImplicitLod": 87,
+ "OpImageSampleExplicitLod": 88,
+ "OpImageSampleDrefImplicitLod": 89,
+ "OpImageSampleDrefExplicitLod": 90,
+ "OpImageSampleProjImplicitLod": 91,
+ "OpImageSampleProjExplicitLod": 92,
+ "OpImageSampleProjDrefImplicitLod": 93,
+ "OpImageSampleProjDrefExplicitLod": 94,
+ "OpImageFetch": 95,
+ "OpImageGather": 96,
+ "OpImageDrefGather": 97,
+ "OpImageRead": 98,
+ "OpImageWrite": 99,
+ "OpImage": 100,
+ "OpImageQueryFormat": 101,
+ "OpImageQueryOrder": 102,
+ "OpImageQuerySizeLod": 103,
+ "OpImageQuerySize": 104,
+ "OpImageQueryLod": 105,
+ "OpImageQueryLevels": 106,
+ "OpImageQuerySamples": 107,
+ "OpConvertFToU": 109,
+ "OpConvertFToS": 110,
+ "OpConvertSToF": 111,
+ "OpConvertUToF": 112,
+ "OpUConvert": 113,
+ "OpSConvert": 114,
+ "OpFConvert": 115,
+ "OpQuantizeToF16": 116,
+ "OpConvertPtrToU": 117,
+ "OpSatConvertSToU": 118,
+ "OpSatConvertUToS": 119,
+ "OpConvertUToPtr": 120,
+ "OpPtrCastToGeneric": 121,
+ "OpGenericCastToPtr": 122,
+ "OpGenericCastToPtrExplicit": 123,
+ "OpBitcast": 124,
+ "OpSNegate": 126,
+ "OpFNegate": 127,
+ "OpIAdd": 128,
+ "OpFAdd": 129,
+ "OpISub": 130,
+ "OpFSub": 131,
+ "OpIMul": 132,
+ "OpFMul": 133,
+ "OpUDiv": 134,
+ "OpSDiv": 135,
+ "OpFDiv": 136,
+ "OpUMod": 137,
+ "OpSRem": 138,
+ "OpSMod": 139,
+ "OpFRem": 140,
+ "OpFMod": 141,
+ "OpVectorTimesScalar": 142,
+ "OpMatrixTimesScalar": 143,
+ "OpVectorTimesMatrix": 144,
+ "OpMatrixTimesVector": 145,
+ "OpMatrixTimesMatrix": 146,
+ "OpOuterProduct": 147,
+ "OpDot": 148,
+ "OpIAddCarry": 149,
+ "OpISubBorrow": 150,
+ "OpUMulExtended": 151,
+ "OpSMulExtended": 152,
+ "OpAny": 154,
+ "OpAll": 155,
+ "OpIsNan": 156,
+ "OpIsInf": 157,
+ "OpIsFinite": 158,
+ "OpIsNormal": 159,
+ "OpSignBitSet": 160,
+ "OpLessOrGreater": 161,
+ "OpOrdered": 162,
+ "OpUnordered": 163,
+ "OpLogicalEqual": 164,
+ "OpLogicalNotEqual": 165,
+ "OpLogicalOr": 166,
+ "OpLogicalAnd": 167,
+ "OpLogicalNot": 168,
+ "OpSelect": 169,
+ "OpIEqual": 170,
+ "OpINotEqual": 171,
+ "OpUGreaterThan": 172,
+ "OpSGreaterThan": 173,
+ "OpUGreaterThanEqual": 174,
+ "OpSGreaterThanEqual": 175,
+ "OpULessThan": 176,
+ "OpSLessThan": 177,
+ "OpULessThanEqual": 178,
+ "OpSLessThanEqual": 179,
+ "OpFOrdEqual": 180,
+ "OpFUnordEqual": 181,
+ "OpFOrdNotEqual": 182,
+ "OpFUnordNotEqual": 183,
+ "OpFOrdLessThan": 184,
+ "OpFUnordLessThan": 185,
+ "OpFOrdGreaterThan": 186,
+ "OpFUnordGreaterThan": 187,
+ "OpFOrdLessThanEqual": 188,
+ "OpFUnordLessThanEqual": 189,
+ "OpFOrdGreaterThanEqual": 190,
+ "OpFUnordGreaterThanEqual": 191,
+ "OpShiftRightLogical": 194,
+ "OpShiftRightArithmetic": 195,
+ "OpShiftLeftLogical": 196,
+ "OpBitwiseOr": 197,
+ "OpBitwiseXor": 198,
+ "OpBitwiseAnd": 199,
+ "OpNot": 200,
+ "OpBitFieldInsert": 201,
+ "OpBitFieldSExtract": 202,
+ "OpBitFieldUExtract": 203,
+ "OpBitReverse": 204,
+ "OpBitCount": 205,
+ "OpDPdx": 207,
+ "OpDPdy": 208,
+ "OpFwidth": 209,
+ "OpDPdxFine": 210,
+ "OpDPdyFine": 211,
+ "OpFwidthFine": 212,
+ "OpDPdxCoarse": 213,
+ "OpDPdyCoarse": 214,
+ "OpFwidthCoarse": 215,
+ "OpEmitVertex": 218,
+ "OpEndPrimitive": 219,
+ "OpEmitStreamVertex": 220,
+ "OpEndStreamPrimitive": 221,
+ "OpControlBarrier": 224,
+ "OpMemoryBarrier": 225,
+ "OpAtomicLoad": 227,
+ "OpAtomicStore": 228,
+ "OpAtomicExchange": 229,
+ "OpAtomicCompareExchange": 230,
+ "OpAtomicCompareExchangeWeak": 231,
+ "OpAtomicIIncrement": 232,
+ "OpAtomicIDecrement": 233,
+ "OpAtomicIAdd": 234,
+ "OpAtomicISub": 235,
+ "OpAtomicSMin": 236,
+ "OpAtomicUMin": 237,
+ "OpAtomicSMax": 238,
+ "OpAtomicUMax": 239,
+ "OpAtomicAnd": 240,
+ "OpAtomicOr": 241,
+ "OpAtomicXor": 242,
+ "OpPhi": 245,
+ "OpLoopMerge": 246,
+ "OpSelectionMerge": 247,
+ "OpLabel": 248,
+ "OpBranch": 249,
+ "OpBranchConditional": 250,
+ "OpSwitch": 251,
+ "OpKill": 252,
+ "OpReturn": 253,
+ "OpReturnValue": 254,
+ "OpUnreachable": 255,
+ "OpLifetimeStart": 256,
+ "OpLifetimeStop": 257,
+ "OpGroupAsyncCopy": 259,
+ "OpGroupWaitEvents": 260,
+ "OpGroupAll": 261,
+ "OpGroupAny": 262,
+ "OpGroupBroadcast": 263,
+ "OpGroupIAdd": 264,
+ "OpGroupFAdd": 265,
+ "OpGroupFMin": 266,
+ "OpGroupUMin": 267,
+ "OpGroupSMin": 268,
+ "OpGroupFMax": 269,
+ "OpGroupUMax": 270,
+ "OpGroupSMax": 271,
+ "OpReadPipe": 274,
+ "OpWritePipe": 275,
+ "OpReservedReadPipe": 276,
+ "OpReservedWritePipe": 277,
+ "OpReserveReadPipePackets": 278,
+ "OpReserveWritePipePackets": 279,
+ "OpCommitReadPipe": 280,
+ "OpCommitWritePipe": 281,
+ "OpIsValidReserveId": 282,
+ "OpGetNumPipePackets": 283,
+ "OpGetMaxPipePackets": 284,
+ "OpGroupReserveReadPipePackets": 285,
+ "OpGroupReserveWritePipePackets": 286,
+ "OpGroupCommitReadPipe": 287,
+ "OpGroupCommitWritePipe": 288,
+ "OpEnqueueMarker": 291,
+ "OpEnqueueKernel": 292,
+ "OpGetKernelNDrangeSubGroupCount": 293,
+ "OpGetKernelNDrangeMaxSubGroupSize": 294,
+ "OpGetKernelWorkGroupSize": 295,
+ "OpGetKernelPreferredWorkGroupSizeMultiple": 296,
+ "OpRetainEvent": 297,
+ "OpReleaseEvent": 298,
+ "OpCreateUserEvent": 299,
+ "OpIsValidEvent": 300,
+ "OpSetUserEventStatus": 301,
+ "OpCaptureEventProfilingInfo": 302,
+ "OpGetDefaultQueue": 303,
+ "OpBuildNDRange": 304,
+ "OpImageSparseSampleImplicitLod": 305,
+ "OpImageSparseSampleExplicitLod": 306,
+ "OpImageSparseSampleDrefImplicitLod": 307,
+ "OpImageSparseSampleDrefExplicitLod": 308,
+ "OpImageSparseSampleProjImplicitLod": 309,
+ "OpImageSparseSampleProjExplicitLod": 310,
+ "OpImageSparseSampleProjDrefImplicitLod": 311,
+ "OpImageSparseSampleProjDrefExplicitLod": 312,
+ "OpImageSparseFetch": 313,
+ "OpImageSparseGather": 314,
+ "OpImageSparseDrefGather": 315,
+ "OpImageSparseTexelsResident": 316,
+ "OpNoLine": 317,
+ "OpAtomicFlagTestAndSet": 318,
+ "OpAtomicFlagClear": 319,
+ "OpImageSparseRead": 320,
+ "OpSizeOf": 321,
+ "OpTypePipeStorage": 322,
+ "OpConstantPipeStorage": 323,
+ "OpCreatePipeFromPipeStorage": 324,
+ "OpGetKernelLocalSizeForSubgroupCount": 325,
+ "OpGetKernelMaxNumSubgroups": 326,
+ "OpTypeNamedBarrier": 327,
+ "OpNamedBarrierInitialize": 328,
+ "OpMemoryNamedBarrier": 329,
+ "OpModuleProcessed": 330,
+ "OpExecutionModeId": 331,
+ "OpDecorateId": 332,
+ "OpSubgroupBallotKHR": 4421,
+ "OpSubgroupFirstInvocationKHR": 4422,
+ "OpSubgroupAllKHR": 4428,
+ "OpSubgroupAnyKHR": 4429,
+ "OpSubgroupAllEqualKHR": 4430,
+ "OpSubgroupReadInvocationKHR": 4432
+ }
+ }
+ ]
+ }
+}
+
diff --git a/include/spirv/1.2/spirv.lua b/include/spirv/1.2/spirv.lua
new file mode 100644
index 0000000..831194d
--- /dev/null
+++ b/include/spirv/1.2/spirv.lua
@@ -0,0 +1,934 @@
+-- Copyright (c) 2014-2017 The Khronos Group Inc.
+--
+-- Permission is hereby granted, free of charge, to any person obtaining a copy
+-- of this software and/or associated documentation files (the "Materials"),
+-- to deal in the Materials without restriction, including without limitation
+-- the rights to use, copy, modify, merge, publish, distribute, sublicense,
+-- and/or sell copies of the Materials, and to permit persons to whom the
+-- Materials are furnished to do so, subject to the following conditions:
+--
+-- The above copyright notice and this permission notice shall be included in
+-- all copies or substantial portions of the Materials.
+--
+-- MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+-- STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+-- HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+--
+-- THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+-- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+-- FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+-- IN THE MATERIALS.
+
+-- This header is automatically generated by the same tool that creates
+-- the Binary Section of the SPIR-V specification.
+
+-- Enumeration tokens for SPIR-V, in various styles:
+-- C, C++, C++11, JSON, Lua, Python
+--
+-- - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+-- - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+-- - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+-- - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+-- - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+--
+-- Some tokens act like mask values, which can be OR'd together,
+-- while others are mutually exclusive. The mask-like ones have
+-- "Mask" in their name, and a parallel enum that has the shift
+-- amount (1 << x) for each corresponding enumerant.
+
+spv = {
+ MagicNumber = 0x07230203,
+ Version = 0x00010200,
+ Revision = 1,
+ OpCodeMask = 0xffff,
+ WordCountShift = 16,
+
+ SourceLanguage = {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ },
+
+ ExecutionModel = {
+ Vertex = 0,
+ TessellationControl = 1,
+ TessellationEvaluation = 2,
+ Geometry = 3,
+ Fragment = 4,
+ GLCompute = 5,
+ Kernel = 6,
+ },
+
+ AddressingModel = {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ },
+
+ MemoryModel = {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ },
+
+ ExecutionMode = {
+ Invocations = 0,
+ SpacingEqual = 1,
+ SpacingFractionalEven = 2,
+ SpacingFractionalOdd = 3,
+ VertexOrderCw = 4,
+ VertexOrderCcw = 5,
+ PixelCenterInteger = 6,
+ OriginUpperLeft = 7,
+ OriginLowerLeft = 8,
+ EarlyFragmentTests = 9,
+ PointMode = 10,
+ Xfb = 11,
+ DepthReplacing = 12,
+ DepthGreater = 14,
+ DepthLess = 15,
+ DepthUnchanged = 16,
+ LocalSize = 17,
+ LocalSizeHint = 18,
+ InputPoints = 19,
+ InputLines = 20,
+ InputLinesAdjacency = 21,
+ Triangles = 22,
+ InputTrianglesAdjacency = 23,
+ Quads = 24,
+ Isolines = 25,
+ OutputVertices = 26,
+ OutputPoints = 27,
+ OutputLineStrip = 28,
+ OutputTriangleStrip = 29,
+ VecTypeHint = 30,
+ ContractionOff = 31,
+ Initializer = 33,
+ Finalizer = 34,
+ SubgroupSize = 35,
+ SubgroupsPerWorkgroup = 36,
+ SubgroupsPerWorkgroupId = 37,
+ LocalSizeId = 38,
+ LocalSizeHintId = 39,
+ },
+
+ StorageClass = {
+ UniformConstant = 0,
+ Input = 1,
+ Uniform = 2,
+ Output = 3,
+ Workgroup = 4,
+ CrossWorkgroup = 5,
+ Private = 6,
+ Function = 7,
+ Generic = 8,
+ PushConstant = 9,
+ AtomicCounter = 10,
+ Image = 11,
+ StorageBuffer = 12,
+ },
+
+ Dim = {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ },
+
+ SamplerAddressingMode = {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ },
+
+ SamplerFilterMode = {
+ Nearest = 0,
+ Linear = 1,
+ },
+
+ ImageFormat = {
+ Unknown = 0,
+ Rgba32f = 1,
+ Rgba16f = 2,
+ R32f = 3,
+ Rgba8 = 4,
+ Rgba8Snorm = 5,
+ Rg32f = 6,
+ Rg16f = 7,
+ R11fG11fB10f = 8,
+ R16f = 9,
+ Rgba16 = 10,
+ Rgb10A2 = 11,
+ Rg16 = 12,
+ Rg8 = 13,
+ R16 = 14,
+ R8 = 15,
+ Rgba16Snorm = 16,
+ Rg16Snorm = 17,
+ Rg8Snorm = 18,
+ R16Snorm = 19,
+ R8Snorm = 20,
+ Rgba32i = 21,
+ Rgba16i = 22,
+ Rgba8i = 23,
+ R32i = 24,
+ Rg32i = 25,
+ Rg16i = 26,
+ Rg8i = 27,
+ R16i = 28,
+ R8i = 29,
+ Rgba32ui = 30,
+ Rgba16ui = 31,
+ Rgba8ui = 32,
+ R32ui = 33,
+ Rgb10a2ui = 34,
+ Rg32ui = 35,
+ Rg16ui = 36,
+ Rg8ui = 37,
+ R16ui = 38,
+ R8ui = 39,
+ },
+
+ ImageChannelOrder = {
+ R = 0,
+ A = 1,
+ RG = 2,
+ RA = 3,
+ RGB = 4,
+ RGBA = 5,
+ BGRA = 6,
+ ARGB = 7,
+ Intensity = 8,
+ Luminance = 9,
+ Rx = 10,
+ RGx = 11,
+ RGBx = 12,
+ Depth = 13,
+ DepthStencil = 14,
+ sRGB = 15,
+ sRGBx = 16,
+ sRGBA = 17,
+ sBGRA = 18,
+ ABGR = 19,
+ },
+
+ ImageChannelDataType = {
+ SnormInt8 = 0,
+ SnormInt16 = 1,
+ UnormInt8 = 2,
+ UnormInt16 = 3,
+ UnormShort565 = 4,
+ UnormShort555 = 5,
+ UnormInt101010 = 6,
+ SignedInt8 = 7,
+ SignedInt16 = 8,
+ SignedInt32 = 9,
+ UnsignedInt8 = 10,
+ UnsignedInt16 = 11,
+ UnsignedInt32 = 12,
+ HalfFloat = 13,
+ Float = 14,
+ UnormInt24 = 15,
+ UnormInt101010_2 = 16,
+ },
+
+ ImageOperandsShift = {
+ Bias = 0,
+ Lod = 1,
+ Grad = 2,
+ ConstOffset = 3,
+ Offset = 4,
+ ConstOffsets = 5,
+ Sample = 6,
+ MinLod = 7,
+ },
+
+ ImageOperandsMask = {
+ MaskNone = 0,
+ Bias = 0x00000001,
+ Lod = 0x00000002,
+ Grad = 0x00000004,
+ ConstOffset = 0x00000008,
+ Offset = 0x00000010,
+ ConstOffsets = 0x00000020,
+ Sample = 0x00000040,
+ MinLod = 0x00000080,
+ },
+
+ FPFastMathModeShift = {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ },
+
+ FPFastMathModeMask = {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+ },
+
+ FPRoundingMode = {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ },
+
+ LinkageType = {
+ Export = 0,
+ Import = 1,
+ },
+
+ AccessQualifier = {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ },
+
+ FunctionParameterAttribute = {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ },
+
+ Decoration = {
+ RelaxedPrecision = 0,
+ SpecId = 1,
+ Block = 2,
+ BufferBlock = 3,
+ RowMajor = 4,
+ ColMajor = 5,
+ ArrayStride = 6,
+ MatrixStride = 7,
+ GLSLShared = 8,
+ GLSLPacked = 9,
+ CPacked = 10,
+ BuiltIn = 11,
+ NoPerspective = 13,
+ Flat = 14,
+ Patch = 15,
+ Centroid = 16,
+ Sample = 17,
+ Invariant = 18,
+ Restrict = 19,
+ Aliased = 20,
+ Volatile = 21,
+ Constant = 22,
+ Coherent = 23,
+ NonWritable = 24,
+ NonReadable = 25,
+ Uniform = 26,
+ SaturatedConversion = 28,
+ Stream = 29,
+ Location = 30,
+ Component = 31,
+ Index = 32,
+ Binding = 33,
+ DescriptorSet = 34,
+ Offset = 35,
+ XfbBuffer = 36,
+ XfbStride = 37,
+ FuncParamAttr = 38,
+ FPRoundingMode = 39,
+ FPFastMathMode = 40,
+ LinkageAttributes = 41,
+ NoContraction = 42,
+ InputAttachmentIndex = 43,
+ Alignment = 44,
+ MaxByteOffset = 45,
+ AlignmentId = 46,
+ MaxByteOffsetId = 47,
+ OverrideCoverageNV = 5248,
+ PassthroughNV = 5250,
+ ViewportRelativeNV = 5252,
+ SecondaryViewportRelativeNV = 5256,
+ },
+
+ BuiltIn = {
+ Position = 0,
+ PointSize = 1,
+ ClipDistance = 3,
+ CullDistance = 4,
+ VertexId = 5,
+ InstanceId = 6,
+ PrimitiveId = 7,
+ InvocationId = 8,
+ Layer = 9,
+ ViewportIndex = 10,
+ TessLevelOuter = 11,
+ TessLevelInner = 12,
+ TessCoord = 13,
+ PatchVertices = 14,
+ FragCoord = 15,
+ PointCoord = 16,
+ FrontFacing = 17,
+ SampleId = 18,
+ SamplePosition = 19,
+ SampleMask = 20,
+ FragDepth = 22,
+ HelperInvocation = 23,
+ NumWorkgroups = 24,
+ WorkgroupSize = 25,
+ WorkgroupId = 26,
+ LocalInvocationId = 27,
+ GlobalInvocationId = 28,
+ LocalInvocationIndex = 29,
+ WorkDim = 30,
+ GlobalSize = 31,
+ EnqueuedWorkgroupSize = 32,
+ GlobalOffset = 33,
+ GlobalLinearId = 34,
+ SubgroupSize = 36,
+ SubgroupMaxSize = 37,
+ NumSubgroups = 38,
+ NumEnqueuedSubgroups = 39,
+ SubgroupId = 40,
+ SubgroupLocalInvocationId = 41,
+ VertexIndex = 42,
+ InstanceIndex = 43,
+ SubgroupEqMaskKHR = 4416,
+ SubgroupGeMaskKHR = 4417,
+ SubgroupGtMaskKHR = 4418,
+ SubgroupLeMaskKHR = 4419,
+ SubgroupLtMaskKHR = 4420,
+ BaseVertex = 4424,
+ BaseInstance = 4425,
+ DrawIndex = 4426,
+ DeviceIndex = 4438,
+ ViewIndex = 4440,
+ ViewportMaskNV = 5253,
+ SecondaryPositionNV = 5257,
+ SecondaryViewportMaskNV = 5258,
+ PositionPerViewNV = 5261,
+ ViewportMaskPerViewNV = 5262,
+ },
+
+ SelectionControlShift = {
+ Flatten = 0,
+ DontFlatten = 1,
+ },
+
+ SelectionControlMask = {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+ },
+
+ LoopControlShift = {
+ Unroll = 0,
+ DontUnroll = 1,
+ DependencyInfinite = 2,
+ DependencyLength = 3,
+ },
+
+ LoopControlMask = {
+ MaskNone = 0,
+ Unroll = 0x00000001,
+ DontUnroll = 0x00000002,
+ DependencyInfinite = 0x00000004,
+ DependencyLength = 0x00000008,
+ },
+
+ FunctionControlShift = {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ },
+
+ FunctionControlMask = {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+ },
+
+ MemorySemanticsShift = {
+ Acquire = 1,
+ Release = 2,
+ AcquireRelease = 3,
+ SequentiallyConsistent = 4,
+ UniformMemory = 6,
+ SubgroupMemory = 7,
+ WorkgroupMemory = 8,
+ CrossWorkgroupMemory = 9,
+ AtomicCounterMemory = 10,
+ ImageMemory = 11,
+ },
+
+ MemorySemanticsMask = {
+ MaskNone = 0,
+ Acquire = 0x00000002,
+ Release = 0x00000004,
+ AcquireRelease = 0x00000008,
+ SequentiallyConsistent = 0x00000010,
+ UniformMemory = 0x00000040,
+ SubgroupMemory = 0x00000080,
+ WorkgroupMemory = 0x00000100,
+ CrossWorkgroupMemory = 0x00000200,
+ AtomicCounterMemory = 0x00000400,
+ ImageMemory = 0x00000800,
+ },
+
+ MemoryAccessShift = {
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ },
+
+ MemoryAccessMask = {
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+ },
+
+ Scope = {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ },
+
+ GroupOperation = {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ },
+
+ KernelEnqueueFlags = {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ },
+
+ KernelProfilingInfoShift = {
+ CmdExecTime = 0,
+ },
+
+ KernelProfilingInfoMask = {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+ },
+
+ Capability = {
+ Matrix = 0,
+ Shader = 1,
+ Geometry = 2,
+ Tessellation = 3,
+ Addresses = 4,
+ Linkage = 5,
+ Kernel = 6,
+ Vector16 = 7,
+ Float16Buffer = 8,
+ Float16 = 9,
+ Float64 = 10,
+ Int64 = 11,
+ Int64Atomics = 12,
+ ImageBasic = 13,
+ ImageReadWrite = 14,
+ ImageMipmap = 15,
+ Pipes = 17,
+ Groups = 18,
+ DeviceEnqueue = 19,
+ LiteralSampler = 20,
+ AtomicStorage = 21,
+ Int16 = 22,
+ TessellationPointSize = 23,
+ GeometryPointSize = 24,
+ ImageGatherExtended = 25,
+ StorageImageMultisample = 27,
+ UniformBufferArrayDynamicIndexing = 28,
+ SampledImageArrayDynamicIndexing = 29,
+ StorageBufferArrayDynamicIndexing = 30,
+ StorageImageArrayDynamicIndexing = 31,
+ ClipDistance = 32,
+ CullDistance = 33,
+ ImageCubeArray = 34,
+ SampleRateShading = 35,
+ ImageRect = 36,
+ SampledRect = 37,
+ GenericPointer = 38,
+ Int8 = 39,
+ InputAttachment = 40,
+ SparseResidency = 41,
+ MinLod = 42,
+ Sampled1D = 43,
+ Image1D = 44,
+ SampledCubeArray = 45,
+ SampledBuffer = 46,
+ ImageBuffer = 47,
+ ImageMSArray = 48,
+ StorageImageExtendedFormats = 49,
+ ImageQuery = 50,
+ DerivativeControl = 51,
+ InterpolationFunction = 52,
+ TransformFeedback = 53,
+ GeometryStreams = 54,
+ StorageImageReadWithoutFormat = 55,
+ StorageImageWriteWithoutFormat = 56,
+ MultiViewport = 57,
+ SubgroupDispatch = 58,
+ NamedBarrier = 59,
+ PipeStorage = 60,
+ SubgroupBallotKHR = 4423,
+ DrawParameters = 4427,
+ SubgroupVoteKHR = 4431,
+ StorageBuffer16BitAccess = 4433,
+ StorageUniformBufferBlock16 = 4433,
+ StorageUniform16 = 4434,
+ UniformAndStorageBuffer16BitAccess = 4434,
+ StoragePushConstant16 = 4435,
+ StorageInputOutput16 = 4436,
+ DeviceGroup = 4437,
+ MultiView = 4439,
+ VariablePointersStorageBuffer = 4441,
+ VariablePointers = 4442,
+ SampleMaskOverrideCoverageNV = 5249,
+ GeometryShaderPassthroughNV = 5251,
+ ShaderViewportIndexLayerNV = 5254,
+ ShaderViewportMaskNV = 5255,
+ ShaderStereoViewNV = 5259,
+ PerViewAttributesNV = 5260,
+ },
+
+ Op = {
+ OpNop = 0,
+ OpUndef = 1,
+ OpSourceContinued = 2,
+ OpSource = 3,
+ OpSourceExtension = 4,
+ OpName = 5,
+ OpMemberName = 6,
+ OpString = 7,
+ OpLine = 8,
+ OpExtension = 10,
+ OpExtInstImport = 11,
+ OpExtInst = 12,
+ OpMemoryModel = 14,
+ OpEntryPoint = 15,
+ OpExecutionMode = 16,
+ OpCapability = 17,
+ OpTypeVoid = 19,
+ OpTypeBool = 20,
+ OpTypeInt = 21,
+ OpTypeFloat = 22,
+ OpTypeVector = 23,
+ OpTypeMatrix = 24,
+ OpTypeImage = 25,
+ OpTypeSampler = 26,
+ OpTypeSampledImage = 27,
+ OpTypeArray = 28,
+ OpTypeRuntimeArray = 29,
+ OpTypeStruct = 30,
+ OpTypeOpaque = 31,
+ OpTypePointer = 32,
+ OpTypeFunction = 33,
+ OpTypeEvent = 34,
+ OpTypeDeviceEvent = 35,
+ OpTypeReserveId = 36,
+ OpTypeQueue = 37,
+ OpTypePipe = 38,
+ OpTypeForwardPointer = 39,
+ OpConstantTrue = 41,
+ OpConstantFalse = 42,
+ OpConstant = 43,
+ OpConstantComposite = 44,
+ OpConstantSampler = 45,
+ OpConstantNull = 46,
+ OpSpecConstantTrue = 48,
+ OpSpecConstantFalse = 49,
+ OpSpecConstant = 50,
+ OpSpecConstantComposite = 51,
+ OpSpecConstantOp = 52,
+ OpFunction = 54,
+ OpFunctionParameter = 55,
+ OpFunctionEnd = 56,
+ OpFunctionCall = 57,
+ OpVariable = 59,
+ OpImageTexelPointer = 60,
+ OpLoad = 61,
+ OpStore = 62,
+ OpCopyMemory = 63,
+ OpCopyMemorySized = 64,
+ OpAccessChain = 65,
+ OpInBoundsAccessChain = 66,
+ OpPtrAccessChain = 67,
+ OpArrayLength = 68,
+ OpGenericPtrMemSemantics = 69,
+ OpInBoundsPtrAccessChain = 70,
+ OpDecorate = 71,
+ OpMemberDecorate = 72,
+ OpDecorationGroup = 73,
+ OpGroupDecorate = 74,
+ OpGroupMemberDecorate = 75,
+ OpVectorExtractDynamic = 77,
+ OpVectorInsertDynamic = 78,
+ OpVectorShuffle = 79,
+ OpCompositeConstruct = 80,
+ OpCompositeExtract = 81,
+ OpCompositeInsert = 82,
+ OpCopyObject = 83,
+ OpTranspose = 84,
+ OpSampledImage = 86,
+ OpImageSampleImplicitLod = 87,
+ OpImageSampleExplicitLod = 88,
+ OpImageSampleDrefImplicitLod = 89,
+ OpImageSampleDrefExplicitLod = 90,
+ OpImageSampleProjImplicitLod = 91,
+ OpImageSampleProjExplicitLod = 92,
+ OpImageSampleProjDrefImplicitLod = 93,
+ OpImageSampleProjDrefExplicitLod = 94,
+ OpImageFetch = 95,
+ OpImageGather = 96,
+ OpImageDrefGather = 97,
+ OpImageRead = 98,
+ OpImageWrite = 99,
+ OpImage = 100,
+ OpImageQueryFormat = 101,
+ OpImageQueryOrder = 102,
+ OpImageQuerySizeLod = 103,
+ OpImageQuerySize = 104,
+ OpImageQueryLod = 105,
+ OpImageQueryLevels = 106,
+ OpImageQuerySamples = 107,
+ OpConvertFToU = 109,
+ OpConvertFToS = 110,
+ OpConvertSToF = 111,
+ OpConvertUToF = 112,
+ OpUConvert = 113,
+ OpSConvert = 114,
+ OpFConvert = 115,
+ OpQuantizeToF16 = 116,
+ OpConvertPtrToU = 117,
+ OpSatConvertSToU = 118,
+ OpSatConvertUToS = 119,
+ OpConvertUToPtr = 120,
+ OpPtrCastToGeneric = 121,
+ OpGenericCastToPtr = 122,
+ OpGenericCastToPtrExplicit = 123,
+ OpBitcast = 124,
+ OpSNegate = 126,
+ OpFNegate = 127,
+ OpIAdd = 128,
+ OpFAdd = 129,
+ OpISub = 130,
+ OpFSub = 131,
+ OpIMul = 132,
+ OpFMul = 133,
+ OpUDiv = 134,
+ OpSDiv = 135,
+ OpFDiv = 136,
+ OpUMod = 137,
+ OpSRem = 138,
+ OpSMod = 139,
+ OpFRem = 140,
+ OpFMod = 141,
+ OpVectorTimesScalar = 142,
+ OpMatrixTimesScalar = 143,
+ OpVectorTimesMatrix = 144,
+ OpMatrixTimesVector = 145,
+ OpMatrixTimesMatrix = 146,
+ OpOuterProduct = 147,
+ OpDot = 148,
+ OpIAddCarry = 149,
+ OpISubBorrow = 150,
+ OpUMulExtended = 151,
+ OpSMulExtended = 152,
+ OpAny = 154,
+ OpAll = 155,
+ OpIsNan = 156,
+ OpIsInf = 157,
+ OpIsFinite = 158,
+ OpIsNormal = 159,
+ OpSignBitSet = 160,
+ OpLessOrGreater = 161,
+ OpOrdered = 162,
+ OpUnordered = 163,
+ OpLogicalEqual = 164,
+ OpLogicalNotEqual = 165,
+ OpLogicalOr = 166,
+ OpLogicalAnd = 167,
+ OpLogicalNot = 168,
+ OpSelect = 169,
+ OpIEqual = 170,
+ OpINotEqual = 171,
+ OpUGreaterThan = 172,
+ OpSGreaterThan = 173,
+ OpUGreaterThanEqual = 174,
+ OpSGreaterThanEqual = 175,
+ OpULessThan = 176,
+ OpSLessThan = 177,
+ OpULessThanEqual = 178,
+ OpSLessThanEqual = 179,
+ OpFOrdEqual = 180,
+ OpFUnordEqual = 181,
+ OpFOrdNotEqual = 182,
+ OpFUnordNotEqual = 183,
+ OpFOrdLessThan = 184,
+ OpFUnordLessThan = 185,
+ OpFOrdGreaterThan = 186,
+ OpFUnordGreaterThan = 187,
+ OpFOrdLessThanEqual = 188,
+ OpFUnordLessThanEqual = 189,
+ OpFOrdGreaterThanEqual = 190,
+ OpFUnordGreaterThanEqual = 191,
+ OpShiftRightLogical = 194,
+ OpShiftRightArithmetic = 195,
+ OpShiftLeftLogical = 196,
+ OpBitwiseOr = 197,
+ OpBitwiseXor = 198,
+ OpBitwiseAnd = 199,
+ OpNot = 200,
+ OpBitFieldInsert = 201,
+ OpBitFieldSExtract = 202,
+ OpBitFieldUExtract = 203,
+ OpBitReverse = 204,
+ OpBitCount = 205,
+ OpDPdx = 207,
+ OpDPdy = 208,
+ OpFwidth = 209,
+ OpDPdxFine = 210,
+ OpDPdyFine = 211,
+ OpFwidthFine = 212,
+ OpDPdxCoarse = 213,
+ OpDPdyCoarse = 214,
+ OpFwidthCoarse = 215,
+ OpEmitVertex = 218,
+ OpEndPrimitive = 219,
+ OpEmitStreamVertex = 220,
+ OpEndStreamPrimitive = 221,
+ OpControlBarrier = 224,
+ OpMemoryBarrier = 225,
+ OpAtomicLoad = 227,
+ OpAtomicStore = 228,
+ OpAtomicExchange = 229,
+ OpAtomicCompareExchange = 230,
+ OpAtomicCompareExchangeWeak = 231,
+ OpAtomicIIncrement = 232,
+ OpAtomicIDecrement = 233,
+ OpAtomicIAdd = 234,
+ OpAtomicISub = 235,
+ OpAtomicSMin = 236,
+ OpAtomicUMin = 237,
+ OpAtomicSMax = 238,
+ OpAtomicUMax = 239,
+ OpAtomicAnd = 240,
+ OpAtomicOr = 241,
+ OpAtomicXor = 242,
+ OpPhi = 245,
+ OpLoopMerge = 246,
+ OpSelectionMerge = 247,
+ OpLabel = 248,
+ OpBranch = 249,
+ OpBranchConditional = 250,
+ OpSwitch = 251,
+ OpKill = 252,
+ OpReturn = 253,
+ OpReturnValue = 254,
+ OpUnreachable = 255,
+ OpLifetimeStart = 256,
+ OpLifetimeStop = 257,
+ OpGroupAsyncCopy = 259,
+ OpGroupWaitEvents = 260,
+ OpGroupAll = 261,
+ OpGroupAny = 262,
+ OpGroupBroadcast = 263,
+ OpGroupIAdd = 264,
+ OpGroupFAdd = 265,
+ OpGroupFMin = 266,
+ OpGroupUMin = 267,
+ OpGroupSMin = 268,
+ OpGroupFMax = 269,
+ OpGroupUMax = 270,
+ OpGroupSMax = 271,
+ OpReadPipe = 274,
+ OpWritePipe = 275,
+ OpReservedReadPipe = 276,
+ OpReservedWritePipe = 277,
+ OpReserveReadPipePackets = 278,
+ OpReserveWritePipePackets = 279,
+ OpCommitReadPipe = 280,
+ OpCommitWritePipe = 281,
+ OpIsValidReserveId = 282,
+ OpGetNumPipePackets = 283,
+ OpGetMaxPipePackets = 284,
+ OpGroupReserveReadPipePackets = 285,
+ OpGroupReserveWritePipePackets = 286,
+ OpGroupCommitReadPipe = 287,
+ OpGroupCommitWritePipe = 288,
+ OpEnqueueMarker = 291,
+ OpEnqueueKernel = 292,
+ OpGetKernelNDrangeSubGroupCount = 293,
+ OpGetKernelNDrangeMaxSubGroupSize = 294,
+ OpGetKernelWorkGroupSize = 295,
+ OpGetKernelPreferredWorkGroupSizeMultiple = 296,
+ OpRetainEvent = 297,
+ OpReleaseEvent = 298,
+ OpCreateUserEvent = 299,
+ OpIsValidEvent = 300,
+ OpSetUserEventStatus = 301,
+ OpCaptureEventProfilingInfo = 302,
+ OpGetDefaultQueue = 303,
+ OpBuildNDRange = 304,
+ OpImageSparseSampleImplicitLod = 305,
+ OpImageSparseSampleExplicitLod = 306,
+ OpImageSparseSampleDrefImplicitLod = 307,
+ OpImageSparseSampleDrefExplicitLod = 308,
+ OpImageSparseSampleProjImplicitLod = 309,
+ OpImageSparseSampleProjExplicitLod = 310,
+ OpImageSparseSampleProjDrefImplicitLod = 311,
+ OpImageSparseSampleProjDrefExplicitLod = 312,
+ OpImageSparseFetch = 313,
+ OpImageSparseGather = 314,
+ OpImageSparseDrefGather = 315,
+ OpImageSparseTexelsResident = 316,
+ OpNoLine = 317,
+ OpAtomicFlagTestAndSet = 318,
+ OpAtomicFlagClear = 319,
+ OpImageSparseRead = 320,
+ OpSizeOf = 321,
+ OpTypePipeStorage = 322,
+ OpConstantPipeStorage = 323,
+ OpCreatePipeFromPipeStorage = 324,
+ OpGetKernelLocalSizeForSubgroupCount = 325,
+ OpGetKernelMaxNumSubgroups = 326,
+ OpTypeNamedBarrier = 327,
+ OpNamedBarrierInitialize = 328,
+ OpMemoryNamedBarrier = 329,
+ OpModuleProcessed = 330,
+ OpExecutionModeId = 331,
+ OpDecorateId = 332,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ },
+
+}
+
diff --git a/include/spirv/1.2/spirv.py b/include/spirv/1.2/spirv.py
new file mode 100755
index 0000000..50d48f5
--- /dev/null
+++ b/include/spirv/1.2/spirv.py
@@ -0,0 +1,934 @@
+# Copyright (c) 2014-2017 The Khronos Group Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and/or associated documentation files (the "Materials"),
+# to deal in the Materials without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Materials, and to permit persons to whom the
+# Materials are furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Materials.
+#
+# MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+# STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+# HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+#
+# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+# IN THE MATERIALS.
+
+# This header is automatically generated by the same tool that creates
+# the Binary Section of the SPIR-V specification.
+
+# Enumeration tokens for SPIR-V, in various styles:
+# C, C++, C++11, JSON, Lua, Python
+#
+# - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+# - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+# - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+# - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+# - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+#
+# Some tokens act like mask values, which can be OR'd together,
+# while others are mutually exclusive. The mask-like ones have
+# "Mask" in their name, and a parallel enum that has the shift
+# amount (1 << x) for each corresponding enumerant.
+
+spv = {
+ 'MagicNumber' : 0x07230203,
+ 'Version' : 0x00010200,
+ 'Revision' : 1,
+ 'OpCodeMask' : 0xffff,
+ 'WordCountShift' : 16,
+
+ 'SourceLanguage' : {
+ 'Unknown' : 0,
+ 'ESSL' : 1,
+ 'GLSL' : 2,
+ 'OpenCL_C' : 3,
+ 'OpenCL_CPP' : 4,
+ 'HLSL' : 5,
+ },
+
+ 'ExecutionModel' : {
+ 'Vertex' : 0,
+ 'TessellationControl' : 1,
+ 'TessellationEvaluation' : 2,
+ 'Geometry' : 3,
+ 'Fragment' : 4,
+ 'GLCompute' : 5,
+ 'Kernel' : 6,
+ },
+
+ 'AddressingModel' : {
+ 'Logical' : 0,
+ 'Physical32' : 1,
+ 'Physical64' : 2,
+ },
+
+ 'MemoryModel' : {
+ 'Simple' : 0,
+ 'GLSL450' : 1,
+ 'OpenCL' : 2,
+ },
+
+ 'ExecutionMode' : {
+ 'Invocations' : 0,
+ 'SpacingEqual' : 1,
+ 'SpacingFractionalEven' : 2,
+ 'SpacingFractionalOdd' : 3,
+ 'VertexOrderCw' : 4,
+ 'VertexOrderCcw' : 5,
+ 'PixelCenterInteger' : 6,
+ 'OriginUpperLeft' : 7,
+ 'OriginLowerLeft' : 8,
+ 'EarlyFragmentTests' : 9,
+ 'PointMode' : 10,
+ 'Xfb' : 11,
+ 'DepthReplacing' : 12,
+ 'DepthGreater' : 14,
+ 'DepthLess' : 15,
+ 'DepthUnchanged' : 16,
+ 'LocalSize' : 17,
+ 'LocalSizeHint' : 18,
+ 'InputPoints' : 19,
+ 'InputLines' : 20,
+ 'InputLinesAdjacency' : 21,
+ 'Triangles' : 22,
+ 'InputTrianglesAdjacency' : 23,
+ 'Quads' : 24,
+ 'Isolines' : 25,
+ 'OutputVertices' : 26,
+ 'OutputPoints' : 27,
+ 'OutputLineStrip' : 28,
+ 'OutputTriangleStrip' : 29,
+ 'VecTypeHint' : 30,
+ 'ContractionOff' : 31,
+ 'Initializer' : 33,
+ 'Finalizer' : 34,
+ 'SubgroupSize' : 35,
+ 'SubgroupsPerWorkgroup' : 36,
+ 'SubgroupsPerWorkgroupId' : 37,
+ 'LocalSizeId' : 38,
+ 'LocalSizeHintId' : 39,
+ },
+
+ 'StorageClass' : {
+ 'UniformConstant' : 0,
+ 'Input' : 1,
+ 'Uniform' : 2,
+ 'Output' : 3,
+ 'Workgroup' : 4,
+ 'CrossWorkgroup' : 5,
+ 'Private' : 6,
+ 'Function' : 7,
+ 'Generic' : 8,
+ 'PushConstant' : 9,
+ 'AtomicCounter' : 10,
+ 'Image' : 11,
+ 'StorageBuffer' : 12,
+ },
+
+ 'Dim' : {
+ 'Dim1D' : 0,
+ 'Dim2D' : 1,
+ 'Dim3D' : 2,
+ 'Cube' : 3,
+ 'Rect' : 4,
+ 'Buffer' : 5,
+ 'SubpassData' : 6,
+ },
+
+ 'SamplerAddressingMode' : {
+ 'None' : 0,
+ 'ClampToEdge' : 1,
+ 'Clamp' : 2,
+ 'Repeat' : 3,
+ 'RepeatMirrored' : 4,
+ },
+
+ 'SamplerFilterMode' : {
+ 'Nearest' : 0,
+ 'Linear' : 1,
+ },
+
+ 'ImageFormat' : {
+ 'Unknown' : 0,
+ 'Rgba32f' : 1,
+ 'Rgba16f' : 2,
+ 'R32f' : 3,
+ 'Rgba8' : 4,
+ 'Rgba8Snorm' : 5,
+ 'Rg32f' : 6,
+ 'Rg16f' : 7,
+ 'R11fG11fB10f' : 8,
+ 'R16f' : 9,
+ 'Rgba16' : 10,
+ 'Rgb10A2' : 11,
+ 'Rg16' : 12,
+ 'Rg8' : 13,
+ 'R16' : 14,
+ 'R8' : 15,
+ 'Rgba16Snorm' : 16,
+ 'Rg16Snorm' : 17,
+ 'Rg8Snorm' : 18,
+ 'R16Snorm' : 19,
+ 'R8Snorm' : 20,
+ 'Rgba32i' : 21,
+ 'Rgba16i' : 22,
+ 'Rgba8i' : 23,
+ 'R32i' : 24,
+ 'Rg32i' : 25,
+ 'Rg16i' : 26,
+ 'Rg8i' : 27,
+ 'R16i' : 28,
+ 'R8i' : 29,
+ 'Rgba32ui' : 30,
+ 'Rgba16ui' : 31,
+ 'Rgba8ui' : 32,
+ 'R32ui' : 33,
+ 'Rgb10a2ui' : 34,
+ 'Rg32ui' : 35,
+ 'Rg16ui' : 36,
+ 'Rg8ui' : 37,
+ 'R16ui' : 38,
+ 'R8ui' : 39,
+ },
+
+ 'ImageChannelOrder' : {
+ 'R' : 0,
+ 'A' : 1,
+ 'RG' : 2,
+ 'RA' : 3,
+ 'RGB' : 4,
+ 'RGBA' : 5,
+ 'BGRA' : 6,
+ 'ARGB' : 7,
+ 'Intensity' : 8,
+ 'Luminance' : 9,
+ 'Rx' : 10,
+ 'RGx' : 11,
+ 'RGBx' : 12,
+ 'Depth' : 13,
+ 'DepthStencil' : 14,
+ 'sRGB' : 15,
+ 'sRGBx' : 16,
+ 'sRGBA' : 17,
+ 'sBGRA' : 18,
+ 'ABGR' : 19,
+ },
+
+ 'ImageChannelDataType' : {
+ 'SnormInt8' : 0,
+ 'SnormInt16' : 1,
+ 'UnormInt8' : 2,
+ 'UnormInt16' : 3,
+ 'UnormShort565' : 4,
+ 'UnormShort555' : 5,
+ 'UnormInt101010' : 6,
+ 'SignedInt8' : 7,
+ 'SignedInt16' : 8,
+ 'SignedInt32' : 9,
+ 'UnsignedInt8' : 10,
+ 'UnsignedInt16' : 11,
+ 'UnsignedInt32' : 12,
+ 'HalfFloat' : 13,
+ 'Float' : 14,
+ 'UnormInt24' : 15,
+ 'UnormInt101010_2' : 16,
+ },
+
+ 'ImageOperandsShift' : {
+ 'Bias' : 0,
+ 'Lod' : 1,
+ 'Grad' : 2,
+ 'ConstOffset' : 3,
+ 'Offset' : 4,
+ 'ConstOffsets' : 5,
+ 'Sample' : 6,
+ 'MinLod' : 7,
+ },
+
+ 'ImageOperandsMask' : {
+ 'MaskNone' : 0,
+ 'Bias' : 0x00000001,
+ 'Lod' : 0x00000002,
+ 'Grad' : 0x00000004,
+ 'ConstOffset' : 0x00000008,
+ 'Offset' : 0x00000010,
+ 'ConstOffsets' : 0x00000020,
+ 'Sample' : 0x00000040,
+ 'MinLod' : 0x00000080,
+ },
+
+ 'FPFastMathModeShift' : {
+ 'NotNaN' : 0,
+ 'NotInf' : 1,
+ 'NSZ' : 2,
+ 'AllowRecip' : 3,
+ 'Fast' : 4,
+ },
+
+ 'FPFastMathModeMask' : {
+ 'MaskNone' : 0,
+ 'NotNaN' : 0x00000001,
+ 'NotInf' : 0x00000002,
+ 'NSZ' : 0x00000004,
+ 'AllowRecip' : 0x00000008,
+ 'Fast' : 0x00000010,
+ },
+
+ 'FPRoundingMode' : {
+ 'RTE' : 0,
+ 'RTZ' : 1,
+ 'RTP' : 2,
+ 'RTN' : 3,
+ },
+
+ 'LinkageType' : {
+ 'Export' : 0,
+ 'Import' : 1,
+ },
+
+ 'AccessQualifier' : {
+ 'ReadOnly' : 0,
+ 'WriteOnly' : 1,
+ 'ReadWrite' : 2,
+ },
+
+ 'FunctionParameterAttribute' : {
+ 'Zext' : 0,
+ 'Sext' : 1,
+ 'ByVal' : 2,
+ 'Sret' : 3,
+ 'NoAlias' : 4,
+ 'NoCapture' : 5,
+ 'NoWrite' : 6,
+ 'NoReadWrite' : 7,
+ },
+
+ 'Decoration' : {
+ 'RelaxedPrecision' : 0,
+ 'SpecId' : 1,
+ 'Block' : 2,
+ 'BufferBlock' : 3,
+ 'RowMajor' : 4,
+ 'ColMajor' : 5,
+ 'ArrayStride' : 6,
+ 'MatrixStride' : 7,
+ 'GLSLShared' : 8,
+ 'GLSLPacked' : 9,
+ 'CPacked' : 10,
+ 'BuiltIn' : 11,
+ 'NoPerspective' : 13,
+ 'Flat' : 14,
+ 'Patch' : 15,
+ 'Centroid' : 16,
+ 'Sample' : 17,
+ 'Invariant' : 18,
+ 'Restrict' : 19,
+ 'Aliased' : 20,
+ 'Volatile' : 21,
+ 'Constant' : 22,
+ 'Coherent' : 23,
+ 'NonWritable' : 24,
+ 'NonReadable' : 25,
+ 'Uniform' : 26,
+ 'SaturatedConversion' : 28,
+ 'Stream' : 29,
+ 'Location' : 30,
+ 'Component' : 31,
+ 'Index' : 32,
+ 'Binding' : 33,
+ 'DescriptorSet' : 34,
+ 'Offset' : 35,
+ 'XfbBuffer' : 36,
+ 'XfbStride' : 37,
+ 'FuncParamAttr' : 38,
+ 'FPRoundingMode' : 39,
+ 'FPFastMathMode' : 40,
+ 'LinkageAttributes' : 41,
+ 'NoContraction' : 42,
+ 'InputAttachmentIndex' : 43,
+ 'Alignment' : 44,
+ 'MaxByteOffset' : 45,
+ 'AlignmentId' : 46,
+ 'MaxByteOffsetId' : 47,
+ 'OverrideCoverageNV' : 5248,
+ 'PassthroughNV' : 5250,
+ 'ViewportRelativeNV' : 5252,
+ 'SecondaryViewportRelativeNV' : 5256,
+ },
+
+ 'BuiltIn' : {
+ 'Position' : 0,
+ 'PointSize' : 1,
+ 'ClipDistance' : 3,
+ 'CullDistance' : 4,
+ 'VertexId' : 5,
+ 'InstanceId' : 6,
+ 'PrimitiveId' : 7,
+ 'InvocationId' : 8,
+ 'Layer' : 9,
+ 'ViewportIndex' : 10,
+ 'TessLevelOuter' : 11,
+ 'TessLevelInner' : 12,
+ 'TessCoord' : 13,
+ 'PatchVertices' : 14,
+ 'FragCoord' : 15,
+ 'PointCoord' : 16,
+ 'FrontFacing' : 17,
+ 'SampleId' : 18,
+ 'SamplePosition' : 19,
+ 'SampleMask' : 20,
+ 'FragDepth' : 22,
+ 'HelperInvocation' : 23,
+ 'NumWorkgroups' : 24,
+ 'WorkgroupSize' : 25,
+ 'WorkgroupId' : 26,
+ 'LocalInvocationId' : 27,
+ 'GlobalInvocationId' : 28,
+ 'LocalInvocationIndex' : 29,
+ 'WorkDim' : 30,
+ 'GlobalSize' : 31,
+ 'EnqueuedWorkgroupSize' : 32,
+ 'GlobalOffset' : 33,
+ 'GlobalLinearId' : 34,
+ 'SubgroupSize' : 36,
+ 'SubgroupMaxSize' : 37,
+ 'NumSubgroups' : 38,
+ 'NumEnqueuedSubgroups' : 39,
+ 'SubgroupId' : 40,
+ 'SubgroupLocalInvocationId' : 41,
+ 'VertexIndex' : 42,
+ 'InstanceIndex' : 43,
+ 'SubgroupEqMaskKHR' : 4416,
+ 'SubgroupGeMaskKHR' : 4417,
+ 'SubgroupGtMaskKHR' : 4418,
+ 'SubgroupLeMaskKHR' : 4419,
+ 'SubgroupLtMaskKHR' : 4420,
+ 'BaseVertex' : 4424,
+ 'BaseInstance' : 4425,
+ 'DrawIndex' : 4426,
+ 'DeviceIndex' : 4438,
+ 'ViewIndex' : 4440,
+ 'ViewportMaskNV' : 5253,
+ 'SecondaryPositionNV' : 5257,
+ 'SecondaryViewportMaskNV' : 5258,
+ 'PositionPerViewNV' : 5261,
+ 'ViewportMaskPerViewNV' : 5262,
+ },
+
+ 'SelectionControlShift' : {
+ 'Flatten' : 0,
+ 'DontFlatten' : 1,
+ },
+
+ 'SelectionControlMask' : {
+ 'MaskNone' : 0,
+ 'Flatten' : 0x00000001,
+ 'DontFlatten' : 0x00000002,
+ },
+
+ 'LoopControlShift' : {
+ 'Unroll' : 0,
+ 'DontUnroll' : 1,
+ 'DependencyInfinite' : 2,
+ 'DependencyLength' : 3,
+ },
+
+ 'LoopControlMask' : {
+ 'MaskNone' : 0,
+ 'Unroll' : 0x00000001,
+ 'DontUnroll' : 0x00000002,
+ 'DependencyInfinite' : 0x00000004,
+ 'DependencyLength' : 0x00000008,
+ },
+
+ 'FunctionControlShift' : {
+ 'Inline' : 0,
+ 'DontInline' : 1,
+ 'Pure' : 2,
+ 'Const' : 3,
+ },
+
+ 'FunctionControlMask' : {
+ 'MaskNone' : 0,
+ 'Inline' : 0x00000001,
+ 'DontInline' : 0x00000002,
+ 'Pure' : 0x00000004,
+ 'Const' : 0x00000008,
+ },
+
+ 'MemorySemanticsShift' : {
+ 'Acquire' : 1,
+ 'Release' : 2,
+ 'AcquireRelease' : 3,
+ 'SequentiallyConsistent' : 4,
+ 'UniformMemory' : 6,
+ 'SubgroupMemory' : 7,
+ 'WorkgroupMemory' : 8,
+ 'CrossWorkgroupMemory' : 9,
+ 'AtomicCounterMemory' : 10,
+ 'ImageMemory' : 11,
+ },
+
+ 'MemorySemanticsMask' : {
+ 'MaskNone' : 0,
+ 'Acquire' : 0x00000002,
+ 'Release' : 0x00000004,
+ 'AcquireRelease' : 0x00000008,
+ 'SequentiallyConsistent' : 0x00000010,
+ 'UniformMemory' : 0x00000040,
+ 'SubgroupMemory' : 0x00000080,
+ 'WorkgroupMemory' : 0x00000100,
+ 'CrossWorkgroupMemory' : 0x00000200,
+ 'AtomicCounterMemory' : 0x00000400,
+ 'ImageMemory' : 0x00000800,
+ },
+
+ 'MemoryAccessShift' : {
+ 'Volatile' : 0,
+ 'Aligned' : 1,
+ 'Nontemporal' : 2,
+ },
+
+ 'MemoryAccessMask' : {
+ 'MaskNone' : 0,
+ 'Volatile' : 0x00000001,
+ 'Aligned' : 0x00000002,
+ 'Nontemporal' : 0x00000004,
+ },
+
+ 'Scope' : {
+ 'CrossDevice' : 0,
+ 'Device' : 1,
+ 'Workgroup' : 2,
+ 'Subgroup' : 3,
+ 'Invocation' : 4,
+ },
+
+ 'GroupOperation' : {
+ 'Reduce' : 0,
+ 'InclusiveScan' : 1,
+ 'ExclusiveScan' : 2,
+ },
+
+ 'KernelEnqueueFlags' : {
+ 'NoWait' : 0,
+ 'WaitKernel' : 1,
+ 'WaitWorkGroup' : 2,
+ },
+
+ 'KernelProfilingInfoShift' : {
+ 'CmdExecTime' : 0,
+ },
+
+ 'KernelProfilingInfoMask' : {
+ 'MaskNone' : 0,
+ 'CmdExecTime' : 0x00000001,
+ },
+
+ 'Capability' : {
+ 'Matrix' : 0,
+ 'Shader' : 1,
+ 'Geometry' : 2,
+ 'Tessellation' : 3,
+ 'Addresses' : 4,
+ 'Linkage' : 5,
+ 'Kernel' : 6,
+ 'Vector16' : 7,
+ 'Float16Buffer' : 8,
+ 'Float16' : 9,
+ 'Float64' : 10,
+ 'Int64' : 11,
+ 'Int64Atomics' : 12,
+ 'ImageBasic' : 13,
+ 'ImageReadWrite' : 14,
+ 'ImageMipmap' : 15,
+ 'Pipes' : 17,
+ 'Groups' : 18,
+ 'DeviceEnqueue' : 19,
+ 'LiteralSampler' : 20,
+ 'AtomicStorage' : 21,
+ 'Int16' : 22,
+ 'TessellationPointSize' : 23,
+ 'GeometryPointSize' : 24,
+ 'ImageGatherExtended' : 25,
+ 'StorageImageMultisample' : 27,
+ 'UniformBufferArrayDynamicIndexing' : 28,
+ 'SampledImageArrayDynamicIndexing' : 29,
+ 'StorageBufferArrayDynamicIndexing' : 30,
+ 'StorageImageArrayDynamicIndexing' : 31,
+ 'ClipDistance' : 32,
+ 'CullDistance' : 33,
+ 'ImageCubeArray' : 34,
+ 'SampleRateShading' : 35,
+ 'ImageRect' : 36,
+ 'SampledRect' : 37,
+ 'GenericPointer' : 38,
+ 'Int8' : 39,
+ 'InputAttachment' : 40,
+ 'SparseResidency' : 41,
+ 'MinLod' : 42,
+ 'Sampled1D' : 43,
+ 'Image1D' : 44,
+ 'SampledCubeArray' : 45,
+ 'SampledBuffer' : 46,
+ 'ImageBuffer' : 47,
+ 'ImageMSArray' : 48,
+ 'StorageImageExtendedFormats' : 49,
+ 'ImageQuery' : 50,
+ 'DerivativeControl' : 51,
+ 'InterpolationFunction' : 52,
+ 'TransformFeedback' : 53,
+ 'GeometryStreams' : 54,
+ 'StorageImageReadWithoutFormat' : 55,
+ 'StorageImageWriteWithoutFormat' : 56,
+ 'MultiViewport' : 57,
+ 'SubgroupDispatch' : 58,
+ 'NamedBarrier' : 59,
+ 'PipeStorage' : 60,
+ 'SubgroupBallotKHR' : 4423,
+ 'DrawParameters' : 4427,
+ 'SubgroupVoteKHR' : 4431,
+ 'StorageBuffer16BitAccess' : 4433,
+ 'StorageUniformBufferBlock16' : 4433,
+ 'StorageUniform16' : 4434,
+ 'UniformAndStorageBuffer16BitAccess' : 4434,
+ 'StoragePushConstant16' : 4435,
+ 'StorageInputOutput16' : 4436,
+ 'DeviceGroup' : 4437,
+ 'MultiView' : 4439,
+ 'VariablePointersStorageBuffer' : 4441,
+ 'VariablePointers' : 4442,
+ 'SampleMaskOverrideCoverageNV' : 5249,
+ 'GeometryShaderPassthroughNV' : 5251,
+ 'ShaderViewportIndexLayerNV' : 5254,
+ 'ShaderViewportMaskNV' : 5255,
+ 'ShaderStereoViewNV' : 5259,
+ 'PerViewAttributesNV' : 5260,
+ },
+
+ 'Op' : {
+ 'OpNop' : 0,
+ 'OpUndef' : 1,
+ 'OpSourceContinued' : 2,
+ 'OpSource' : 3,
+ 'OpSourceExtension' : 4,
+ 'OpName' : 5,
+ 'OpMemberName' : 6,
+ 'OpString' : 7,
+ 'OpLine' : 8,
+ 'OpExtension' : 10,
+ 'OpExtInstImport' : 11,
+ 'OpExtInst' : 12,
+ 'OpMemoryModel' : 14,
+ 'OpEntryPoint' : 15,
+ 'OpExecutionMode' : 16,
+ 'OpCapability' : 17,
+ 'OpTypeVoid' : 19,
+ 'OpTypeBool' : 20,
+ 'OpTypeInt' : 21,
+ 'OpTypeFloat' : 22,
+ 'OpTypeVector' : 23,
+ 'OpTypeMatrix' : 24,
+ 'OpTypeImage' : 25,
+ 'OpTypeSampler' : 26,
+ 'OpTypeSampledImage' : 27,
+ 'OpTypeArray' : 28,
+ 'OpTypeRuntimeArray' : 29,
+ 'OpTypeStruct' : 30,
+ 'OpTypeOpaque' : 31,
+ 'OpTypePointer' : 32,
+ 'OpTypeFunction' : 33,
+ 'OpTypeEvent' : 34,
+ 'OpTypeDeviceEvent' : 35,
+ 'OpTypeReserveId' : 36,
+ 'OpTypeQueue' : 37,
+ 'OpTypePipe' : 38,
+ 'OpTypeForwardPointer' : 39,
+ 'OpConstantTrue' : 41,
+ 'OpConstantFalse' : 42,
+ 'OpConstant' : 43,
+ 'OpConstantComposite' : 44,
+ 'OpConstantSampler' : 45,
+ 'OpConstantNull' : 46,
+ 'OpSpecConstantTrue' : 48,
+ 'OpSpecConstantFalse' : 49,
+ 'OpSpecConstant' : 50,
+ 'OpSpecConstantComposite' : 51,
+ 'OpSpecConstantOp' : 52,
+ 'OpFunction' : 54,
+ 'OpFunctionParameter' : 55,
+ 'OpFunctionEnd' : 56,
+ 'OpFunctionCall' : 57,
+ 'OpVariable' : 59,
+ 'OpImageTexelPointer' : 60,
+ 'OpLoad' : 61,
+ 'OpStore' : 62,
+ 'OpCopyMemory' : 63,
+ 'OpCopyMemorySized' : 64,
+ 'OpAccessChain' : 65,
+ 'OpInBoundsAccessChain' : 66,
+ 'OpPtrAccessChain' : 67,
+ 'OpArrayLength' : 68,
+ 'OpGenericPtrMemSemantics' : 69,
+ 'OpInBoundsPtrAccessChain' : 70,
+ 'OpDecorate' : 71,
+ 'OpMemberDecorate' : 72,
+ 'OpDecorationGroup' : 73,
+ 'OpGroupDecorate' : 74,
+ 'OpGroupMemberDecorate' : 75,
+ 'OpVectorExtractDynamic' : 77,
+ 'OpVectorInsertDynamic' : 78,
+ 'OpVectorShuffle' : 79,
+ 'OpCompositeConstruct' : 80,
+ 'OpCompositeExtract' : 81,
+ 'OpCompositeInsert' : 82,
+ 'OpCopyObject' : 83,
+ 'OpTranspose' : 84,
+ 'OpSampledImage' : 86,
+ 'OpImageSampleImplicitLod' : 87,
+ 'OpImageSampleExplicitLod' : 88,
+ 'OpImageSampleDrefImplicitLod' : 89,
+ 'OpImageSampleDrefExplicitLod' : 90,
+ 'OpImageSampleProjImplicitLod' : 91,
+ 'OpImageSampleProjExplicitLod' : 92,
+ 'OpImageSampleProjDrefImplicitLod' : 93,
+ 'OpImageSampleProjDrefExplicitLod' : 94,
+ 'OpImageFetch' : 95,
+ 'OpImageGather' : 96,
+ 'OpImageDrefGather' : 97,
+ 'OpImageRead' : 98,
+ 'OpImageWrite' : 99,
+ 'OpImage' : 100,
+ 'OpImageQueryFormat' : 101,
+ 'OpImageQueryOrder' : 102,
+ 'OpImageQuerySizeLod' : 103,
+ 'OpImageQuerySize' : 104,
+ 'OpImageQueryLod' : 105,
+ 'OpImageQueryLevels' : 106,
+ 'OpImageQuerySamples' : 107,
+ 'OpConvertFToU' : 109,
+ 'OpConvertFToS' : 110,
+ 'OpConvertSToF' : 111,
+ 'OpConvertUToF' : 112,
+ 'OpUConvert' : 113,
+ 'OpSConvert' : 114,
+ 'OpFConvert' : 115,
+ 'OpQuantizeToF16' : 116,
+ 'OpConvertPtrToU' : 117,
+ 'OpSatConvertSToU' : 118,
+ 'OpSatConvertUToS' : 119,
+ 'OpConvertUToPtr' : 120,
+ 'OpPtrCastToGeneric' : 121,
+ 'OpGenericCastToPtr' : 122,
+ 'OpGenericCastToPtrExplicit' : 123,
+ 'OpBitcast' : 124,
+ 'OpSNegate' : 126,
+ 'OpFNegate' : 127,
+ 'OpIAdd' : 128,
+ 'OpFAdd' : 129,
+ 'OpISub' : 130,
+ 'OpFSub' : 131,
+ 'OpIMul' : 132,
+ 'OpFMul' : 133,
+ 'OpUDiv' : 134,
+ 'OpSDiv' : 135,
+ 'OpFDiv' : 136,
+ 'OpUMod' : 137,
+ 'OpSRem' : 138,
+ 'OpSMod' : 139,
+ 'OpFRem' : 140,
+ 'OpFMod' : 141,
+ 'OpVectorTimesScalar' : 142,
+ 'OpMatrixTimesScalar' : 143,
+ 'OpVectorTimesMatrix' : 144,
+ 'OpMatrixTimesVector' : 145,
+ 'OpMatrixTimesMatrix' : 146,
+ 'OpOuterProduct' : 147,
+ 'OpDot' : 148,
+ 'OpIAddCarry' : 149,
+ 'OpISubBorrow' : 150,
+ 'OpUMulExtended' : 151,
+ 'OpSMulExtended' : 152,
+ 'OpAny' : 154,
+ 'OpAll' : 155,
+ 'OpIsNan' : 156,
+ 'OpIsInf' : 157,
+ 'OpIsFinite' : 158,
+ 'OpIsNormal' : 159,
+ 'OpSignBitSet' : 160,
+ 'OpLessOrGreater' : 161,
+ 'OpOrdered' : 162,
+ 'OpUnordered' : 163,
+ 'OpLogicalEqual' : 164,
+ 'OpLogicalNotEqual' : 165,
+ 'OpLogicalOr' : 166,
+ 'OpLogicalAnd' : 167,
+ 'OpLogicalNot' : 168,
+ 'OpSelect' : 169,
+ 'OpIEqual' : 170,
+ 'OpINotEqual' : 171,
+ 'OpUGreaterThan' : 172,
+ 'OpSGreaterThan' : 173,
+ 'OpUGreaterThanEqual' : 174,
+ 'OpSGreaterThanEqual' : 175,
+ 'OpULessThan' : 176,
+ 'OpSLessThan' : 177,
+ 'OpULessThanEqual' : 178,
+ 'OpSLessThanEqual' : 179,
+ 'OpFOrdEqual' : 180,
+ 'OpFUnordEqual' : 181,
+ 'OpFOrdNotEqual' : 182,
+ 'OpFUnordNotEqual' : 183,
+ 'OpFOrdLessThan' : 184,
+ 'OpFUnordLessThan' : 185,
+ 'OpFOrdGreaterThan' : 186,
+ 'OpFUnordGreaterThan' : 187,
+ 'OpFOrdLessThanEqual' : 188,
+ 'OpFUnordLessThanEqual' : 189,
+ 'OpFOrdGreaterThanEqual' : 190,
+ 'OpFUnordGreaterThanEqual' : 191,
+ 'OpShiftRightLogical' : 194,
+ 'OpShiftRightArithmetic' : 195,
+ 'OpShiftLeftLogical' : 196,
+ 'OpBitwiseOr' : 197,
+ 'OpBitwiseXor' : 198,
+ 'OpBitwiseAnd' : 199,
+ 'OpNot' : 200,
+ 'OpBitFieldInsert' : 201,
+ 'OpBitFieldSExtract' : 202,
+ 'OpBitFieldUExtract' : 203,
+ 'OpBitReverse' : 204,
+ 'OpBitCount' : 205,
+ 'OpDPdx' : 207,
+ 'OpDPdy' : 208,
+ 'OpFwidth' : 209,
+ 'OpDPdxFine' : 210,
+ 'OpDPdyFine' : 211,
+ 'OpFwidthFine' : 212,
+ 'OpDPdxCoarse' : 213,
+ 'OpDPdyCoarse' : 214,
+ 'OpFwidthCoarse' : 215,
+ 'OpEmitVertex' : 218,
+ 'OpEndPrimitive' : 219,
+ 'OpEmitStreamVertex' : 220,
+ 'OpEndStreamPrimitive' : 221,
+ 'OpControlBarrier' : 224,
+ 'OpMemoryBarrier' : 225,
+ 'OpAtomicLoad' : 227,
+ 'OpAtomicStore' : 228,
+ 'OpAtomicExchange' : 229,
+ 'OpAtomicCompareExchange' : 230,
+ 'OpAtomicCompareExchangeWeak' : 231,
+ 'OpAtomicIIncrement' : 232,
+ 'OpAtomicIDecrement' : 233,
+ 'OpAtomicIAdd' : 234,
+ 'OpAtomicISub' : 235,
+ 'OpAtomicSMin' : 236,
+ 'OpAtomicUMin' : 237,
+ 'OpAtomicSMax' : 238,
+ 'OpAtomicUMax' : 239,
+ 'OpAtomicAnd' : 240,
+ 'OpAtomicOr' : 241,
+ 'OpAtomicXor' : 242,
+ 'OpPhi' : 245,
+ 'OpLoopMerge' : 246,
+ 'OpSelectionMerge' : 247,
+ 'OpLabel' : 248,
+ 'OpBranch' : 249,
+ 'OpBranchConditional' : 250,
+ 'OpSwitch' : 251,
+ 'OpKill' : 252,
+ 'OpReturn' : 253,
+ 'OpReturnValue' : 254,
+ 'OpUnreachable' : 255,
+ 'OpLifetimeStart' : 256,
+ 'OpLifetimeStop' : 257,
+ 'OpGroupAsyncCopy' : 259,
+ 'OpGroupWaitEvents' : 260,
+ 'OpGroupAll' : 261,
+ 'OpGroupAny' : 262,
+ 'OpGroupBroadcast' : 263,
+ 'OpGroupIAdd' : 264,
+ 'OpGroupFAdd' : 265,
+ 'OpGroupFMin' : 266,
+ 'OpGroupUMin' : 267,
+ 'OpGroupSMin' : 268,
+ 'OpGroupFMax' : 269,
+ 'OpGroupUMax' : 270,
+ 'OpGroupSMax' : 271,
+ 'OpReadPipe' : 274,
+ 'OpWritePipe' : 275,
+ 'OpReservedReadPipe' : 276,
+ 'OpReservedWritePipe' : 277,
+ 'OpReserveReadPipePackets' : 278,
+ 'OpReserveWritePipePackets' : 279,
+ 'OpCommitReadPipe' : 280,
+ 'OpCommitWritePipe' : 281,
+ 'OpIsValidReserveId' : 282,
+ 'OpGetNumPipePackets' : 283,
+ 'OpGetMaxPipePackets' : 284,
+ 'OpGroupReserveReadPipePackets' : 285,
+ 'OpGroupReserveWritePipePackets' : 286,
+ 'OpGroupCommitReadPipe' : 287,
+ 'OpGroupCommitWritePipe' : 288,
+ 'OpEnqueueMarker' : 291,
+ 'OpEnqueueKernel' : 292,
+ 'OpGetKernelNDrangeSubGroupCount' : 293,
+ 'OpGetKernelNDrangeMaxSubGroupSize' : 294,
+ 'OpGetKernelWorkGroupSize' : 295,
+ 'OpGetKernelPreferredWorkGroupSizeMultiple' : 296,
+ 'OpRetainEvent' : 297,
+ 'OpReleaseEvent' : 298,
+ 'OpCreateUserEvent' : 299,
+ 'OpIsValidEvent' : 300,
+ 'OpSetUserEventStatus' : 301,
+ 'OpCaptureEventProfilingInfo' : 302,
+ 'OpGetDefaultQueue' : 303,
+ 'OpBuildNDRange' : 304,
+ 'OpImageSparseSampleImplicitLod' : 305,
+ 'OpImageSparseSampleExplicitLod' : 306,
+ 'OpImageSparseSampleDrefImplicitLod' : 307,
+ 'OpImageSparseSampleDrefExplicitLod' : 308,
+ 'OpImageSparseSampleProjImplicitLod' : 309,
+ 'OpImageSparseSampleProjExplicitLod' : 310,
+ 'OpImageSparseSampleProjDrefImplicitLod' : 311,
+ 'OpImageSparseSampleProjDrefExplicitLod' : 312,
+ 'OpImageSparseFetch' : 313,
+ 'OpImageSparseGather' : 314,
+ 'OpImageSparseDrefGather' : 315,
+ 'OpImageSparseTexelsResident' : 316,
+ 'OpNoLine' : 317,
+ 'OpAtomicFlagTestAndSet' : 318,
+ 'OpAtomicFlagClear' : 319,
+ 'OpImageSparseRead' : 320,
+ 'OpSizeOf' : 321,
+ 'OpTypePipeStorage' : 322,
+ 'OpConstantPipeStorage' : 323,
+ 'OpCreatePipeFromPipeStorage' : 324,
+ 'OpGetKernelLocalSizeForSubgroupCount' : 325,
+ 'OpGetKernelMaxNumSubgroups' : 326,
+ 'OpTypeNamedBarrier' : 327,
+ 'OpNamedBarrierInitialize' : 328,
+ 'OpMemoryNamedBarrier' : 329,
+ 'OpModuleProcessed' : 330,
+ 'OpExecutionModeId' : 331,
+ 'OpDecorateId' : 332,
+ 'OpSubgroupBallotKHR' : 4421,
+ 'OpSubgroupFirstInvocationKHR' : 4422,
+ 'OpSubgroupAllKHR' : 4428,
+ 'OpSubgroupAnyKHR' : 4429,
+ 'OpSubgroupAllEqualKHR' : 4430,
+ 'OpSubgroupReadInvocationKHR' : 4432,
+ },
+
+}
+