Switch to SPIRV-Headers from subtree.

Use the SPIRV-Headers files from the subtree copy in third_party,
instead of the ones in include/spirv.

Bug b/123642959

Change-Id: I79f77d2f659d5623583b2de40536dec0c79e2f7f
Reviewed-on: https://swiftshader-review.googlesource.com/c/24348
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7da2b52..8f38bc3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2180,6 +2180,10 @@
 endif()
 
 if(BUILD_VULKAN)
+    # This variable is also used by SPIRV-Tools to locate SPIRV-Headers
+    set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/SPIRV-Headers")
+    list(APPEND VULKAN_INCLUDE_DIR "${SPIRV-Headers_SOURCE_DIR}/include")
+
     add_library(libvk_swiftshader SHARED ${VULKAN_LIST})
     set_target_properties(libvk_swiftshader PROPERTIES
         INCLUDE_DIRECTORIES "${VULKAN_INCLUDE_DIR}"
diff --git a/include/spirv/unified1/GLSL.std.450.h b/include/spirv/unified1/GLSL.std.450.h
deleted file mode 100644
index 54cc00e..0000000
--- a/include/spirv/unified1/GLSL.std.450.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
-** 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/unified1/OpenCL.std.h b/include/spirv/unified1/OpenCL.std.h
deleted file mode 100644
index fe759e1..0000000
--- a/include/spirv/unified1/OpenCL.std.h
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
-** 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.
-*/
-
-#ifndef OPENCLstd_H
-#define OPENCLstd_H
-
-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
-
-#endif  // #ifndef OPENCLstd_H
diff --git a/include/spirv/unified1/extinst.glsl.std.450.grammar.json b/include/spirv/unified1/extinst.glsl.std.450.grammar.json
deleted file mode 100644
index 3d9f39e..0000000
--- a/include/spirv/unified1/extinst.glsl.std.450.grammar.json
+++ /dev/null
@@ -1,642 +0,0 @@
-{
-  "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/unified1/extinst.opencl.std.100.grammar.json b/include/spirv/unified1/extinst.opencl.std.100.grammar.json
deleted file mode 100644
index 4fe4506..0000000
--- a/include/spirv/unified1/extinst.opencl.std.100.grammar.json
+++ /dev/null
@@ -1,1279 +0,0 @@
-{
-  "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/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
deleted file mode 100755
index cd17859..0000000
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ /dev/null
@@ -1,7467 +0,0 @@
-{
-  "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" : 3,
-  "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" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpImageSparseSampleProjExplicitLod",
-      "opcode" : 310,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef",         "name" : "'Sampled Image'" },
-        { "kind" : "IdRef",         "name" : "'Coordinate'" },
-        { "kind" : "ImageOperands" }
-      ],
-      "capabilities" : [ "SparseResidency" ],
-      "version" : "None"
-    },
-    {
-      "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" ],
-      "version" : "None"
-    },
-    {
-      "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" ],
-      "version" : "None"
-    },
-    {
-      "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" ],
-      "version" : "1.1"
-    },
-    {
-      "opname" : "OpTypePipeStorage",
-      "opcode" : 322,
-      "operands" : [
-        { "kind" : "IdResult" }
-      ],
-      "capabilities" : [ "PipeStorage" ],
-      "version" : "1.1"
-    },
-    {
-      "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" ],
-      "version" : "1.1"
-    },
-    {
-      "opname" : "OpCreatePipeFromPipeStorage",
-      "opcode" : 324,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Pipe Storage'" }
-      ],
-      "capabilities" : [ "PipeStorage" ],
-      "version" : "1.1"
-    },
-    {
-      "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" ],
-      "version" : "1.1"
-    },
-    {
-      "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" ],
-      "version" : "1.1"
-    },
-    {
-      "opname" : "OpTypeNamedBarrier",
-      "opcode" : 327,
-      "operands" : [
-        { "kind" : "IdResult" }
-      ],
-      "capabilities" : [ "NamedBarrier" ],
-      "version" : "1.1"
-    },
-    {
-      "opname" : "OpNamedBarrierInitialize",
-      "opcode" : 328,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Subgroup Count'" }
-      ],
-      "capabilities" : [ "NamedBarrier" ],
-      "version" : "1.1"
-    },
-    {
-      "opname" : "OpMemoryNamedBarrier",
-      "opcode" : 329,
-      "operands" : [
-        { "kind" : "IdRef", "name" : "'Named Barrier'" },
-        { "kind" : "IdScope", "name" : "'Memory'" },
-        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
-      ],
-      "capabilities" : [ "NamedBarrier" ],
-      "version" : "1.1"
-    },
-    {
-      "opname" : "OpModuleProcessed",
-      "opcode" : 330,
-      "operands" : [
-        { "kind" : "LiteralString", "name" : "'Process'" }
-      ],
-      "version" : "1.1"
-    },
-    {
-      "opname" : "OpExecutionModeId",
-      "opcode" : 331,
-      "operands" : [
-        { "kind" : "IdRef", "name" : "'Entry Point'" },
-        { "kind" : "ExecutionMode", "name" : "'Mode'" }
-      ],
-      "version" : "1.2"
-    },
-    {
-      "opname" : "OpDecorateId",
-      "opcode" : 332,
-      "operands" : [
-        { "kind" : "IdRef", "name" : "'Target'" },
-        { "kind" : "Decoration" }
-      ],
-      "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
-      "version" : "1.2"
-    },
-    {
-      "opname" : "OpGroupNonUniformElect",
-      "opcode" : 333,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" }
-      ],
-      "capabilities" : [ "GroupNonUniform" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformAll",
-      "opcode" : 334,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Predicate'" }
-      ],
-      "capabilities" : [ "GroupNonUniformVote" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformAny",
-      "opcode" : 335,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Predicate'" }
-      ],
-      "capabilities" : [ "GroupNonUniformVote" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformAllEqual",
-      "opcode" : 336,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Value'" }
-      ],
-      "capabilities" : [ "GroupNonUniformVote" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformBroadcast",
-      "opcode" : 337,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'Id'" }
-      ],
-      "capabilities" : [ "GroupNonUniformBallot" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformBroadcastFirst",
-      "opcode" : 338,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Value'" }
-      ],
-      "capabilities" : [ "GroupNonUniformBallot" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformBallot",
-      "opcode" : 339,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Predicate'" }
-      ],
-      "capabilities" : [ "GroupNonUniformBallot" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformInverseBallot",
-      "opcode" : 340,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Value'" }
-      ],
-      "capabilities" : [ "GroupNonUniformBallot" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformBallotBitExtract",
-      "opcode" : 341,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'Index'" }
-      ],
-      "capabilities" : [ "GroupNonUniformBallot" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformBallotBitCount",
-      "opcode" : 342,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" }
-      ],
-      "capabilities" : [ "GroupNonUniformBallot" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformBallotFindLSB",
-      "opcode" : 343,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Value'" }
-      ],
-      "capabilities" : [ "GroupNonUniformBallot" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformBallotFindMSB",
-      "opcode" : 344,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Value'" }
-      ],
-      "capabilities" : [ "GroupNonUniformBallot" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformShuffle",
-      "opcode" : 345,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'Id'" }
-      ],
-      "capabilities" : [ "GroupNonUniformShuffle" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformShuffleXor",
-      "opcode" : 346,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'Mask'" }
-      ],
-      "capabilities" : [ "GroupNonUniformShuffle" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformShuffleUp",
-      "opcode" : 347,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'Delta'" }
-      ],
-      "capabilities" : [ "GroupNonUniformShuffleRelative" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformShuffleDown",
-      "opcode" : 348,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'Delta'" }
-      ],
-      "capabilities" : [ "GroupNonUniformShuffleRelative" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformIAdd",
-      "opcode" : 349,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformFAdd",
-      "opcode" : 350,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformIMul",
-      "opcode" : 351,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformFMul",
-      "opcode" : 352,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformSMin",
-      "opcode" : 353,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformUMin",
-      "opcode" : 354,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformFMin",
-      "opcode" : 355,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformSMax",
-      "opcode" : 356,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformUMax",
-      "opcode" : 357,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformFMax",
-      "opcode" : 358,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformBitwiseAnd",
-      "opcode" : 359,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformBitwiseOr",
-      "opcode" : 360,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformBitwiseXor",
-      "opcode" : 361,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformLogicalAnd",
-      "opcode" : 362,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformLogicalOr",
-      "opcode" : 363,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformLogicalXor",
-      "opcode" : 364,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformQuadBroadcast",
-      "opcode" : 365,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'Index'" }
-      ],
-      "capabilities" : [ "GroupNonUniformQuad" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpGroupNonUniformQuadSwap",
-      "opcode" : 366,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope", "name" : "'Execution'" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'Direction'" }
-      ],
-      "capabilities" : [ "GroupNonUniformQuad" ],
-      "version" : "1.3"
-    },
-    {
-      "opname" : "OpSubgroupBallotKHR",
-      "opcode" : 4421,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Predicate'" }
-      ],
-      "capabilities" : [ "SubgroupBallotKHR" ],
-      "extensions" : [ "SPV_KHR_shader_ballot" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpSubgroupFirstInvocationKHR",
-      "opcode" : 4422,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Value'" }
-      ],
-      "capabilities" : [ "SubgroupBallotKHR" ],
-      "extensions" : [ "SPV_KHR_shader_ballot" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpSubgroupAllKHR",
-      "opcode" : 4428,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Predicate'" }
-      ],
-      "extensions" : [
-        "SPV_KHR_subgroup_vote"
-      ],
-      "capabilities" : [ "SubgroupVoteKHR" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpSubgroupAnyKHR",
-      "opcode" : 4429,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Predicate'" }
-      ],
-      "extensions" : [
-        "SPV_KHR_subgroup_vote"
-      ],
-      "capabilities" : [ "SubgroupVoteKHR" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpSubgroupAllEqualKHR",
-      "opcode" : 4430,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Predicate'" }
-      ],
-      "extensions" : [
-        "SPV_KHR_subgroup_vote"
-      ],
-      "capabilities" : [ "SubgroupVoteKHR" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpSubgroupReadInvocationKHR",
-      "opcode" : 4432,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Value'" },
-        { "kind" : "IdRef", "name" : "'Index'" }
-      ],
-      "capabilities" : [ "SubgroupBallotKHR" ],
-      "extensions" : [ "SPV_KHR_shader_ballot" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpGroupIAddNonUniformAMD",
-      "opcode" : 5000,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope",        "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef",          "name" : "'X'" }
-      ],
-      "capabilities" : [ "Groups" ],
-      "extensions" : [ "SPV_AMD_shader_ballot" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpGroupFAddNonUniformAMD",
-      "opcode" : 5001,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope",        "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef",          "name" : "'X'" }
-      ],
-      "capabilities" : [ "Groups" ],
-      "extensions" : [ "SPV_AMD_shader_ballot" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpGroupFMinNonUniformAMD",
-      "opcode" : 5002,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope",        "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef",          "name" : "'X'" }
-      ],
-      "capabilities" : [ "Groups" ],
-      "extensions" : [ "SPV_AMD_shader_ballot" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpGroupUMinNonUniformAMD",
-      "opcode" : 5003,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope",        "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef",          "name" : "'X'" }
-      ],
-      "capabilities" : [ "Groups" ],
-      "extensions" : [ "SPV_AMD_shader_ballot" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpGroupSMinNonUniformAMD",
-      "opcode" : 5004,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope",        "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef",          "name" : "'X'" }
-      ],
-      "capabilities" : [ "Groups" ],
-      "extensions" : [ "SPV_AMD_shader_ballot" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpGroupFMaxNonUniformAMD",
-      "opcode" : 5005,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope",        "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef",          "name" : "'X'" }
-      ],
-      "capabilities" : [ "Groups" ],
-      "extensions" : [ "SPV_AMD_shader_ballot" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpGroupUMaxNonUniformAMD",
-      "opcode" : 5006,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope",        "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef",          "name" : "'X'" }
-      ],
-      "capabilities" : [ "Groups" ],
-      "extensions" : [ "SPV_AMD_shader_ballot" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpGroupSMaxNonUniformAMD",
-      "opcode" : 5007,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdScope",        "name" : "'Execution'" },
-        { "kind" : "GroupOperation", "name" : "'Operation'" },
-        { "kind" : "IdRef",          "name" : "'X'" }
-      ],
-      "capabilities" : [ "Groups" ],
-      "extensions" : [ "SPV_AMD_shader_ballot" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpFragmentMaskFetchAMD",
-      "opcode" : 5011,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Image'" },
-        { "kind" : "IdRef", "name" : "'Coordinate'" }
-      ],
-      "capabilities" : [ "FragmentMaskAMD" ],
-      "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpFragmentFetchAMD",
-      "opcode" : 5012,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Image'" },
-        { "kind" : "IdRef", "name" : "'Coordinate'" },
-        { "kind" : "IdRef", "name" : "'Fragment Index'" }
-      ],
-      "capabilities" : [ "FragmentMaskAMD" ],
-      "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpWritePackedPrimitiveIndices4x8NV",
-      "opcode" : 5299,
-      "operands" : [
-        { "kind" : "IdRef", "name" : "'Index Offset'" },
-        { "kind" : "IdRef", "name" : "'Packed Indices'" }
-      ],
-      "capabilities" : [ "MeshShadingNV" ],
-      "extensions" : [ "SPV_NV_mesh_shader" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpReportIntersectionNV",
-      "opcode" : 5334,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Hit'" },
-        { "kind" : "IdRef", "name" : "'HitKind'" }
-      ],
-      "capabilities" : [ "RayTracingNV" ],
-      "extensions" : [ "SPV_NV_ray_tracing" ]
-    },
-    {
-      "opname" : "OpIgnoreIntersectionNV",
-      "opcode" : 5335,
-
-      "capabilities" : [ "RayTracingNV" ],
-      "extensions" : [ "SPV_NV_ray_tracing" ]
-    },
-    {
-      "opname" : "OpTerminateRayNV",
-      "opcode" : 5336,
-
-      "capabilities" : [ "RayTracingNV" ],
-      "extensions" : [ "SPV_NV_ray_tracing" ]
-    },
-    {
-      "opname" : "OpTraceNV",
-      "opcode" : 5337,
-      "operands" : [
-
-        { "kind" : "IdRef", "name" : "'Accel'" },
-        { "kind" : "IdRef", "name" : "'Ray Flags'" },
-        { "kind" : "IdRef", "name" : "'Cull Mask'" },
-        { "kind" : "IdRef", "name" : "'SBT Offset'" },
-        { "kind" : "IdRef", "name" : "'SBT Stride'" },
-        { "kind" : "IdRef", "name" : "'Miss Index'" },
-        { "kind" : "IdRef", "name" : "'Ray Origin'" },
-        { "kind" : "IdRef", "name" : "'Ray Tmin'" },
-        { "kind" : "IdRef", "name" : "'Ray Direction'" },
-        { "kind" : "IdRef", "name" : "'Ray Tmax'" },
-        { "kind" : "IdRef", "name" : "'PayloadId'" }
-      ],
-      "capabilities" : [ "RayTracingNV" ],
-      "extensions" : [ "SPV_NV_ray_tracing" ]
-    },
-    {
-      "opname" : "OpTypeAccelerationStructureNV",
-      "opcode" : 5341,
-      "operands" : [
-        { "kind" : "IdResult" }
-      ],
-      "capabilities" : [ "RayTracingNV" ],
-      "extensions" : [ "SPV_NV_ray_tracing" ]
-    },
-    {
-      "opname" : "OpExecuteCallableNV",
-      "opcode" : 5344,
-      "operands" : [
-
-        { "kind" : "IdRef", "name" : "'SBT Index'" },
-        { "kind" : "IdRef", "name" : "'Callable DataId'" }
-      ],
-      "capabilities" : [ "RayTracingNV" ],
-      "extensions" : [ "SPV_NV_ray_tracing" ]
-    },
-    {
-      "opname" : "OpSubgroupShuffleINTEL",
-      "opcode" : 5571,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Data'" },
-        { "kind" : "IdRef", "name" : "'InvocationId'" }
-      ],
-      "capabilities" : [ "SubgroupShuffleINTEL" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpSubgroupShuffleDownINTEL",
-      "opcode" : 5572,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Current'" },
-        { "kind" : "IdRef", "name" : "'Next'" },
-        { "kind" : "IdRef", "name" : "'Delta'" }
-      ],
-      "capabilities" : [ "SubgroupShuffleINTEL" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpSubgroupShuffleUpINTEL",
-      "opcode" : 5573,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Previous'" },
-        { "kind" : "IdRef", "name" : "'Current'" },
-        { "kind" : "IdRef", "name" : "'Delta'" }
-      ],
-      "capabilities" : [ "SubgroupShuffleINTEL" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpSubgroupShuffleXorINTEL",
-      "opcode" : 5574,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Data'" },
-        { "kind" : "IdRef", "name" : "'Value'" }
-      ],
-      "capabilities" : [ "SubgroupShuffleINTEL" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpSubgroupBlockReadINTEL",
-      "opcode" : 5575,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Ptr'" }
-      ],
-      "capabilities" : [ "SubgroupBufferBlockIOINTEL" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpSubgroupBlockWriteINTEL",
-      "opcode" : 5576,
-      "operands" : [
-        { "kind" : "IdRef", "name" : "'Ptr'" },
-        { "kind" : "IdRef", "name" : "'Data'" }
-      ],
-      "capabilities" : [ "SubgroupBufferBlockIOINTEL" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpSubgroupImageBlockReadINTEL",
-      "opcode" : 5577,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Image'" },
-        { "kind" : "IdRef", "name" : "'Coordinate'" }
-      ],
-      "capabilities" : [ "SubgroupImageBlockIOINTEL" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpSubgroupImageBlockWriteINTEL",
-      "opcode" : 5578,
-      "operands" : [
-        { "kind" : "IdRef", "name" : "'Image'" },
-        { "kind" : "IdRef", "name" : "'Coordinate'" },
-        { "kind" : "IdRef", "name" : "'Data'" }
-      ],
-      "capabilities" : [ "SubgroupImageBlockIOINTEL" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpDecorateStringGOOGLE",
-      "opcode" : 5632,
-      "operands" : [
-        { "kind" : "IdRef",         "name" : "'Target'" },
-        { "kind" : "Decoration" }
-      ],
-      "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpMemberDecorateStringGOOGLE",
-      "opcode" : 5633,
-      "operands" : [
-        { "kind" : "IdRef",          "name" : "'Struct Type'" },
-        { "kind" : "LiteralInteger", "name" : "'Member'" },
-        { "kind" : "Decoration" }
-      ],
-      "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpGroupNonUniformPartitionNV",
-      "opcode" : 5296,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Value'" }
-      ],
-      "capabilities" : [ "GroupNonUniformPartitionedNV" ],
-      "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
-      "version" : "None"
-    },
-	{
-      "opname" : "OpImageSampleFootprintNV",
-      "opcode" : 5283,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Sampled Image'" },
-        { "kind" : "IdRef", "name" : "'Coordinate'" },
-        { "kind" : "IdRef", "name" : "'Granularity'" },
-        { "kind" : "IdRef", "name" : "'Coarse'" },
-        { "kind" : "ImageOperands", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "ImageFootprintNV" ],
-      "extensions" : [ "SPV_NV_shader_image_footprint" ],
-      "version" : "None"
-    }
-  ],
-  "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",
-          "capabilities" : [ "ImageGatherExtended" ],
-          "parameters" : [
-            { "kind" : "IdRef" }
-          ]
-        },
-        {
-          "enumerant" : "Sample",
-          "value" : "0x0040",
-          "parameters" : [
-            { "kind" : "IdRef" }
-          ]
-        },
-        {
-          "enumerant" : "MinLod",
-          "value" : "0x0080",
-          "capabilities" : [ "MinLod" ],
-          "parameters" : [
-            { "kind" : "IdRef" }
-          ]
-        },
-        {
-          "enumerant" : "MakeTexelAvailableKHR",
-          "value" : "0x0100",
-          "capabilities" : [ "VulkanMemoryModelKHR" ],
-          "parameters" : [
-            { "kind" : "IdScope" }
-          ]
-        },
-        {
-          "enumerant" : "MakeTexelVisibleKHR",
-          "value" : "0x0200",
-          "capabilities" : [ "VulkanMemoryModelKHR" ],
-          "parameters" : [
-            { "kind" : "IdScope" }
-          ]
-        },
-        {
-          "enumerant" : "NonPrivateTexelKHR",
-          "value" : "0x0400",
-          "capabilities" : [ "VulkanMemoryModelKHR" ]
-        },
-        {
-          "enumerant" : "VolatileTexelKHR",
-          "value" : "0x0800",
-          "capabilities" : [ "VulkanMemoryModelKHR" ]
-        }
-      ]
-    },
-    {
-      "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",
-          "version" : "1.1"
-        },
-        {
-          "enumerant" : "DependencyLength",
-          "value" : "0x0008",
-          "parameters" : [
-            { "kind" : "LiteralInteger" }
-          ],
-          "version" : "1.1"
-        }
-      ]
-    },
-    {
-      "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"
-        },
-        {
-          "enumerant" : "OutputMemoryKHR",
-          "value" : "0x1000",
-          "capabilities" : [ "VulkanMemoryModelKHR" ]
-        },
-        {
-          "enumerant" : "MakeAvailableKHR",
-          "value" : "0x2000",
-          "capabilities" : [ "VulkanMemoryModelKHR" ]
-        },
-        {
-          "enumerant" : "MakeVisibleKHR",
-          "value" : "0x4000",
-          "capabilities" : [ "VulkanMemoryModelKHR" ]
-        }
-      ]
-    },
-    {
-      "category" : "BitEnum",
-      "kind" : "MemoryAccess",
-      "enumerants" : [
-        {
-          "enumerant" : "None",
-          "value" : "0x0000"
-        },
-        {
-          "enumerant" : "Volatile",
-          "value" : "0x0001"
-        },
-        {
-          "enumerant" : "Aligned",
-          "value" : "0x0002",
-          "parameters" : [
-            { "kind" : "LiteralInteger" }
-          ]
-        },
-        {
-          "enumerant" : "Nontemporal",
-          "value" : "0x0004"
-        },
-        {
-          "enumerant" : "MakePointerAvailableKHR",
-          "value" : "0x0008",
-          "parameters" : [
-            { "kind" : "IdScope" }
-          ],
-          "capabilities" : [ "VulkanMemoryModelKHR" ]
-        },
-        {
-          "enumerant" : "MakePointerVisibleKHR",
-          "value" : "0x0010",
-          "parameters" : [
-            { "kind" : "IdScope" }
-          ],
-          "capabilities" : [ "VulkanMemoryModelKHR" ]
-        },
-        {
-          "enumerant" : "NonPrivatePointerKHR",
-          "value" : "0x0020",
-          "capabilities" : [ "VulkanMemoryModelKHR" ]
-        }
-      ]
-    },
-    {
-      "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" ]
-        },
-        {
-          "enumerant" : "TaskNV",
-          "value" : 5267,
-          "capabilities" : [ "MeshShadingNV" ]
-        },
-        {
-          "enumerant" : "MeshNV",
-          "value" : 5268,
-          "capabilities" : [ "MeshShadingNV" ]
-        },
-        {
-          "enumerant" : "RayGenerationNV",
-          "value" : 5313,
-          "capabilities" : [ "RayTracingNV" ]
-        },
-        {
-          "enumerant" : "IntersectionNV",
-          "value" : 5314,
-          "capabilities" : [ "RayTracingNV" ]
-        },
-        {
-          "enumerant" : "AnyHitNV",
-          "value" : 5315,
-          "capabilities" : [ "RayTracingNV" ]
-        },
-        {
-          "enumerant" : "ClosestHitNV",
-          "value" : 5316,
-          "capabilities" : [ "RayTracingNV" ]
-        },
-        {
-          "enumerant" : "MissNV",
-          "value" : 5317,
-          "capabilities" : [ "RayTracingNV" ]
-        },
-        {
-          "enumerant" : "CallableNV",
-          "value" : 5318,
-          "capabilities" : [ "RayTracingNV" ]
-        }
-      ]
-    },
-    {
-      "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" ]
-        },
-        {
-          "enumerant" : "VulkanKHR",
-          "value" : 3,
-          "capabilities" : [ "VulkanMemoryModelKHR" ]
-        }
-      ]
-    },
-    {
-      "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", "MeshShadingNV" ],
-          "parameters" : [
-            { "kind" : "LiteralInteger", "name" : "'Vertex count'" }
-          ]
-        },
-        {
-          "enumerant" : "OutputPoints",
-          "value" : 27,
-          "capabilities" : [ "Geometry", "MeshShadingNV" ]
-        },
-        {
-          "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" ],
-          "version" : "1.1"
-        },
-        {
-          "enumerant" : "Finalizer",
-          "value" : 34,
-          "capabilities" : [ "Kernel" ],
-          "version" : "1.1"
-        },
-        {
-          "enumerant" : "SubgroupSize",
-          "value" : 35,
-          "capabilities" : [ "SubgroupDispatch" ],
-          "parameters" : [
-            { "kind" : "LiteralInteger", "name" : "'Subgroup Size'" }
-          ],
-          "version" : "1.1"
-        },
-        {
-          "enumerant" : "SubgroupsPerWorkgroup",
-          "value" : 36,
-          "capabilities" : [ "SubgroupDispatch" ],
-          "parameters" : [
-            { "kind" : "LiteralInteger", "name" : "'Subgroups Per Workgroup'" }
-          ],
-          "version" : "1.1"
-        },
-        {
-          "enumerant" : "SubgroupsPerWorkgroupId",
-          "value" : 37,
-          "capabilities" : [ "SubgroupDispatch" ],
-          "parameters" : [
-            { "kind" : "IdRef", "name" : "'Subgroups Per Workgroup'" }
-          ],
-          "version" : "1.2"
-        },
-        {
-          "enumerant" : "LocalSizeId",
-          "value" : 38,
-          "parameters" : [
-            { "kind" : "IdRef", "name" : "'x size'" },
-            { "kind" : "IdRef", "name" : "'y size'" },
-            { "kind" : "IdRef", "name" : "'z size'" }
-          ],
-          "version" : "1.2"
-        },
-        {
-          "enumerant" : "LocalSizeHintId",
-          "value" : 39,
-          "capabilities" : [ "Kernel" ],
-          "parameters" : [
-            { "kind" : "IdRef", "name" : "'Local Size Hint'" }
-          ],
-          "version" : "1.2"
-        },
-        {
-          "enumerant" : "PostDepthCoverage",
-          "value" : 4446,
-          "capabilities" : [ "SampleMaskPostDepthCoverage" ],
-          "extensions" : [ "SPV_KHR_post_depth_coverage" ],
-          "version" : "None"
-        },
-{
-          "enumerant" : "DenormPreserve",
-          "value" : 4459,
-          "capabilities" : [ "DenormPreserve"],
-          "extensions" : [ "SPV_KHR_float_controls" ],
-          "parameters" : [
-            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
-          ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "DenormFlushToZero",
-          "value" : 4460,
-          "capabilities" : [ "DenormFlushToZero"],
-          "extensions" : [ "SPV_KHR_float_controls" ],
-          "parameters" : [
-            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
-          ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "SignedZeroInfNanPreserve",
-          "value" : 4461,
-          "capabilities" : [ "SignedZeroInfNanPreserve"],
-          "extensions" : [ "SPV_KHR_float_controls" ],
-          "parameters" : [
-            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
-          ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "RoundingModeRTE",
-          "value" : 4462,
-          "capabilities" : [ "RoundingModeRTE"],
-          "extensions" : [ "SPV_KHR_float_controls" ],
-          "parameters" : [
-            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
-          ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "RoundingModeRTZ",
-          "value" : 4463,
-          "capabilities" : [ "RoundingModeRTZ"],
-          "extensions" : [ "SPV_KHR_float_controls" ],
-          "parameters" : [
-            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
-          ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "StencilRefReplacingEXT",
-          "value" : 5027,
-          "capabilities" : [ "StencilExportEXT" ],
-          "extensions" : [ "SPV_EXT_shader_stencil_export" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "OutputLinesNV",
-          "value" : 5269,
-          "capabilities" : [ "MeshShadingNV" ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "OutputPrimitivesNV",
-          "value" : 5270,
-          "capabilities" : [ "MeshShadingNV" ],
-          "parameters" : [
-            { "kind" : "LiteralInteger", "name" : "'Primitive count'" }
-          ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "DerivativeGroupQuadsNV",
-          "value" : 5289,
-          "capabilities" : [ "ComputeDerivativeGroupQuadsNV" ],
-          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "DerivativeGroupLinearNV",
-          "value" : 5290,
-          "capabilities" : [ "ComputeDerivativeGroupLinearNV" ],
-          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "OutputTrianglesNV",
-          "value" : 5298,
-          "capabilities" : [ "MeshShadingNV" ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        }
-      ]
-    },
-    {
-      "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"
-          ],
-          "capabilities" : [ "Shader" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "CallableDataNV",
-          "value" : 5328,
-          "extensions" : [ "SPV_NV_ray_tracing" ],
-          "capabilities" : [ "RayTracingNV" ]
-        },
-        {
-          "enumerant" : "IncomingCallableDataNV",
-          "value" : 5329,
-          "extensions" : [ "SPV_NV_ray_tracing" ],
-          "capabilities" : [ "RayTracingNV" ]
-        },
-        {
-          "enumerant" : "RayPayloadNV",
-          "value" : 5338,
-          "extensions" : [ "SPV_NV_ray_tracing" ],
-          "capabilities" : [ "RayTracingNV" ]
-        },
-        {
-          "enumerant" : "HitAttributeNV",
-          "value" : 5339,
-          "extensions" : [ "SPV_NV_ray_tracing" ],
-          "capabilities" : [ "RayTracingNV" ]
-        },
-        {
-          "enumerant" : "IncomingRayPayloadNV",
-          "value" : 5342,
-          "extensions" : [ "SPV_NV_ray_tracing" ],
-          "capabilities" : [ "RayTracingNV" ]
-        },
-        {
-          "enumerant" : "ShaderRecordBufferNV",
-          "value" : 5343,
-          "extensions" : [ "SPV_NV_ray_tracing" ],
-          "capabilities" : [ "RayTracingNV" ]
-        }
-      ]
-    },
-    {
-      "category" : "ValueEnum",
-      "kind" : "Dim",
-      "enumerants" : [
-        {
-          "enumerant" : "1D",
-          "value" : 0,
-          "capabilities" : [ "Sampled1D", "Image1D" ]
-        },
-        {
-          "enumerant" : "2D",
-          "value" : 1,
-          "capabilities" : [ "Shader", "Kernel", "ImageMSArray" ]
-        },
-        {
-          "enumerant" : "3D",
-          "value" : 2
-        },
-        {
-          "enumerant" : "Cube",
-          "value" : 3,
-          "capabilities" : [ "Shader", "ImageCubeArray" ]
-        },
-        {
-          "enumerant" : "Rect",
-          "value" : 4,
-          "capabilities" : [ "SampledRect", "ImageRect" ]
-        },
-        {
-          "enumerant" : "Buffer",
-          "value" : 5,
-          "capabilities" : [ "SampledBuffer", "ImageBuffer" ]
-        },
-        {
-          "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
-        },
-        {
-          "enumerant" : "RTZ",
-          "value" : 1
-        },
-        {
-          "enumerant" : "RTP",
-          "value" : 2
-        },
-        {
-          "enumerant" : "RTN",
-          "value" : 3
-        }
-      ]
-    },
-    {
-      "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,
-          "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'" }
-          ],
-          "version" : "1.1"
-        },
-        {
-          "enumerant" : "AlignmentId",
-          "value" : 46,
-          "capabilities" : [ "Kernel" ],
-          "parameters" : [
-            { "kind" : "IdRef", "name" : "'Alignment'" }
-          ],
-          "version" : "1.2"
-        },
-        {
-          "enumerant" : "MaxByteOffsetId",
-          "value" : 47,
-          "capabilities" : [ "Addresses" ],
-          "parameters" : [
-            { "kind" : "IdRef", "name" : "'Max Byte Offset'" }
-          ],
-          "version" : "1.2"
-        },
-        {
-          "enumerant" : "NoSignedWrap",
-          "value" : 4469,
-          "extensions" : [ "SPV_KHR_no_integer_wrap_decoration" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "NoUnsignedWrap",
-          "value" : 4470,
-          "extensions" : [ "SPV_KHR_no_integer_wrap_decoration" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ExplicitInterpAMD",
-          "value" : 4999,
-          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "OverrideCoverageNV",
-          "value" : 5248,
-          "capabilities" : [ "SampleMaskOverrideCoverageNV" ],
-          "extensions" : [ "SPV_NV_sample_mask_override_coverage" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "PassthroughNV",
-          "value" : 5250,
-          "capabilities" : [ "GeometryShaderPassthroughNV" ],
-          "extensions" : [ "SPV_NV_geometry_shader_passthrough" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ViewportRelativeNV",
-          "value" : 5252,
-          "capabilities" : [ "ShaderViewportMaskNV" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "SecondaryViewportRelativeNV",
-          "value" : 5256,
-          "capabilities" : [ "ShaderStereoViewNV" ],
-          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
-          "version" : "None",
-          "parameters" : [
-            { "kind" : "LiteralInteger", "name" : "'Offset'" }
-          ]
-        },
-        {
-          "enumerant" : "PerPrimitiveNV",
-          "value" : 5271,
-          "capabilities" : [ "MeshShadingNV" ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "PerViewNV",
-          "value" : 5272,
-          "capabilities" : [ "MeshShadingNV" ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "PerTaskNV",
-          "value" : 5273,
-          "capabilities" : [ "MeshShadingNV" ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-		{
-          "enumerant" : "PerVertexNV",
-          "value" : 5285,
-          "capabilities" : [ "FragmentBarycentricNV" ],
-          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "NonUniformEXT",
-          "value" : 5300,
-          "capabilities" : [ "ShaderNonUniformEXT" ]
-        },
-        {
-          "enumerant" : "HlslCounterBufferGOOGLE",
-          "value" : 5634,
-          "parameters" : [
-            { "kind" : "IdRef", "name" : "'Counter Buffer'" }
-          ],
-          "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "HlslSemanticGOOGLE",
-          "value" : 5635,
-          "parameters" : [
-            { "kind" : "LiteralString", "name" : "'Semantic'" }
-          ],
-          "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
-          "version" : "None"
-        }
-      ]
-    },
-    {
-      "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", "RayTracingNV" ]
-        },
-        {
-          "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" : [ "Shader" ]
-        },
-        {
-          "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", "GroupNonUniform", "SubgroupBallotKHR" ]
-        },
-        {
-          "enumerant" : "SubgroupMaxSize",
-          "value" : 37,
-          "capabilities" : [ "Kernel" ]
-        },
-        {
-          "enumerant" : "NumSubgroups",
-          "value" : 38,
-          "capabilities" : [ "Kernel", "GroupNonUniform" ]
-        },
-        {
-          "enumerant" : "NumEnqueuedSubgroups",
-          "value" : 39,
-          "capabilities" : [ "Kernel" ]
-        },
-        {
-          "enumerant" : "SubgroupId",
-          "value" : 40,
-          "capabilities" : [ "Kernel", "GroupNonUniform" ]
-        },
-        {
-          "enumerant" : "SubgroupLocalInvocationId",
-          "value" : 41,
-          "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ]
-        },
-        {
-          "enumerant" : "VertexIndex",
-          "value" : 42,
-          "capabilities" : [ "Shader" ]
-        },
-        {
-          "enumerant" : "InstanceIndex",
-          "value" : 43,
-          "capabilities" : [ "Shader" ]
-        },
-        {
-          "enumerant" : "SubgroupEqMask",
-          "value" : 4416,
-          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "SubgroupGeMask",
-          "value" : 4417,
-          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "SubgroupGtMask",
-          "value" : 4418,
-          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "SubgroupLeMask",
-          "value" : 4419,
-          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "SubgroupLtMask",
-          "value" : 4420,
-          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "SubgroupEqMaskKHR",
-          "value" : 4416,
-          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
-          "extensions" : [ "SPV_KHR_shader_ballot" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "SubgroupGeMaskKHR",
-          "value" : 4417,
-          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
-          "extensions" : [ "SPV_KHR_shader_ballot" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "SubgroupGtMaskKHR",
-          "value" : 4418,
-          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
-          "extensions" : [ "SPV_KHR_shader_ballot" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "SubgroupLeMaskKHR",
-          "value" : 4419,
-          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
-          "extensions" : [ "SPV_KHR_shader_ballot" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "SubgroupLtMaskKHR",
-          "value" : 4420,
-          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
-          "extensions" : [ "SPV_KHR_shader_ballot" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "BaseVertex",
-          "value" : 4424,
-          "capabilities" : [ "DrawParameters" ],
-          "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "BaseInstance",
-          "value" : 4425,
-          "capabilities" : [ "DrawParameters" ],
-          "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "DrawIndex",
-          "value" : 4426,
-          "capabilities" : [ "DrawParameters", "MeshShadingNV" ],
-          "extensions" : [ "SPV_KHR_shader_draw_parameters", "SPV_NV_mesh_shader" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "DeviceIndex",
-          "value" : 4438,
-          "capabilities" : [ "DeviceGroup" ],
-          "extensions" : [ "SPV_KHR_device_group" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "ViewIndex",
-          "value" : 4440,
-          "capabilities" : [ "MultiView" ],
-          "extensions" : [ "SPV_KHR_multiview" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "BaryCoordNoPerspAMD",
-          "value" : 4992,
-          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "BaryCoordNoPerspCentroidAMD",
-          "value" : 4993,
-          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "BaryCoordNoPerspSampleAMD",
-          "value" : 4994,
-          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "BaryCoordSmoothAMD",
-          "value" : 4995,
-          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "BaryCoordSmoothCentroidAMD",
-          "value" : 4996,
-          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "BaryCoordSmoothSampleAMD",
-          "value" : 4997,
-          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "BaryCoordPullModelAMD",
-          "value" : 4998,
-          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "FragStencilRefEXT",
-          "value" : 5014,
-          "capabilities" : [ "StencilExportEXT" ],
-          "extensions" : [ "SPV_EXT_shader_stencil_export" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ViewportMaskNV",
-          "value" : 5253,
-          "capabilities" : [ "ShaderViewportMaskNV", "MeshShadingNV" ],
-          "extensions" : [ "SPV_NV_viewport_array2", "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "SecondaryPositionNV",
-          "value" : 5257,
-          "capabilities" : [ "ShaderStereoViewNV" ],
-          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "SecondaryViewportMaskNV",
-          "value" : 5258,
-          "capabilities" : [ "ShaderStereoViewNV" ],
-          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "PositionPerViewNV",
-          "value" : 5261,
-          "capabilities" : [ "PerViewAttributesNV", "MeshShadingNV" ],
-          "extensions" : [ "SPV_NVX_multiview_per_view_attributes", "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ViewportMaskPerViewNV",
-          "value" : 5262,
-          "capabilities" : [ "PerViewAttributesNV", "MeshShadingNV" ],
-          "extensions" : [ "SPV_NVX_multiview_per_view_attributes", "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "FullyCoveredEXT",
-          "value" : 5264,
-          "capabilities" : [ "FragmentFullyCoveredEXT" ],
-          "extensions" : [ "SPV_EXT_fragment_fully_covered" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "TaskCountNV",
-          "value" : 5274,
-          "capabilities" : [ "MeshShadingNV" ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "PrimitiveCountNV",
-          "value" : 5275,
-          "capabilities" : [ "MeshShadingNV" ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "PrimitiveIndicesNV",
-          "value" : 5276,
-          "capabilities" : [ "MeshShadingNV" ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ClipDistancePerViewNV",
-          "value" : 5277,
-          "capabilities" : [ "MeshShadingNV" ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "CullDistancePerViewNV",
-          "value" : 5278,
-          "capabilities" : [ "MeshShadingNV" ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "LayerPerViewNV",
-          "value" : 5279,
-          "capabilities" : [ "MeshShadingNV" ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "MeshViewCountNV",
-          "value" : 5280,
-          "capabilities" : [ "MeshShadingNV" ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "MeshViewIndicesNV",
-          "value" : 5281,
-          "capabilities" : [ "MeshShadingNV" ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "BaryCoordNV",
-          "value" : 5286,
-          "capabilities" : [ "FragmentBarycentricNV" ],
-          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "BaryCoordNoPerspNV",
-          "value" : 5287,
-          "capabilities" : [ "FragmentBarycentricNV" ],
-          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "FragSizeEXT",
-          "value" : 5292 ,
-          "capabilities" : [ "FragmentDensityEXT", "ShadingRateNV" ],
-          "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "FragmentSizeNV",
-          "value" : 5292 ,
-          "capabilities" : [ "ShadingRateNV", "FragmentDensityEXT" ],
-          "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "FragInvocationCountEXT",
-          "value" : 5293,
-          "capabilities" : [ "FragmentDensityEXT", "ShadingRateNV" ],
-          "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "InvocationsPerPixelNV",
-          "value" : 5293,
-          "capabilities" : [ "ShadingRateNV", "FragmentDensityEXT" ],
-          "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "LaunchIdNV",
-          "value" : 5319,
-          "capabilities" : [ "RayTracingNV" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ]
-        },
-        {
-          "enumerant" : "LaunchSizeNV",
-          "value" : 5320,
-          "capabilities" : [ "RayTracingNV" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ]
-        },
-        {
-          "enumerant" : "WorldRayOriginNV",
-          "value" : 5321,
-          "capabilities" : [ "RayTracingNV" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ]
-        },
-        {
-          "enumerant" : "WorldRayDirectionNV",
-          "value" : 5322,
-          "capabilities" : [ "RayTracingNV" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ]
-        },
-        {
-          "enumerant" : "ObjectRayOriginNV",
-          "value" : 5323,
-          "capabilities" : [ "RayTracingNV" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ]
-        },
-        {
-          "enumerant" : "ObjectRayDirectionNV",
-          "value" : 5324,
-          "capabilities" : [ "RayTracingNV" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ]
-        },
-        {
-          "enumerant" : "RayTminNV",
-          "value" : 5325,
-          "capabilities" : [ "RayTracingNV" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ]
-        },
-        {
-          "enumerant" : "RayTmaxNV",
-          "value" : 5326,
-          "capabilities" : [ "RayTracingNV" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ]
-        },
-        {
-          "enumerant" : "InstanceCustomIndexNV",
-          "value" : 5327,
-          "capabilities" : [ "RayTracingNV" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ]
-        },
-        {
-          "enumerant" : "ObjectToWorldNV",
-          "value" : 5330,
-          "capabilities" : [ "RayTracingNV" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ]
-        },
-        {
-          "enumerant" : "WorldToObjectNV",
-          "value" : 5331,
-          "capabilities" : [ "RayTracingNV" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ]
-        },
-        {
-          "enumerant" : "HitTNV",
-          "value" : 5332,
-          "capabilities" : [ "RayTracingNV" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ]
-        },
-        {
-          "enumerant" : "HitKindNV",
-          "value" : 5333,
-          "capabilities" : [ "RayTracingNV" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ]
-        },
-        {
-          "enumerant" : "IncomingRayFlagsNV",
-          "value" : 5351,
-          "capabilities" : [ "RayTracingNV" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ]
-        }
-      ]
-    },
-    {
-      "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
-        },
-        {
-          "enumerant" : "QueueFamilyKHR",
-          "value" : 5,
-          "capabilities" : [ "VulkanMemoryModelKHR" ]
-        }
-      ]
-    },
-    {
-      "category" : "ValueEnum",
-      "kind" : "GroupOperation",
-      "enumerants" : [
-        {
-          "enumerant" : "Reduce",
-          "value" : 0,
-          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
-        },
-        {
-          "enumerant" : "InclusiveScan",
-          "value" : 1,
-          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
-        },
-        {
-          "enumerant" : "ExclusiveScan",
-          "value" : 2,
-          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
-        },
-        {
-          "enumerant" : "ClusteredReduce",
-          "value" : 3,
-          "capabilities" : [ "GroupNonUniformClustered" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "PartitionedReduceNV",
-          "value" : 6,
-          "capabilities" : [ "GroupNonUniformPartitionedNV" ],
-          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "PartitionedInclusiveScanNV",
-          "value" : 7,
-          "capabilities" : [ "GroupNonUniformPartitionedNV" ],
-          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "PartitionedExclusiveScanNV",
-          "value" : 8,
-          "capabilities" : [ "GroupNonUniformPartitionedNV" ],
-          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
-          "version" : "None"
-        }
-      ]
-    },
-    {
-      "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
-        },
-        {
-          "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" ],
-          "version" : "1.1"
-        },
-        {
-          "enumerant" : "NamedBarrier",
-          "value" : 59,
-          "capabilities" : [ "Kernel" ],
-          "version" : "1.1"
-        },
-        {
-          "enumerant" : "PipeStorage",
-          "value" : 60,
-          "capabilities" : [ "Pipes" ],
-          "version" : "1.1"
-        },
-        {
-          "enumerant" : "GroupNonUniform",
-          "value" : 61,
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "GroupNonUniformVote",
-          "value" : 62,
-          "capabilities" : [ "GroupNonUniform" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "GroupNonUniformArithmetic",
-          "value" : 63,
-          "capabilities" : [ "GroupNonUniform" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "GroupNonUniformBallot",
-          "value" : 64,
-          "capabilities" : [ "GroupNonUniform" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "GroupNonUniformShuffle",
-          "value" : 65,
-          "capabilities" : [ "GroupNonUniform" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "GroupNonUniformShuffleRelative",
-          "value" : 66,
-          "capabilities" : [ "GroupNonUniform" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "GroupNonUniformClustered",
-          "value" : 67,
-          "capabilities" : [ "GroupNonUniform" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "GroupNonUniformQuad",
-          "value" : 68,
-          "capabilities" : [ "GroupNonUniform" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "SubgroupBallotKHR",
-          "value" : 4423,
-          "extensions" : [ "SPV_KHR_shader_ballot" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "DrawParameters",
-          "value" : 4427,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "SubgroupVoteKHR",
-          "value" : 4431,
-          "extensions" : [ "SPV_KHR_subgroup_vote" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "StorageBuffer16BitAccess",
-          "value" : 4433,
-          "extensions" : [ "SPV_KHR_16bit_storage" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "StorageUniformBufferBlock16",
-          "value" : 4433,
-          "extensions" : [ "SPV_KHR_16bit_storage" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "UniformAndStorageBuffer16BitAccess",
-          "value" : 4434,
-          "capabilities" : [
-            "StorageBuffer16BitAccess",
-            "StorageUniformBufferBlock16"
-          ],
-          "extensions" : [ "SPV_KHR_16bit_storage" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "StorageUniform16",
-          "value" : 4434,
-          "capabilities" : [
-            "StorageBuffer16BitAccess",
-            "StorageUniformBufferBlock16"
-          ],
-          "extensions" : [ "SPV_KHR_16bit_storage" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "StoragePushConstant16",
-          "value" : 4435,
-          "extensions" : [ "SPV_KHR_16bit_storage" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "StorageInputOutput16",
-          "value" : 4436,
-          "extensions" : [ "SPV_KHR_16bit_storage" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "DeviceGroup",
-          "value" : 4437,
-          "extensions" : [ "SPV_KHR_device_group" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "MultiView",
-          "value" : 4439,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_KHR_multiview" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "VariablePointersStorageBuffer",
-          "value" : 4441,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_KHR_variable_pointers" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "VariablePointers",
-          "value" : 4442,
-          "capabilities" : [ "VariablePointersStorageBuffer" ],
-          "extensions" : [ "SPV_KHR_variable_pointers" ],
-          "version" : "1.3"
-        },
-        {
-          "enumerant" : "AtomicStorageOps",
-          "value" : 4445,
-          "extensions" : [ "SPV_KHR_shader_atomic_counter_ops" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "SampleMaskPostDepthCoverage",
-          "value" : 4447,
-          "extensions" : [ "SPV_KHR_post_depth_coverage" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "StorageBuffer8BitAccess",
-          "value" : 4448,
-          "extensions" : [ "SPV_KHR_8bit_storage" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "UniformAndStorageBuffer8BitAccess",
-          "value" : 4449,
-          "capabilities" : [ "StorageBuffer8BitAccess" ],
-          "extensions" : [ "SPV_KHR_8bit_storage" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "StoragePushConstant8",
-          "value" : 4450,
-          "extensions" : [ "SPV_KHR_8bit_storage" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "DenormPreserve",
-          "value" : 4464,
-          "extensions" : [ "SPV_KHR_float_controls" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "DenormFlushToZero",
-          "value" : 4465,
-          "extensions" : [ "SPV_KHR_float_controls" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "SignedZeroInfNanPreserve",
-          "value" : 4466,
-          "extensions" : [ "SPV_KHR_float_controls" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "RoundingModeRTE",
-          "value" : 4467,
-          "extensions" : [ "SPV_KHR_float_controls" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "RoundingModeRTZ",
-          "value" : 4468,
-          "extensions" : [ "SPV_KHR_float_controls" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "Float16ImageAMD",
-          "value" : 5008,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_AMD_gpu_shader_half_float_fetch" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ImageGatherBiasLodAMD",
-          "value" : 5009,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "FragmentMaskAMD",
-          "value" : 5010,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "StencilExportEXT",
-          "value" : 5013,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_EXT_shader_stencil_export" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ImageReadWriteLodAMD",
-          "value" : 5015,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "SampleMaskOverrideCoverageNV",
-          "value" : 5249,
-          "capabilities" : [ "SampleRateShading" ],
-          "extensions" : [ "SPV_NV_sample_mask_override_coverage" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "GeometryShaderPassthroughNV",
-          "value" : 5251,
-          "capabilities" : [ "Geometry" ],
-          "extensions" : [ "SPV_NV_geometry_shader_passthrough" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ShaderViewportIndexLayerEXT",
-          "value" : 5254,
-          "capabilities" : [ "MultiViewport" ],
-          "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ShaderViewportIndexLayerNV",
-          "value" : 5254,
-          "capabilities" : [ "MultiViewport" ],
-          "extensions" : [ "SPV_NV_viewport_array2" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ShaderViewportMaskNV",
-          "value" : 5255,
-          "capabilities" : [ "ShaderViewportIndexLayerNV" ],
-          "extensions" : [ "SPV_NV_viewport_array2" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ShaderStereoViewNV",
-          "value" : 5259,
-          "capabilities" : [ "ShaderViewportMaskNV" ],
-          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "PerViewAttributesNV",
-          "value" : 5260,
-          "capabilities" : [ "MultiView" ],
-          "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "FragmentFullyCoveredEXT",
-          "value" : 5265,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_EXT_fragment_fully_covered" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "MeshShadingNV",
-          "value" : 5266,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_NV_mesh_shader" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ShaderNonUniformEXT",
-          "value" : 5301,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "RuntimeDescriptorArrayEXT",
-          "value" : 5302,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "InputAttachmentArrayDynamicIndexingEXT",
-          "value" : 5303,
-          "capabilities" : [ "InputAttachment" ],
-          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "UniformTexelBufferArrayDynamicIndexingEXT",
-          "value" : 5304,
-          "capabilities" : [ "SampledBuffer" ],
-          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "StorageTexelBufferArrayDynamicIndexingEXT",
-          "value" : 5305,
-          "capabilities" : [ "ImageBuffer" ],
-          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "UniformBufferArrayNonUniformIndexingEXT",
-          "value" : 5306,
-          "capabilities" : [ "ShaderNonUniformEXT" ],
-          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "SampledImageArrayNonUniformIndexingEXT",
-          "value" : 5307,
-          "capabilities" : [ "ShaderNonUniformEXT" ],
-          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "StorageBufferArrayNonUniformIndexingEXT",
-          "value" : 5308,
-          "capabilities" : [ "ShaderNonUniformEXT" ],
-          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "StorageImageArrayNonUniformIndexingEXT",
-          "value" : 5309,
-          "capabilities" : [ "ShaderNonUniformEXT" ],
-          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "InputAttachmentArrayNonUniformIndexingEXT",
-          "value" : 5310,
-          "capabilities" : [ "InputAttachment", "ShaderNonUniformEXT" ],
-          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "UniformTexelBufferArrayNonUniformIndexingEXT",
-          "value" : 5311,
-          "capabilities" : [ "SampledBuffer", "ShaderNonUniformEXT" ],
-          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "StorageTexelBufferArrayNonUniformIndexingEXT",
-          "value" : 5312,
-          "capabilities" : [ "ImageBuffer", "ShaderNonUniformEXT" ],
-          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "RayTracingNV",
-          "value" : 5340,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_NV_ray_tracing" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "SubgroupShuffleINTEL",
-          "value" : 5568,
-          "extensions" : [ "SPV_INTEL_subgroups" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "SubgroupBufferBlockIOINTEL",
-          "value" : 5569,
-          "extensions" : [ "SPV_INTEL_subgroups" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "SubgroupImageBlockIOINTEL",
-          "value" : 5570,
-          "extensions" : [ "SPV_INTEL_subgroups" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "GroupNonUniformPartitionedNV",
-          "value" : 5297,
-          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "VulkanMemoryModelKHR",
-          "value" : 5345,
-          "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "VulkanMemoryModelDeviceScopeKHR",
-          "value" : 5346,
-          "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ImageFootprintNV",
-          "value" : 5282,
-          "extensions" : [ "SPV_NV_shader_image_footprint" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "FragmentBarycentricNV",
-          "value" : 5284,
-          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ComputeDerivativeGroupQuadsNV",
-          "value" : 5288,
-          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ComputeDerivativeGroupLinearNV",
-          "value" : 5350,
-          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "FragmentDensityEXT",
-          "value" : 5291,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "ShadingRateNV",
-          "value" : 5291,
-          "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
-          "version" : "None"
-        }
-      ]
-    },
-    {
-      "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/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
deleted file mode 100644
index fe187f0..0000000
--- a/include/spirv/unified1/spirv.cs
+++ /dev/null
@@ -1,1196 +0,0 @@
-// Copyright (c) 2014-2018 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#
-// 
-// - 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']
-// - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.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.
-
-namespace Spv
-{
-
-    public static class Specification
-    {
-        public const uint MagicNumber = 0x07230203;
-        public const uint Version = 0x00010300;
-        public const uint Revision = 6;
-        public const uint OpCodeMask = 0xffff;
-        public const uint WordCountShift = 16;
-
-        public enum SourceLanguage
-        {
-            Unknown = 0,
-            ESSL = 1,
-            GLSL = 2,
-            OpenCL_C = 3,
-            OpenCL_CPP = 4,
-            HLSL = 5,
-        }
-
-        public enum ExecutionModel
-        {
-            Vertex = 0,
-            TessellationControl = 1,
-            TessellationEvaluation = 2,
-            Geometry = 3,
-            Fragment = 4,
-            GLCompute = 5,
-            Kernel = 6,
-            TaskNV = 5267,
-            MeshNV = 5268,
-            RayGenerationNV = 5313,
-            IntersectionNV = 5314,
-            AnyHitNV = 5315,
-            ClosestHitNV = 5316,
-            MissNV = 5317,
-            CallableNV = 5318,
-        }
-
-        public enum AddressingModel
-        {
-            Logical = 0,
-            Physical32 = 1,
-            Physical64 = 2,
-        }
-
-        public enum MemoryModel
-        {
-            Simple = 0,
-            GLSL450 = 1,
-            OpenCL = 2,
-            VulkanKHR = 3,
-        }
-
-        public enum 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,
-            PostDepthCoverage = 4446,
-            DenormPreserve = 4459,
-            DenormFlushToZero = 4460,
-            SignedZeroInfNanPreserve = 4461,
-            RoundingModeRTE = 4462,
-            RoundingModeRTZ = 4463,
-            StencilRefReplacingEXT = 5027,
-            OutputLinesNV = 5269,
-            OutputPrimitivesNV = 5270,
-            DerivativeGroupQuadsNV = 5289,
-            DerivativeGroupLinearNV = 5290,
-            OutputTrianglesNV = 5298,
-        }
-
-        public enum 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,
-            CallableDataNV = 5328,
-            IncomingCallableDataNV = 5329,
-            RayPayloadNV = 5338,
-            HitAttributeNV = 5339,
-            IncomingRayPayloadNV = 5342,
-            ShaderRecordBufferNV = 5343,
-        }
-
-        public enum Dim
-        {
-            Dim1D = 0,
-            Dim2D = 1,
-            Dim3D = 2,
-            Cube = 3,
-            Rect = 4,
-            Buffer = 5,
-            SubpassData = 6,
-        }
-
-        public enum SamplerAddressingMode
-        {
-            None = 0,
-            ClampToEdge = 1,
-            Clamp = 2,
-            Repeat = 3,
-            RepeatMirrored = 4,
-        }
-
-        public enum SamplerFilterMode
-        {
-            Nearest = 0,
-            Linear = 1,
-        }
-
-        public enum 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,
-        }
-
-        public enum 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,
-        }
-
-        public enum 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,
-        }
-
-        public enum ImageOperandsShift
-        {
-            Bias = 0,
-            Lod = 1,
-            Grad = 2,
-            ConstOffset = 3,
-            Offset = 4,
-            ConstOffsets = 5,
-            Sample = 6,
-            MinLod = 7,
-            MakeTexelAvailableKHR = 8,
-            MakeTexelVisibleKHR = 9,
-            NonPrivateTexelKHR = 10,
-            VolatileTexelKHR = 11,
-        }
-
-        public enum ImageOperandsMask
-        {
-            MaskNone = 0,
-            Bias = 0x00000001,
-            Lod = 0x00000002,
-            Grad = 0x00000004,
-            ConstOffset = 0x00000008,
-            Offset = 0x00000010,
-            ConstOffsets = 0x00000020,
-            Sample = 0x00000040,
-            MinLod = 0x00000080,
-            MakeTexelAvailableKHR = 0x00000100,
-            MakeTexelVisibleKHR = 0x00000200,
-            NonPrivateTexelKHR = 0x00000400,
-            VolatileTexelKHR = 0x00000800,
-        }
-
-        public enum FPFastMathModeShift
-        {
-            NotNaN = 0,
-            NotInf = 1,
-            NSZ = 2,
-            AllowRecip = 3,
-            Fast = 4,
-        }
-
-        public enum FPFastMathModeMask
-        {
-            MaskNone = 0,
-            NotNaN = 0x00000001,
-            NotInf = 0x00000002,
-            NSZ = 0x00000004,
-            AllowRecip = 0x00000008,
-            Fast = 0x00000010,
-        }
-
-        public enum FPRoundingMode
-        {
-            RTE = 0,
-            RTZ = 1,
-            RTP = 2,
-            RTN = 3,
-        }
-
-        public enum LinkageType
-        {
-            Export = 0,
-            Import = 1,
-        }
-
-        public enum AccessQualifier
-        {
-            ReadOnly = 0,
-            WriteOnly = 1,
-            ReadWrite = 2,
-        }
-
-        public enum FunctionParameterAttribute
-        {
-            Zext = 0,
-            Sext = 1,
-            ByVal = 2,
-            Sret = 3,
-            NoAlias = 4,
-            NoCapture = 5,
-            NoWrite = 6,
-            NoReadWrite = 7,
-        }
-
-        public enum 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,
-            NoSignedWrap = 4469,
-            NoUnsignedWrap = 4470,
-            ExplicitInterpAMD = 4999,
-            OverrideCoverageNV = 5248,
-            PassthroughNV = 5250,
-            ViewportRelativeNV = 5252,
-            SecondaryViewportRelativeNV = 5256,
-            PerPrimitiveNV = 5271,
-            PerViewNV = 5272,
-            PerTaskNV = 5273,
-            PerVertexNV = 5285,
-            NonUniformEXT = 5300,
-            HlslCounterBufferGOOGLE = 5634,
-            HlslSemanticGOOGLE = 5635,
-        }
-
-        public enum 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,
-            SubgroupEqMask = 4416,
-            SubgroupEqMaskKHR = 4416,
-            SubgroupGeMask = 4417,
-            SubgroupGeMaskKHR = 4417,
-            SubgroupGtMask = 4418,
-            SubgroupGtMaskKHR = 4418,
-            SubgroupLeMask = 4419,
-            SubgroupLeMaskKHR = 4419,
-            SubgroupLtMask = 4420,
-            SubgroupLtMaskKHR = 4420,
-            BaseVertex = 4424,
-            BaseInstance = 4425,
-            DrawIndex = 4426,
-            DeviceIndex = 4438,
-            ViewIndex = 4440,
-            BaryCoordNoPerspAMD = 4992,
-            BaryCoordNoPerspCentroidAMD = 4993,
-            BaryCoordNoPerspSampleAMD = 4994,
-            BaryCoordSmoothAMD = 4995,
-            BaryCoordSmoothCentroidAMD = 4996,
-            BaryCoordSmoothSampleAMD = 4997,
-            BaryCoordPullModelAMD = 4998,
-            FragStencilRefEXT = 5014,
-            ViewportMaskNV = 5253,
-            SecondaryPositionNV = 5257,
-            SecondaryViewportMaskNV = 5258,
-            PositionPerViewNV = 5261,
-            ViewportMaskPerViewNV = 5262,
-            FullyCoveredEXT = 5264,
-            TaskCountNV = 5274,
-            PrimitiveCountNV = 5275,
-            PrimitiveIndicesNV = 5276,
-            ClipDistancePerViewNV = 5277,
-            CullDistancePerViewNV = 5278,
-            LayerPerViewNV = 5279,
-            MeshViewCountNV = 5280,
-            MeshViewIndicesNV = 5281,
-            BaryCoordNV = 5286,
-            BaryCoordNoPerspNV = 5287,
-            FragSizeEXT = 5292,
-            FragmentSizeNV = 5292,
-            FragInvocationCountEXT = 5293,
-            InvocationsPerPixelNV = 5293,
-            LaunchIdNV = 5319,
-            LaunchSizeNV = 5320,
-            WorldRayOriginNV = 5321,
-            WorldRayDirectionNV = 5322,
-            ObjectRayOriginNV = 5323,
-            ObjectRayDirectionNV = 5324,
-            RayTminNV = 5325,
-            RayTmaxNV = 5326,
-            InstanceCustomIndexNV = 5327,
-            ObjectToWorldNV = 5330,
-            WorldToObjectNV = 5331,
-            HitTNV = 5332,
-            HitKindNV = 5333,
-            IncomingRayFlagsNV = 5351,
-        }
-
-        public enum SelectionControlShift
-        {
-            Flatten = 0,
-            DontFlatten = 1,
-        }
-
-        public enum SelectionControlMask
-        {
-            MaskNone = 0,
-            Flatten = 0x00000001,
-            DontFlatten = 0x00000002,
-        }
-
-        public enum LoopControlShift
-        {
-            Unroll = 0,
-            DontUnroll = 1,
-            DependencyInfinite = 2,
-            DependencyLength = 3,
-        }
-
-        public enum LoopControlMask
-        {
-            MaskNone = 0,
-            Unroll = 0x00000001,
-            DontUnroll = 0x00000002,
-            DependencyInfinite = 0x00000004,
-            DependencyLength = 0x00000008,
-        }
-
-        public enum FunctionControlShift
-        {
-            Inline = 0,
-            DontInline = 1,
-            Pure = 2,
-            Const = 3,
-        }
-
-        public enum FunctionControlMask
-        {
-            MaskNone = 0,
-            Inline = 0x00000001,
-            DontInline = 0x00000002,
-            Pure = 0x00000004,
-            Const = 0x00000008,
-        }
-
-        public enum MemorySemanticsShift
-        {
-            Acquire = 1,
-            Release = 2,
-            AcquireRelease = 3,
-            SequentiallyConsistent = 4,
-            UniformMemory = 6,
-            SubgroupMemory = 7,
-            WorkgroupMemory = 8,
-            CrossWorkgroupMemory = 9,
-            AtomicCounterMemory = 10,
-            ImageMemory = 11,
-            OutputMemoryKHR = 12,
-            MakeAvailableKHR = 13,
-            MakeVisibleKHR = 14,
-        }
-
-        public enum MemorySemanticsMask
-        {
-            MaskNone = 0,
-            Acquire = 0x00000002,
-            Release = 0x00000004,
-            AcquireRelease = 0x00000008,
-            SequentiallyConsistent = 0x00000010,
-            UniformMemory = 0x00000040,
-            SubgroupMemory = 0x00000080,
-            WorkgroupMemory = 0x00000100,
-            CrossWorkgroupMemory = 0x00000200,
-            AtomicCounterMemory = 0x00000400,
-            ImageMemory = 0x00000800,
-            OutputMemoryKHR = 0x00001000,
-            MakeAvailableKHR = 0x00002000,
-            MakeVisibleKHR = 0x00004000,
-        }
-
-        public enum MemoryAccessShift
-        {
-            Volatile = 0,
-            Aligned = 1,
-            Nontemporal = 2,
-            MakePointerAvailableKHR = 3,
-            MakePointerVisibleKHR = 4,
-            NonPrivatePointerKHR = 5,
-        }
-
-        public enum MemoryAccessMask
-        {
-            MaskNone = 0,
-            Volatile = 0x00000001,
-            Aligned = 0x00000002,
-            Nontemporal = 0x00000004,
-            MakePointerAvailableKHR = 0x00000008,
-            MakePointerVisibleKHR = 0x00000010,
-            NonPrivatePointerKHR = 0x00000020,
-        }
-
-        public enum Scope
-        {
-            CrossDevice = 0,
-            Device = 1,
-            Workgroup = 2,
-            Subgroup = 3,
-            Invocation = 4,
-            QueueFamilyKHR = 5,
-        }
-
-        public enum GroupOperation
-        {
-            Reduce = 0,
-            InclusiveScan = 1,
-            ExclusiveScan = 2,
-            ClusteredReduce = 3,
-            PartitionedReduceNV = 6,
-            PartitionedInclusiveScanNV = 7,
-            PartitionedExclusiveScanNV = 8,
-        }
-
-        public enum KernelEnqueueFlags
-        {
-            NoWait = 0,
-            WaitKernel = 1,
-            WaitWorkGroup = 2,
-        }
-
-        public enum KernelProfilingInfoShift
-        {
-            CmdExecTime = 0,
-        }
-
-        public enum KernelProfilingInfoMask
-        {
-            MaskNone = 0,
-            CmdExecTime = 0x00000001,
-        }
-
-        public enum 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,
-            GroupNonUniform = 61,
-            GroupNonUniformVote = 62,
-            GroupNonUniformArithmetic = 63,
-            GroupNonUniformBallot = 64,
-            GroupNonUniformShuffle = 65,
-            GroupNonUniformShuffleRelative = 66,
-            GroupNonUniformClustered = 67,
-            GroupNonUniformQuad = 68,
-            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,
-            AtomicStorageOps = 4445,
-            SampleMaskPostDepthCoverage = 4447,
-            StorageBuffer8BitAccess = 4448,
-            UniformAndStorageBuffer8BitAccess = 4449,
-            StoragePushConstant8 = 4450,
-            DenormPreserve = 4464,
-            DenormFlushToZero = 4465,
-            SignedZeroInfNanPreserve = 4466,
-            RoundingModeRTE = 4467,
-            RoundingModeRTZ = 4468,
-            Float16ImageAMD = 5008,
-            ImageGatherBiasLodAMD = 5009,
-            FragmentMaskAMD = 5010,
-            StencilExportEXT = 5013,
-            ImageReadWriteLodAMD = 5015,
-            SampleMaskOverrideCoverageNV = 5249,
-            GeometryShaderPassthroughNV = 5251,
-            ShaderViewportIndexLayerEXT = 5254,
-            ShaderViewportIndexLayerNV = 5254,
-            ShaderViewportMaskNV = 5255,
-            ShaderStereoViewNV = 5259,
-            PerViewAttributesNV = 5260,
-            FragmentFullyCoveredEXT = 5265,
-            MeshShadingNV = 5266,
-            ImageFootprintNV = 5282,
-            FragmentBarycentricNV = 5284,
-            ComputeDerivativeGroupQuadsNV = 5288,
-            FragmentDensityEXT = 5291,
-            ShadingRateNV = 5291,
-            GroupNonUniformPartitionedNV = 5297,
-            ShaderNonUniformEXT = 5301,
-            RuntimeDescriptorArrayEXT = 5302,
-            InputAttachmentArrayDynamicIndexingEXT = 5303,
-            UniformTexelBufferArrayDynamicIndexingEXT = 5304,
-            StorageTexelBufferArrayDynamicIndexingEXT = 5305,
-            UniformBufferArrayNonUniformIndexingEXT = 5306,
-            SampledImageArrayNonUniformIndexingEXT = 5307,
-            StorageBufferArrayNonUniformIndexingEXT = 5308,
-            StorageImageArrayNonUniformIndexingEXT = 5309,
-            InputAttachmentArrayNonUniformIndexingEXT = 5310,
-            UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
-            StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
-            RayTracingNV = 5340,
-            VulkanMemoryModelKHR = 5345,
-            VulkanMemoryModelDeviceScopeKHR = 5346,
-            ComputeDerivativeGroupLinearNV = 5350,
-            SubgroupShuffleINTEL = 5568,
-            SubgroupBufferBlockIOINTEL = 5569,
-            SubgroupImageBlockIOINTEL = 5570,
-        }
-
-        public 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,
-            OpGroupNonUniformElect = 333,
-            OpGroupNonUniformAll = 334,
-            OpGroupNonUniformAny = 335,
-            OpGroupNonUniformAllEqual = 336,
-            OpGroupNonUniformBroadcast = 337,
-            OpGroupNonUniformBroadcastFirst = 338,
-            OpGroupNonUniformBallot = 339,
-            OpGroupNonUniformInverseBallot = 340,
-            OpGroupNonUniformBallotBitExtract = 341,
-            OpGroupNonUniformBallotBitCount = 342,
-            OpGroupNonUniformBallotFindLSB = 343,
-            OpGroupNonUniformBallotFindMSB = 344,
-            OpGroupNonUniformShuffle = 345,
-            OpGroupNonUniformShuffleXor = 346,
-            OpGroupNonUniformShuffleUp = 347,
-            OpGroupNonUniformShuffleDown = 348,
-            OpGroupNonUniformIAdd = 349,
-            OpGroupNonUniformFAdd = 350,
-            OpGroupNonUniformIMul = 351,
-            OpGroupNonUniformFMul = 352,
-            OpGroupNonUniformSMin = 353,
-            OpGroupNonUniformUMin = 354,
-            OpGroupNonUniformFMin = 355,
-            OpGroupNonUniformSMax = 356,
-            OpGroupNonUniformUMax = 357,
-            OpGroupNonUniformFMax = 358,
-            OpGroupNonUniformBitwiseAnd = 359,
-            OpGroupNonUniformBitwiseOr = 360,
-            OpGroupNonUniformBitwiseXor = 361,
-            OpGroupNonUniformLogicalAnd = 362,
-            OpGroupNonUniformLogicalOr = 363,
-            OpGroupNonUniformLogicalXor = 364,
-            OpGroupNonUniformQuadBroadcast = 365,
-            OpGroupNonUniformQuadSwap = 366,
-            OpSubgroupBallotKHR = 4421,
-            OpSubgroupFirstInvocationKHR = 4422,
-            OpSubgroupAllKHR = 4428,
-            OpSubgroupAnyKHR = 4429,
-            OpSubgroupAllEqualKHR = 4430,
-            OpSubgroupReadInvocationKHR = 4432,
-            OpGroupIAddNonUniformAMD = 5000,
-            OpGroupFAddNonUniformAMD = 5001,
-            OpGroupFMinNonUniformAMD = 5002,
-            OpGroupUMinNonUniformAMD = 5003,
-            OpGroupSMinNonUniformAMD = 5004,
-            OpGroupFMaxNonUniformAMD = 5005,
-            OpGroupUMaxNonUniformAMD = 5006,
-            OpGroupSMaxNonUniformAMD = 5007,
-            OpFragmentMaskFetchAMD = 5011,
-            OpFragmentFetchAMD = 5012,
-            OpImageSampleFootprintNV = 5283,
-            OpGroupNonUniformPartitionNV = 5296,
-            OpWritePackedPrimitiveIndices4x8NV = 5299,
-            OpReportIntersectionNV = 5334,
-            OpIgnoreIntersectionNV = 5335,
-            OpTerminateRayNV = 5336,
-            OpTraceNV = 5337,
-            OpTypeAccelerationStructureNV = 5341,
-            OpExecuteCallableNV = 5344,
-            OpSubgroupShuffleINTEL = 5571,
-            OpSubgroupShuffleDownINTEL = 5572,
-            OpSubgroupShuffleUpINTEL = 5573,
-            OpSubgroupShuffleXorINTEL = 5574,
-            OpSubgroupBlockReadINTEL = 5575,
-            OpSubgroupBlockWriteINTEL = 5576,
-            OpSubgroupImageBlockReadINTEL = 5577,
-            OpSubgroupImageBlockWriteINTEL = 5578,
-            OpDecorateStringGOOGLE = 5632,
-            OpMemberDecorateStringGOOGLE = 5633,
-        }
-    }
-}
-
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
deleted file mode 100644
index 503673a..0000000
--- a/include/spirv/unified1/spirv.h
+++ /dev/null
@@ -1,1197 +0,0 @@
-/*
-** Copyright (c) 2014-2018 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#
-** 
-** - 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']
-** - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.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 0x10300
-#define SPV_REVISION 6
-
-static const unsigned int SpvMagicNumber = 0x07230203;
-static const unsigned int SpvVersion = 0x00010300;
-static const unsigned int SpvRevision = 6;
-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,
-    SpvExecutionModelTaskNV = 5267,
-    SpvExecutionModelMeshNV = 5268,
-    SpvExecutionModelRayGenerationNV = 5313,
-    SpvExecutionModelIntersectionNV = 5314,
-    SpvExecutionModelAnyHitNV = 5315,
-    SpvExecutionModelClosestHitNV = 5316,
-    SpvExecutionModelMissNV = 5317,
-    SpvExecutionModelCallableNV = 5318,
-    SpvExecutionModelMax = 0x7fffffff,
-} SpvExecutionModel;
-
-typedef enum SpvAddressingModel_ {
-    SpvAddressingModelLogical = 0,
-    SpvAddressingModelPhysical32 = 1,
-    SpvAddressingModelPhysical64 = 2,
-    SpvAddressingModelMax = 0x7fffffff,
-} SpvAddressingModel;
-
-typedef enum SpvMemoryModel_ {
-    SpvMemoryModelSimple = 0,
-    SpvMemoryModelGLSL450 = 1,
-    SpvMemoryModelOpenCL = 2,
-    SpvMemoryModelVulkanKHR = 3,
-    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,
-    SpvExecutionModePostDepthCoverage = 4446,
-    SpvExecutionModeDenormPreserve = 4459,
-    SpvExecutionModeDenormFlushToZero = 4460,
-    SpvExecutionModeSignedZeroInfNanPreserve = 4461,
-    SpvExecutionModeRoundingModeRTE = 4462,
-    SpvExecutionModeRoundingModeRTZ = 4463,
-    SpvExecutionModeStencilRefReplacingEXT = 5027,
-    SpvExecutionModeOutputLinesNV = 5269,
-    SpvExecutionModeOutputPrimitivesNV = 5270,
-    SpvExecutionModeDerivativeGroupQuadsNV = 5289,
-    SpvExecutionModeDerivativeGroupLinearNV = 5290,
-    SpvExecutionModeOutputTrianglesNV = 5298,
-    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,
-    SpvStorageClassCallableDataNV = 5328,
-    SpvStorageClassIncomingCallableDataNV = 5329,
-    SpvStorageClassRayPayloadNV = 5338,
-    SpvStorageClassHitAttributeNV = 5339,
-    SpvStorageClassIncomingRayPayloadNV = 5342,
-    SpvStorageClassShaderRecordBufferNV = 5343,
-    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,
-    SpvImageOperandsMakeTexelAvailableKHRShift = 8,
-    SpvImageOperandsMakeTexelVisibleKHRShift = 9,
-    SpvImageOperandsNonPrivateTexelKHRShift = 10,
-    SpvImageOperandsVolatileTexelKHRShift = 11,
-    SpvImageOperandsMax = 0x7fffffff,
-} SpvImageOperandsShift;
-
-typedef enum SpvImageOperandsMask_ {
-    SpvImageOperandsMaskNone = 0,
-    SpvImageOperandsBiasMask = 0x00000001,
-    SpvImageOperandsLodMask = 0x00000002,
-    SpvImageOperandsGradMask = 0x00000004,
-    SpvImageOperandsConstOffsetMask = 0x00000008,
-    SpvImageOperandsOffsetMask = 0x00000010,
-    SpvImageOperandsConstOffsetsMask = 0x00000020,
-    SpvImageOperandsSampleMask = 0x00000040,
-    SpvImageOperandsMinLodMask = 0x00000080,
-    SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
-    SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
-    SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
-    SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
-} 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,
-    SpvDecorationNoSignedWrap = 4469,
-    SpvDecorationNoUnsignedWrap = 4470,
-    SpvDecorationExplicitInterpAMD = 4999,
-    SpvDecorationOverrideCoverageNV = 5248,
-    SpvDecorationPassthroughNV = 5250,
-    SpvDecorationViewportRelativeNV = 5252,
-    SpvDecorationSecondaryViewportRelativeNV = 5256,
-    SpvDecorationPerPrimitiveNV = 5271,
-    SpvDecorationPerViewNV = 5272,
-    SpvDecorationPerTaskNV = 5273,
-    SpvDecorationPerVertexNV = 5285,
-    SpvDecorationNonUniformEXT = 5300,
-    SpvDecorationHlslCounterBufferGOOGLE = 5634,
-    SpvDecorationHlslSemanticGOOGLE = 5635,
-    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,
-    SpvBuiltInSubgroupEqMask = 4416,
-    SpvBuiltInSubgroupEqMaskKHR = 4416,
-    SpvBuiltInSubgroupGeMask = 4417,
-    SpvBuiltInSubgroupGeMaskKHR = 4417,
-    SpvBuiltInSubgroupGtMask = 4418,
-    SpvBuiltInSubgroupGtMaskKHR = 4418,
-    SpvBuiltInSubgroupLeMask = 4419,
-    SpvBuiltInSubgroupLeMaskKHR = 4419,
-    SpvBuiltInSubgroupLtMask = 4420,
-    SpvBuiltInSubgroupLtMaskKHR = 4420,
-    SpvBuiltInBaseVertex = 4424,
-    SpvBuiltInBaseInstance = 4425,
-    SpvBuiltInDrawIndex = 4426,
-    SpvBuiltInDeviceIndex = 4438,
-    SpvBuiltInViewIndex = 4440,
-    SpvBuiltInBaryCoordNoPerspAMD = 4992,
-    SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
-    SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
-    SpvBuiltInBaryCoordSmoothAMD = 4995,
-    SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
-    SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
-    SpvBuiltInBaryCoordPullModelAMD = 4998,
-    SpvBuiltInFragStencilRefEXT = 5014,
-    SpvBuiltInViewportMaskNV = 5253,
-    SpvBuiltInSecondaryPositionNV = 5257,
-    SpvBuiltInSecondaryViewportMaskNV = 5258,
-    SpvBuiltInPositionPerViewNV = 5261,
-    SpvBuiltInViewportMaskPerViewNV = 5262,
-    SpvBuiltInFullyCoveredEXT = 5264,
-    SpvBuiltInTaskCountNV = 5274,
-    SpvBuiltInPrimitiveCountNV = 5275,
-    SpvBuiltInPrimitiveIndicesNV = 5276,
-    SpvBuiltInClipDistancePerViewNV = 5277,
-    SpvBuiltInCullDistancePerViewNV = 5278,
-    SpvBuiltInLayerPerViewNV = 5279,
-    SpvBuiltInMeshViewCountNV = 5280,
-    SpvBuiltInMeshViewIndicesNV = 5281,
-    SpvBuiltInBaryCoordNV = 5286,
-    SpvBuiltInBaryCoordNoPerspNV = 5287,
-    SpvBuiltInFragSizeEXT = 5292,
-    SpvBuiltInFragmentSizeNV = 5292,
-    SpvBuiltInFragInvocationCountEXT = 5293,
-    SpvBuiltInInvocationsPerPixelNV = 5293,
-    SpvBuiltInLaunchIdNV = 5319,
-    SpvBuiltInLaunchSizeNV = 5320,
-    SpvBuiltInWorldRayOriginNV = 5321,
-    SpvBuiltInWorldRayDirectionNV = 5322,
-    SpvBuiltInObjectRayOriginNV = 5323,
-    SpvBuiltInObjectRayDirectionNV = 5324,
-    SpvBuiltInRayTminNV = 5325,
-    SpvBuiltInRayTmaxNV = 5326,
-    SpvBuiltInInstanceCustomIndexNV = 5327,
-    SpvBuiltInObjectToWorldNV = 5330,
-    SpvBuiltInWorldToObjectNV = 5331,
-    SpvBuiltInHitTNV = 5332,
-    SpvBuiltInHitKindNV = 5333,
-    SpvBuiltInIncomingRayFlagsNV = 5351,
-    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,
-    SpvMemorySemanticsOutputMemoryKHRShift = 12,
-    SpvMemorySemanticsMakeAvailableKHRShift = 13,
-    SpvMemorySemanticsMakeVisibleKHRShift = 14,
-    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,
-    SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
-    SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
-    SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
-} SpvMemorySemanticsMask;
-
-typedef enum SpvMemoryAccessShift_ {
-    SpvMemoryAccessVolatileShift = 0,
-    SpvMemoryAccessAlignedShift = 1,
-    SpvMemoryAccessNontemporalShift = 2,
-    SpvMemoryAccessMakePointerAvailableKHRShift = 3,
-    SpvMemoryAccessMakePointerVisibleKHRShift = 4,
-    SpvMemoryAccessNonPrivatePointerKHRShift = 5,
-    SpvMemoryAccessMax = 0x7fffffff,
-} SpvMemoryAccessShift;
-
-typedef enum SpvMemoryAccessMask_ {
-    SpvMemoryAccessMaskNone = 0,
-    SpvMemoryAccessVolatileMask = 0x00000001,
-    SpvMemoryAccessAlignedMask = 0x00000002,
-    SpvMemoryAccessNontemporalMask = 0x00000004,
-    SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
-    SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
-    SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
-} SpvMemoryAccessMask;
-
-typedef enum SpvScope_ {
-    SpvScopeCrossDevice = 0,
-    SpvScopeDevice = 1,
-    SpvScopeWorkgroup = 2,
-    SpvScopeSubgroup = 3,
-    SpvScopeInvocation = 4,
-    SpvScopeQueueFamilyKHR = 5,
-    SpvScopeMax = 0x7fffffff,
-} SpvScope;
-
-typedef enum SpvGroupOperation_ {
-    SpvGroupOperationReduce = 0,
-    SpvGroupOperationInclusiveScan = 1,
-    SpvGroupOperationExclusiveScan = 2,
-    SpvGroupOperationClusteredReduce = 3,
-    SpvGroupOperationPartitionedReduceNV = 6,
-    SpvGroupOperationPartitionedInclusiveScanNV = 7,
-    SpvGroupOperationPartitionedExclusiveScanNV = 8,
-    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,
-    SpvCapabilityGroupNonUniform = 61,
-    SpvCapabilityGroupNonUniformVote = 62,
-    SpvCapabilityGroupNonUniformArithmetic = 63,
-    SpvCapabilityGroupNonUniformBallot = 64,
-    SpvCapabilityGroupNonUniformShuffle = 65,
-    SpvCapabilityGroupNonUniformShuffleRelative = 66,
-    SpvCapabilityGroupNonUniformClustered = 67,
-    SpvCapabilityGroupNonUniformQuad = 68,
-    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,
-    SpvCapabilityAtomicStorageOps = 4445,
-    SpvCapabilitySampleMaskPostDepthCoverage = 4447,
-    SpvCapabilityStorageBuffer8BitAccess = 4448,
-    SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
-    SpvCapabilityStoragePushConstant8 = 4450,
-    SpvCapabilityDenormPreserve = 4464,
-    SpvCapabilityDenormFlushToZero = 4465,
-    SpvCapabilitySignedZeroInfNanPreserve = 4466,
-    SpvCapabilityRoundingModeRTE = 4467,
-    SpvCapabilityRoundingModeRTZ = 4468,
-    SpvCapabilityFloat16ImageAMD = 5008,
-    SpvCapabilityImageGatherBiasLodAMD = 5009,
-    SpvCapabilityFragmentMaskAMD = 5010,
-    SpvCapabilityStencilExportEXT = 5013,
-    SpvCapabilityImageReadWriteLodAMD = 5015,
-    SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
-    SpvCapabilityGeometryShaderPassthroughNV = 5251,
-    SpvCapabilityShaderViewportIndexLayerEXT = 5254,
-    SpvCapabilityShaderViewportIndexLayerNV = 5254,
-    SpvCapabilityShaderViewportMaskNV = 5255,
-    SpvCapabilityShaderStereoViewNV = 5259,
-    SpvCapabilityPerViewAttributesNV = 5260,
-    SpvCapabilityFragmentFullyCoveredEXT = 5265,
-    SpvCapabilityMeshShadingNV = 5266,
-    SpvCapabilityImageFootprintNV = 5282,
-    SpvCapabilityFragmentBarycentricNV = 5284,
-    SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
-    SpvCapabilityFragmentDensityEXT = 5291,
-    SpvCapabilityShadingRateNV = 5291,
-    SpvCapabilityGroupNonUniformPartitionedNV = 5297,
-    SpvCapabilityShaderNonUniformEXT = 5301,
-    SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
-    SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
-    SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
-    SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
-    SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
-    SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
-    SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
-    SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
-    SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
-    SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
-    SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
-    SpvCapabilityRayTracingNV = 5340,
-    SpvCapabilityVulkanMemoryModelKHR = 5345,
-    SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
-    SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
-    SpvCapabilitySubgroupShuffleINTEL = 5568,
-    SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
-    SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
-    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,
-    SpvOpGroupNonUniformElect = 333,
-    SpvOpGroupNonUniformAll = 334,
-    SpvOpGroupNonUniformAny = 335,
-    SpvOpGroupNonUniformAllEqual = 336,
-    SpvOpGroupNonUniformBroadcast = 337,
-    SpvOpGroupNonUniformBroadcastFirst = 338,
-    SpvOpGroupNonUniformBallot = 339,
-    SpvOpGroupNonUniformInverseBallot = 340,
-    SpvOpGroupNonUniformBallotBitExtract = 341,
-    SpvOpGroupNonUniformBallotBitCount = 342,
-    SpvOpGroupNonUniformBallotFindLSB = 343,
-    SpvOpGroupNonUniformBallotFindMSB = 344,
-    SpvOpGroupNonUniformShuffle = 345,
-    SpvOpGroupNonUniformShuffleXor = 346,
-    SpvOpGroupNonUniformShuffleUp = 347,
-    SpvOpGroupNonUniformShuffleDown = 348,
-    SpvOpGroupNonUniformIAdd = 349,
-    SpvOpGroupNonUniformFAdd = 350,
-    SpvOpGroupNonUniformIMul = 351,
-    SpvOpGroupNonUniformFMul = 352,
-    SpvOpGroupNonUniformSMin = 353,
-    SpvOpGroupNonUniformUMin = 354,
-    SpvOpGroupNonUniformFMin = 355,
-    SpvOpGroupNonUniformSMax = 356,
-    SpvOpGroupNonUniformUMax = 357,
-    SpvOpGroupNonUniformFMax = 358,
-    SpvOpGroupNonUniformBitwiseAnd = 359,
-    SpvOpGroupNonUniformBitwiseOr = 360,
-    SpvOpGroupNonUniformBitwiseXor = 361,
-    SpvOpGroupNonUniformLogicalAnd = 362,
-    SpvOpGroupNonUniformLogicalOr = 363,
-    SpvOpGroupNonUniformLogicalXor = 364,
-    SpvOpGroupNonUniformQuadBroadcast = 365,
-    SpvOpGroupNonUniformQuadSwap = 366,
-    SpvOpSubgroupBallotKHR = 4421,
-    SpvOpSubgroupFirstInvocationKHR = 4422,
-    SpvOpSubgroupAllKHR = 4428,
-    SpvOpSubgroupAnyKHR = 4429,
-    SpvOpSubgroupAllEqualKHR = 4430,
-    SpvOpSubgroupReadInvocationKHR = 4432,
-    SpvOpGroupIAddNonUniformAMD = 5000,
-    SpvOpGroupFAddNonUniformAMD = 5001,
-    SpvOpGroupFMinNonUniformAMD = 5002,
-    SpvOpGroupUMinNonUniformAMD = 5003,
-    SpvOpGroupSMinNonUniformAMD = 5004,
-    SpvOpGroupFMaxNonUniformAMD = 5005,
-    SpvOpGroupUMaxNonUniformAMD = 5006,
-    SpvOpGroupSMaxNonUniformAMD = 5007,
-    SpvOpFragmentMaskFetchAMD = 5011,
-    SpvOpFragmentFetchAMD = 5012,
-    SpvOpImageSampleFootprintNV = 5283,
-    SpvOpGroupNonUniformPartitionNV = 5296,
-    SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
-    SpvOpReportIntersectionNV = 5334,
-    SpvOpIgnoreIntersectionNV = 5335,
-    SpvOpTerminateRayNV = 5336,
-    SpvOpTraceNV = 5337,
-    SpvOpTypeAccelerationStructureNV = 5341,
-    SpvOpExecuteCallableNV = 5344,
-    SpvOpSubgroupShuffleINTEL = 5571,
-    SpvOpSubgroupShuffleDownINTEL = 5572,
-    SpvOpSubgroupShuffleUpINTEL = 5573,
-    SpvOpSubgroupShuffleXorINTEL = 5574,
-    SpvOpSubgroupBlockReadINTEL = 5575,
-    SpvOpSubgroupBlockWriteINTEL = 5576,
-    SpvOpSubgroupImageBlockReadINTEL = 5577,
-    SpvOpSubgroupImageBlockWriteINTEL = 5578,
-    SpvOpDecorateStringGOOGLE = 5632,
-    SpvOpMemberDecorateStringGOOGLE = 5633,
-    SpvOpMax = 0x7fffffff,
-} SpvOp;
-
-#endif  // #ifndef spirv_H
-
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
deleted file mode 100644
index f2fd0f0..0000000
--- a/include/spirv/unified1/spirv.hpp
+++ /dev/null
@@ -1,1206 +0,0 @@
-// Copyright (c) 2014-2018 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#
-// 
-// - 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']
-// - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.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 0x10300
-#define SPV_REVISION 6
-
-static const unsigned int MagicNumber = 0x07230203;
-static const unsigned int Version = 0x00010300;
-static const unsigned int Revision = 6;
-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,
-    ExecutionModelTaskNV = 5267,
-    ExecutionModelMeshNV = 5268,
-    ExecutionModelRayGenerationNV = 5313,
-    ExecutionModelIntersectionNV = 5314,
-    ExecutionModelAnyHitNV = 5315,
-    ExecutionModelClosestHitNV = 5316,
-    ExecutionModelMissNV = 5317,
-    ExecutionModelCallableNV = 5318,
-    ExecutionModelMax = 0x7fffffff,
-};
-
-enum AddressingModel {
-    AddressingModelLogical = 0,
-    AddressingModelPhysical32 = 1,
-    AddressingModelPhysical64 = 2,
-    AddressingModelMax = 0x7fffffff,
-};
-
-enum MemoryModel {
-    MemoryModelSimple = 0,
-    MemoryModelGLSL450 = 1,
-    MemoryModelOpenCL = 2,
-    MemoryModelVulkanKHR = 3,
-    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,
-    ExecutionModePostDepthCoverage = 4446,
-    ExecutionModeDenormPreserve = 4459,
-    ExecutionModeDenormFlushToZero = 4460,
-    ExecutionModeSignedZeroInfNanPreserve = 4461,
-    ExecutionModeRoundingModeRTE = 4462,
-    ExecutionModeRoundingModeRTZ = 4463,
-    ExecutionModeStencilRefReplacingEXT = 5027,
-    ExecutionModeOutputLinesNV = 5269,
-    ExecutionModeOutputPrimitivesNV = 5270,
-    ExecutionModeDerivativeGroupQuadsNV = 5289,
-    ExecutionModeDerivativeGroupLinearNV = 5290,
-    ExecutionModeOutputTrianglesNV = 5298,
-    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,
-    StorageClassCallableDataNV = 5328,
-    StorageClassIncomingCallableDataNV = 5329,
-    StorageClassRayPayloadNV = 5338,
-    StorageClassHitAttributeNV = 5339,
-    StorageClassIncomingRayPayloadNV = 5342,
-    StorageClassShaderRecordBufferNV = 5343,
-    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,
-    ImageOperandsMakeTexelAvailableKHRShift = 8,
-    ImageOperandsMakeTexelVisibleKHRShift = 9,
-    ImageOperandsNonPrivateTexelKHRShift = 10,
-    ImageOperandsVolatileTexelKHRShift = 11,
-    ImageOperandsMax = 0x7fffffff,
-};
-
-enum ImageOperandsMask {
-    ImageOperandsMaskNone = 0,
-    ImageOperandsBiasMask = 0x00000001,
-    ImageOperandsLodMask = 0x00000002,
-    ImageOperandsGradMask = 0x00000004,
-    ImageOperandsConstOffsetMask = 0x00000008,
-    ImageOperandsOffsetMask = 0x00000010,
-    ImageOperandsConstOffsetsMask = 0x00000020,
-    ImageOperandsSampleMask = 0x00000040,
-    ImageOperandsMinLodMask = 0x00000080,
-    ImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
-    ImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
-    ImageOperandsNonPrivateTexelKHRMask = 0x00000400,
-    ImageOperandsVolatileTexelKHRMask = 0x00000800,
-};
-
-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,
-    DecorationNoSignedWrap = 4469,
-    DecorationNoUnsignedWrap = 4470,
-    DecorationExplicitInterpAMD = 4999,
-    DecorationOverrideCoverageNV = 5248,
-    DecorationPassthroughNV = 5250,
-    DecorationViewportRelativeNV = 5252,
-    DecorationSecondaryViewportRelativeNV = 5256,
-    DecorationPerPrimitiveNV = 5271,
-    DecorationPerViewNV = 5272,
-    DecorationPerTaskNV = 5273,
-    DecorationPerVertexNV = 5285,
-    DecorationNonUniformEXT = 5300,
-    DecorationHlslCounterBufferGOOGLE = 5634,
-    DecorationHlslSemanticGOOGLE = 5635,
-    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,
-    BuiltInSubgroupEqMask = 4416,
-    BuiltInSubgroupEqMaskKHR = 4416,
-    BuiltInSubgroupGeMask = 4417,
-    BuiltInSubgroupGeMaskKHR = 4417,
-    BuiltInSubgroupGtMask = 4418,
-    BuiltInSubgroupGtMaskKHR = 4418,
-    BuiltInSubgroupLeMask = 4419,
-    BuiltInSubgroupLeMaskKHR = 4419,
-    BuiltInSubgroupLtMask = 4420,
-    BuiltInSubgroupLtMaskKHR = 4420,
-    BuiltInBaseVertex = 4424,
-    BuiltInBaseInstance = 4425,
-    BuiltInDrawIndex = 4426,
-    BuiltInDeviceIndex = 4438,
-    BuiltInViewIndex = 4440,
-    BuiltInBaryCoordNoPerspAMD = 4992,
-    BuiltInBaryCoordNoPerspCentroidAMD = 4993,
-    BuiltInBaryCoordNoPerspSampleAMD = 4994,
-    BuiltInBaryCoordSmoothAMD = 4995,
-    BuiltInBaryCoordSmoothCentroidAMD = 4996,
-    BuiltInBaryCoordSmoothSampleAMD = 4997,
-    BuiltInBaryCoordPullModelAMD = 4998,
-    BuiltInFragStencilRefEXT = 5014,
-    BuiltInViewportMaskNV = 5253,
-    BuiltInSecondaryPositionNV = 5257,
-    BuiltInSecondaryViewportMaskNV = 5258,
-    BuiltInPositionPerViewNV = 5261,
-    BuiltInViewportMaskPerViewNV = 5262,
-    BuiltInFullyCoveredEXT = 5264,
-    BuiltInTaskCountNV = 5274,
-    BuiltInPrimitiveCountNV = 5275,
-    BuiltInPrimitiveIndicesNV = 5276,
-    BuiltInClipDistancePerViewNV = 5277,
-    BuiltInCullDistancePerViewNV = 5278,
-    BuiltInLayerPerViewNV = 5279,
-    BuiltInMeshViewCountNV = 5280,
-    BuiltInMeshViewIndicesNV = 5281,
-    BuiltInBaryCoordNV = 5286,
-    BuiltInBaryCoordNoPerspNV = 5287,
-    BuiltInFragSizeEXT = 5292,
-    BuiltInFragmentSizeNV = 5292,
-    BuiltInFragInvocationCountEXT = 5293,
-    BuiltInInvocationsPerPixelNV = 5293,
-    BuiltInLaunchIdNV = 5319,
-    BuiltInLaunchSizeNV = 5320,
-    BuiltInWorldRayOriginNV = 5321,
-    BuiltInWorldRayDirectionNV = 5322,
-    BuiltInObjectRayOriginNV = 5323,
-    BuiltInObjectRayDirectionNV = 5324,
-    BuiltInRayTminNV = 5325,
-    BuiltInRayTmaxNV = 5326,
-    BuiltInInstanceCustomIndexNV = 5327,
-    BuiltInObjectToWorldNV = 5330,
-    BuiltInWorldToObjectNV = 5331,
-    BuiltInHitTNV = 5332,
-    BuiltInHitKindNV = 5333,
-    BuiltInIncomingRayFlagsNV = 5351,
-    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,
-    MemorySemanticsOutputMemoryKHRShift = 12,
-    MemorySemanticsMakeAvailableKHRShift = 13,
-    MemorySemanticsMakeVisibleKHRShift = 14,
-    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,
-    MemorySemanticsOutputMemoryKHRMask = 0x00001000,
-    MemorySemanticsMakeAvailableKHRMask = 0x00002000,
-    MemorySemanticsMakeVisibleKHRMask = 0x00004000,
-};
-
-enum MemoryAccessShift {
-    MemoryAccessVolatileShift = 0,
-    MemoryAccessAlignedShift = 1,
-    MemoryAccessNontemporalShift = 2,
-    MemoryAccessMakePointerAvailableKHRShift = 3,
-    MemoryAccessMakePointerVisibleKHRShift = 4,
-    MemoryAccessNonPrivatePointerKHRShift = 5,
-    MemoryAccessMax = 0x7fffffff,
-};
-
-enum MemoryAccessMask {
-    MemoryAccessMaskNone = 0,
-    MemoryAccessVolatileMask = 0x00000001,
-    MemoryAccessAlignedMask = 0x00000002,
-    MemoryAccessNontemporalMask = 0x00000004,
-    MemoryAccessMakePointerAvailableKHRMask = 0x00000008,
-    MemoryAccessMakePointerVisibleKHRMask = 0x00000010,
-    MemoryAccessNonPrivatePointerKHRMask = 0x00000020,
-};
-
-enum Scope {
-    ScopeCrossDevice = 0,
-    ScopeDevice = 1,
-    ScopeWorkgroup = 2,
-    ScopeSubgroup = 3,
-    ScopeInvocation = 4,
-    ScopeQueueFamilyKHR = 5,
-    ScopeMax = 0x7fffffff,
-};
-
-enum GroupOperation {
-    GroupOperationReduce = 0,
-    GroupOperationInclusiveScan = 1,
-    GroupOperationExclusiveScan = 2,
-    GroupOperationClusteredReduce = 3,
-    GroupOperationPartitionedReduceNV = 6,
-    GroupOperationPartitionedInclusiveScanNV = 7,
-    GroupOperationPartitionedExclusiveScanNV = 8,
-    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,
-    CapabilityGroupNonUniform = 61,
-    CapabilityGroupNonUniformVote = 62,
-    CapabilityGroupNonUniformArithmetic = 63,
-    CapabilityGroupNonUniformBallot = 64,
-    CapabilityGroupNonUniformShuffle = 65,
-    CapabilityGroupNonUniformShuffleRelative = 66,
-    CapabilityGroupNonUniformClustered = 67,
-    CapabilityGroupNonUniformQuad = 68,
-    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,
-    CapabilityAtomicStorageOps = 4445,
-    CapabilitySampleMaskPostDepthCoverage = 4447,
-    CapabilityStorageBuffer8BitAccess = 4448,
-    CapabilityUniformAndStorageBuffer8BitAccess = 4449,
-    CapabilityStoragePushConstant8 = 4450,
-    CapabilityDenormPreserve = 4464,
-    CapabilityDenormFlushToZero = 4465,
-    CapabilitySignedZeroInfNanPreserve = 4466,
-    CapabilityRoundingModeRTE = 4467,
-    CapabilityRoundingModeRTZ = 4468,
-    CapabilityFloat16ImageAMD = 5008,
-    CapabilityImageGatherBiasLodAMD = 5009,
-    CapabilityFragmentMaskAMD = 5010,
-    CapabilityStencilExportEXT = 5013,
-    CapabilityImageReadWriteLodAMD = 5015,
-    CapabilitySampleMaskOverrideCoverageNV = 5249,
-    CapabilityGeometryShaderPassthroughNV = 5251,
-    CapabilityShaderViewportIndexLayerEXT = 5254,
-    CapabilityShaderViewportIndexLayerNV = 5254,
-    CapabilityShaderViewportMaskNV = 5255,
-    CapabilityShaderStereoViewNV = 5259,
-    CapabilityPerViewAttributesNV = 5260,
-    CapabilityFragmentFullyCoveredEXT = 5265,
-    CapabilityMeshShadingNV = 5266,
-    CapabilityImageFootprintNV = 5282,
-    CapabilityFragmentBarycentricNV = 5284,
-    CapabilityComputeDerivativeGroupQuadsNV = 5288,
-    CapabilityFragmentDensityEXT = 5291,
-    CapabilityShadingRateNV = 5291,
-    CapabilityGroupNonUniformPartitionedNV = 5297,
-    CapabilityShaderNonUniformEXT = 5301,
-    CapabilityRuntimeDescriptorArrayEXT = 5302,
-    CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
-    CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
-    CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
-    CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
-    CapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
-    CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
-    CapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
-    CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
-    CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
-    CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
-    CapabilityRayTracingNV = 5340,
-    CapabilityVulkanMemoryModelKHR = 5345,
-    CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
-    CapabilityComputeDerivativeGroupLinearNV = 5350,
-    CapabilitySubgroupShuffleINTEL = 5568,
-    CapabilitySubgroupBufferBlockIOINTEL = 5569,
-    CapabilitySubgroupImageBlockIOINTEL = 5570,
-    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,
-    OpGroupNonUniformElect = 333,
-    OpGroupNonUniformAll = 334,
-    OpGroupNonUniformAny = 335,
-    OpGroupNonUniformAllEqual = 336,
-    OpGroupNonUniformBroadcast = 337,
-    OpGroupNonUniformBroadcastFirst = 338,
-    OpGroupNonUniformBallot = 339,
-    OpGroupNonUniformInverseBallot = 340,
-    OpGroupNonUniformBallotBitExtract = 341,
-    OpGroupNonUniformBallotBitCount = 342,
-    OpGroupNonUniformBallotFindLSB = 343,
-    OpGroupNonUniformBallotFindMSB = 344,
-    OpGroupNonUniformShuffle = 345,
-    OpGroupNonUniformShuffleXor = 346,
-    OpGroupNonUniformShuffleUp = 347,
-    OpGroupNonUniformShuffleDown = 348,
-    OpGroupNonUniformIAdd = 349,
-    OpGroupNonUniformFAdd = 350,
-    OpGroupNonUniformIMul = 351,
-    OpGroupNonUniformFMul = 352,
-    OpGroupNonUniformSMin = 353,
-    OpGroupNonUniformUMin = 354,
-    OpGroupNonUniformFMin = 355,
-    OpGroupNonUniformSMax = 356,
-    OpGroupNonUniformUMax = 357,
-    OpGroupNonUniformFMax = 358,
-    OpGroupNonUniformBitwiseAnd = 359,
-    OpGroupNonUniformBitwiseOr = 360,
-    OpGroupNonUniformBitwiseXor = 361,
-    OpGroupNonUniformLogicalAnd = 362,
-    OpGroupNonUniformLogicalOr = 363,
-    OpGroupNonUniformLogicalXor = 364,
-    OpGroupNonUniformQuadBroadcast = 365,
-    OpGroupNonUniformQuadSwap = 366,
-    OpSubgroupBallotKHR = 4421,
-    OpSubgroupFirstInvocationKHR = 4422,
-    OpSubgroupAllKHR = 4428,
-    OpSubgroupAnyKHR = 4429,
-    OpSubgroupAllEqualKHR = 4430,
-    OpSubgroupReadInvocationKHR = 4432,
-    OpGroupIAddNonUniformAMD = 5000,
-    OpGroupFAddNonUniformAMD = 5001,
-    OpGroupFMinNonUniformAMD = 5002,
-    OpGroupUMinNonUniformAMD = 5003,
-    OpGroupSMinNonUniformAMD = 5004,
-    OpGroupFMaxNonUniformAMD = 5005,
-    OpGroupUMaxNonUniformAMD = 5006,
-    OpGroupSMaxNonUniformAMD = 5007,
-    OpFragmentMaskFetchAMD = 5011,
-    OpFragmentFetchAMD = 5012,
-    OpImageSampleFootprintNV = 5283,
-    OpGroupNonUniformPartitionNV = 5296,
-    OpWritePackedPrimitiveIndices4x8NV = 5299,
-    OpReportIntersectionNV = 5334,
-    OpIgnoreIntersectionNV = 5335,
-    OpTerminateRayNV = 5336,
-    OpTraceNV = 5337,
-    OpTypeAccelerationStructureNV = 5341,
-    OpExecuteCallableNV = 5344,
-    OpSubgroupShuffleINTEL = 5571,
-    OpSubgroupShuffleDownINTEL = 5572,
-    OpSubgroupShuffleUpINTEL = 5573,
-    OpSubgroupShuffleXorINTEL = 5574,
-    OpSubgroupBlockReadINTEL = 5575,
-    OpSubgroupBlockWriteINTEL = 5576,
-    OpSubgroupImageBlockReadINTEL = 5577,
-    OpSubgroupImageBlockWriteINTEL = 5578,
-    OpDecorateStringGOOGLE = 5632,
-    OpMemberDecorateStringGOOGLE = 5633,
-    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/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
deleted file mode 100644
index 0cf4974..0000000
--- a/include/spirv/unified1/spirv.hpp11
+++ /dev/null
@@ -1,1206 +0,0 @@
-// Copyright (c) 2014-2018 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#
-// 
-// - 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']
-// - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.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 0x10300
-#define SPV_REVISION 6
-
-static const unsigned int MagicNumber = 0x07230203;
-static const unsigned int Version = 0x00010300;
-static const unsigned int Revision = 6;
-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,
-    TaskNV = 5267,
-    MeshNV = 5268,
-    RayGenerationNV = 5313,
-    IntersectionNV = 5314,
-    AnyHitNV = 5315,
-    ClosestHitNV = 5316,
-    MissNV = 5317,
-    CallableNV = 5318,
-    Max = 0x7fffffff,
-};
-
-enum class AddressingModel : unsigned {
-    Logical = 0,
-    Physical32 = 1,
-    Physical64 = 2,
-    Max = 0x7fffffff,
-};
-
-enum class MemoryModel : unsigned {
-    Simple = 0,
-    GLSL450 = 1,
-    OpenCL = 2,
-    VulkanKHR = 3,
-    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,
-    PostDepthCoverage = 4446,
-    DenormPreserve = 4459,
-    DenormFlushToZero = 4460,
-    SignedZeroInfNanPreserve = 4461,
-    RoundingModeRTE = 4462,
-    RoundingModeRTZ = 4463,
-    StencilRefReplacingEXT = 5027,
-    OutputLinesNV = 5269,
-    OutputPrimitivesNV = 5270,
-    DerivativeGroupQuadsNV = 5289,
-    DerivativeGroupLinearNV = 5290,
-    OutputTrianglesNV = 5298,
-    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,
-    CallableDataNV = 5328,
-    IncomingCallableDataNV = 5329,
-    RayPayloadNV = 5338,
-    HitAttributeNV = 5339,
-    IncomingRayPayloadNV = 5342,
-    ShaderRecordBufferNV = 5343,
-    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,
-    MakeTexelAvailableKHR = 8,
-    MakeTexelVisibleKHR = 9,
-    NonPrivateTexelKHR = 10,
-    VolatileTexelKHR = 11,
-    Max = 0x7fffffff,
-};
-
-enum class ImageOperandsMask : unsigned {
-    MaskNone = 0,
-    Bias = 0x00000001,
-    Lod = 0x00000002,
-    Grad = 0x00000004,
-    ConstOffset = 0x00000008,
-    Offset = 0x00000010,
-    ConstOffsets = 0x00000020,
-    Sample = 0x00000040,
-    MinLod = 0x00000080,
-    MakeTexelAvailableKHR = 0x00000100,
-    MakeTexelVisibleKHR = 0x00000200,
-    NonPrivateTexelKHR = 0x00000400,
-    VolatileTexelKHR = 0x00000800,
-};
-
-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,
-    NoSignedWrap = 4469,
-    NoUnsignedWrap = 4470,
-    ExplicitInterpAMD = 4999,
-    OverrideCoverageNV = 5248,
-    PassthroughNV = 5250,
-    ViewportRelativeNV = 5252,
-    SecondaryViewportRelativeNV = 5256,
-    PerPrimitiveNV = 5271,
-    PerViewNV = 5272,
-    PerTaskNV = 5273,
-    PerVertexNV = 5285,
-    NonUniformEXT = 5300,
-    HlslCounterBufferGOOGLE = 5634,
-    HlslSemanticGOOGLE = 5635,
-    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,
-    SubgroupEqMask = 4416,
-    SubgroupEqMaskKHR = 4416,
-    SubgroupGeMask = 4417,
-    SubgroupGeMaskKHR = 4417,
-    SubgroupGtMask = 4418,
-    SubgroupGtMaskKHR = 4418,
-    SubgroupLeMask = 4419,
-    SubgroupLeMaskKHR = 4419,
-    SubgroupLtMask = 4420,
-    SubgroupLtMaskKHR = 4420,
-    BaseVertex = 4424,
-    BaseInstance = 4425,
-    DrawIndex = 4426,
-    DeviceIndex = 4438,
-    ViewIndex = 4440,
-    BaryCoordNoPerspAMD = 4992,
-    BaryCoordNoPerspCentroidAMD = 4993,
-    BaryCoordNoPerspSampleAMD = 4994,
-    BaryCoordSmoothAMD = 4995,
-    BaryCoordSmoothCentroidAMD = 4996,
-    BaryCoordSmoothSampleAMD = 4997,
-    BaryCoordPullModelAMD = 4998,
-    FragStencilRefEXT = 5014,
-    ViewportMaskNV = 5253,
-    SecondaryPositionNV = 5257,
-    SecondaryViewportMaskNV = 5258,
-    PositionPerViewNV = 5261,
-    ViewportMaskPerViewNV = 5262,
-    FullyCoveredEXT = 5264,
-    TaskCountNV = 5274,
-    PrimitiveCountNV = 5275,
-    PrimitiveIndicesNV = 5276,
-    ClipDistancePerViewNV = 5277,
-    CullDistancePerViewNV = 5278,
-    LayerPerViewNV = 5279,
-    MeshViewCountNV = 5280,
-    MeshViewIndicesNV = 5281,
-    BaryCoordNV = 5286,
-    BaryCoordNoPerspNV = 5287,
-    FragSizeEXT = 5292,
-    FragmentSizeNV = 5292,
-    FragInvocationCountEXT = 5293,
-    InvocationsPerPixelNV = 5293,
-    LaunchIdNV = 5319,
-    LaunchSizeNV = 5320,
-    WorldRayOriginNV = 5321,
-    WorldRayDirectionNV = 5322,
-    ObjectRayOriginNV = 5323,
-    ObjectRayDirectionNV = 5324,
-    RayTminNV = 5325,
-    RayTmaxNV = 5326,
-    InstanceCustomIndexNV = 5327,
-    ObjectToWorldNV = 5330,
-    WorldToObjectNV = 5331,
-    HitTNV = 5332,
-    HitKindNV = 5333,
-    IncomingRayFlagsNV = 5351,
-    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,
-    OutputMemoryKHR = 12,
-    MakeAvailableKHR = 13,
-    MakeVisibleKHR = 14,
-    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,
-    OutputMemoryKHR = 0x00001000,
-    MakeAvailableKHR = 0x00002000,
-    MakeVisibleKHR = 0x00004000,
-};
-
-enum class MemoryAccessShift : unsigned {
-    Volatile = 0,
-    Aligned = 1,
-    Nontemporal = 2,
-    MakePointerAvailableKHR = 3,
-    MakePointerVisibleKHR = 4,
-    NonPrivatePointerKHR = 5,
-    Max = 0x7fffffff,
-};
-
-enum class MemoryAccessMask : unsigned {
-    MaskNone = 0,
-    Volatile = 0x00000001,
-    Aligned = 0x00000002,
-    Nontemporal = 0x00000004,
-    MakePointerAvailableKHR = 0x00000008,
-    MakePointerVisibleKHR = 0x00000010,
-    NonPrivatePointerKHR = 0x00000020,
-};
-
-enum class Scope : unsigned {
-    CrossDevice = 0,
-    Device = 1,
-    Workgroup = 2,
-    Subgroup = 3,
-    Invocation = 4,
-    QueueFamilyKHR = 5,
-    Max = 0x7fffffff,
-};
-
-enum class GroupOperation : unsigned {
-    Reduce = 0,
-    InclusiveScan = 1,
-    ExclusiveScan = 2,
-    ClusteredReduce = 3,
-    PartitionedReduceNV = 6,
-    PartitionedInclusiveScanNV = 7,
-    PartitionedExclusiveScanNV = 8,
-    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,
-    GroupNonUniform = 61,
-    GroupNonUniformVote = 62,
-    GroupNonUniformArithmetic = 63,
-    GroupNonUniformBallot = 64,
-    GroupNonUniformShuffle = 65,
-    GroupNonUniformShuffleRelative = 66,
-    GroupNonUniformClustered = 67,
-    GroupNonUniformQuad = 68,
-    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,
-    AtomicStorageOps = 4445,
-    SampleMaskPostDepthCoverage = 4447,
-    StorageBuffer8BitAccess = 4448,
-    UniformAndStorageBuffer8BitAccess = 4449,
-    StoragePushConstant8 = 4450,
-    DenormPreserve = 4464,
-    DenormFlushToZero = 4465,
-    SignedZeroInfNanPreserve = 4466,
-    RoundingModeRTE = 4467,
-    RoundingModeRTZ = 4468,
-    Float16ImageAMD = 5008,
-    ImageGatherBiasLodAMD = 5009,
-    FragmentMaskAMD = 5010,
-    StencilExportEXT = 5013,
-    ImageReadWriteLodAMD = 5015,
-    SampleMaskOverrideCoverageNV = 5249,
-    GeometryShaderPassthroughNV = 5251,
-    ShaderViewportIndexLayerEXT = 5254,
-    ShaderViewportIndexLayerNV = 5254,
-    ShaderViewportMaskNV = 5255,
-    ShaderStereoViewNV = 5259,
-    PerViewAttributesNV = 5260,
-    FragmentFullyCoveredEXT = 5265,
-    MeshShadingNV = 5266,
-    ImageFootprintNV = 5282,
-    FragmentBarycentricNV = 5284,
-    ComputeDerivativeGroupQuadsNV = 5288,
-    FragmentDensityEXT = 5291,
-    ShadingRateNV = 5291,
-    GroupNonUniformPartitionedNV = 5297,
-    ShaderNonUniformEXT = 5301,
-    RuntimeDescriptorArrayEXT = 5302,
-    InputAttachmentArrayDynamicIndexingEXT = 5303,
-    UniformTexelBufferArrayDynamicIndexingEXT = 5304,
-    StorageTexelBufferArrayDynamicIndexingEXT = 5305,
-    UniformBufferArrayNonUniformIndexingEXT = 5306,
-    SampledImageArrayNonUniformIndexingEXT = 5307,
-    StorageBufferArrayNonUniformIndexingEXT = 5308,
-    StorageImageArrayNonUniformIndexingEXT = 5309,
-    InputAttachmentArrayNonUniformIndexingEXT = 5310,
-    UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
-    StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
-    RayTracingNV = 5340,
-    VulkanMemoryModelKHR = 5345,
-    VulkanMemoryModelDeviceScopeKHR = 5346,
-    ComputeDerivativeGroupLinearNV = 5350,
-    SubgroupShuffleINTEL = 5568,
-    SubgroupBufferBlockIOINTEL = 5569,
-    SubgroupImageBlockIOINTEL = 5570,
-    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,
-    OpGroupNonUniformElect = 333,
-    OpGroupNonUniformAll = 334,
-    OpGroupNonUniformAny = 335,
-    OpGroupNonUniformAllEqual = 336,
-    OpGroupNonUniformBroadcast = 337,
-    OpGroupNonUniformBroadcastFirst = 338,
-    OpGroupNonUniformBallot = 339,
-    OpGroupNonUniformInverseBallot = 340,
-    OpGroupNonUniformBallotBitExtract = 341,
-    OpGroupNonUniformBallotBitCount = 342,
-    OpGroupNonUniformBallotFindLSB = 343,
-    OpGroupNonUniformBallotFindMSB = 344,
-    OpGroupNonUniformShuffle = 345,
-    OpGroupNonUniformShuffleXor = 346,
-    OpGroupNonUniformShuffleUp = 347,
-    OpGroupNonUniformShuffleDown = 348,
-    OpGroupNonUniformIAdd = 349,
-    OpGroupNonUniformFAdd = 350,
-    OpGroupNonUniformIMul = 351,
-    OpGroupNonUniformFMul = 352,
-    OpGroupNonUniformSMin = 353,
-    OpGroupNonUniformUMin = 354,
-    OpGroupNonUniformFMin = 355,
-    OpGroupNonUniformSMax = 356,
-    OpGroupNonUniformUMax = 357,
-    OpGroupNonUniformFMax = 358,
-    OpGroupNonUniformBitwiseAnd = 359,
-    OpGroupNonUniformBitwiseOr = 360,
-    OpGroupNonUniformBitwiseXor = 361,
-    OpGroupNonUniformLogicalAnd = 362,
-    OpGroupNonUniformLogicalOr = 363,
-    OpGroupNonUniformLogicalXor = 364,
-    OpGroupNonUniformQuadBroadcast = 365,
-    OpGroupNonUniformQuadSwap = 366,
-    OpSubgroupBallotKHR = 4421,
-    OpSubgroupFirstInvocationKHR = 4422,
-    OpSubgroupAllKHR = 4428,
-    OpSubgroupAnyKHR = 4429,
-    OpSubgroupAllEqualKHR = 4430,
-    OpSubgroupReadInvocationKHR = 4432,
-    OpGroupIAddNonUniformAMD = 5000,
-    OpGroupFAddNonUniformAMD = 5001,
-    OpGroupFMinNonUniformAMD = 5002,
-    OpGroupUMinNonUniformAMD = 5003,
-    OpGroupSMinNonUniformAMD = 5004,
-    OpGroupFMaxNonUniformAMD = 5005,
-    OpGroupUMaxNonUniformAMD = 5006,
-    OpGroupSMaxNonUniformAMD = 5007,
-    OpFragmentMaskFetchAMD = 5011,
-    OpFragmentFetchAMD = 5012,
-    OpImageSampleFootprintNV = 5283,
-    OpGroupNonUniformPartitionNV = 5296,
-    OpWritePackedPrimitiveIndices4x8NV = 5299,
-    OpReportIntersectionNV = 5334,
-    OpIgnoreIntersectionNV = 5335,
-    OpTerminateRayNV = 5336,
-    OpTraceNV = 5337,
-    OpTypeAccelerationStructureNV = 5341,
-    OpExecuteCallableNV = 5344,
-    OpSubgroupShuffleINTEL = 5571,
-    OpSubgroupShuffleDownINTEL = 5572,
-    OpSubgroupShuffleUpINTEL = 5573,
-    OpSubgroupShuffleXorINTEL = 5574,
-    OpSubgroupBlockReadINTEL = 5575,
-    OpSubgroupBlockWriteINTEL = 5576,
-    OpSubgroupImageBlockReadINTEL = 5577,
-    OpSubgroupImageBlockWriteINTEL = 5578,
-    OpDecorateStringGOOGLE = 5632,
-    OpMemberDecorateStringGOOGLE = 5633,
-    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/unified1/spirv.json b/include/spirv/unified1/spirv.json
deleted file mode 100644
index ca4af89..0000000
--- a/include/spirv/unified1/spirv.json
+++ /dev/null
@@ -1,1212 +0,0 @@
-{
-    "spv":
-    {
-        "meta":
-        {
-            "Comment":
-            [
-                [
-                    "Copyright (c) 2014-2018 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#",
-                    "",
-                    "- 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']",
-                    "- C# will use enum classes in the Specification class located in the \"Spv\" namespace, e.g.: Spv.Specification.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": 66304,
-            "Revision": 6,
-            "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,
-                    "TaskNV": 5267,
-                    "MeshNV": 5268,
-                    "RayGenerationNV": 5313,
-                    "IntersectionNV": 5314,
-                    "AnyHitNV": 5315,
-                    "ClosestHitNV": 5316,
-                    "MissNV": 5317,
-                    "CallableNV": 5318
-                }
-            },
-            {
-                "Name": "AddressingModel",
-                "Type": "Value",
-                "Values":
-                {
-                    "Logical": 0,
-                    "Physical32": 1,
-                    "Physical64": 2
-                }
-            },
-            {
-                "Name": "MemoryModel",
-                "Type": "Value",
-                "Values":
-                {
-                    "Simple": 0,
-                    "GLSL450": 1,
-                    "OpenCL": 2,
-                    "VulkanKHR": 3
-                }
-            },
-            {
-                "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,
-                    "PostDepthCoverage": 4446,
-                    "DenormPreserve": 4459,
-                    "DenormFlushToZero": 4460,
-                    "SignedZeroInfNanPreserve": 4461,
-                    "RoundingModeRTE": 4462,
-                    "RoundingModeRTZ": 4463,
-                    "StencilRefReplacingEXT": 5027,
-                    "OutputLinesNV": 5269,
-                    "OutputPrimitivesNV": 5270,
-                    "DerivativeGroupQuadsNV": 5289,
-                    "DerivativeGroupLinearNV": 5290,
-                    "OutputTrianglesNV": 5298
-                }
-            },
-            {
-                "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,
-                    "CallableDataNV": 5328,
-                    "IncomingCallableDataNV": 5329,
-                    "RayPayloadNV": 5338,
-                    "HitAttributeNV": 5339,
-                    "IncomingRayPayloadNV": 5342,
-                    "ShaderRecordBufferNV": 5343
-                }
-            },
-            {
-                "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,
-                    "MakeTexelAvailableKHR": 8,
-                    "MakeTexelVisibleKHR": 9,
-                    "NonPrivateTexelKHR": 10,
-                    "VolatileTexelKHR": 11
-                }
-            },
-            {
-                "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,
-                    "NoSignedWrap": 4469,
-                    "NoUnsignedWrap": 4470,
-                    "ExplicitInterpAMD": 4999,
-                    "OverrideCoverageNV": 5248,
-                    "PassthroughNV": 5250,
-                    "ViewportRelativeNV": 5252,
-                    "SecondaryViewportRelativeNV": 5256,
-                    "PerPrimitiveNV": 5271,
-                    "PerViewNV": 5272,
-                    "PerTaskNV": 5273,
-                    "PerVertexNV": 5285,
-                    "NonUniformEXT": 5300,
-                    "HlslCounterBufferGOOGLE": 5634,
-                    "HlslSemanticGOOGLE": 5635
-                }
-            },
-            {
-                "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,
-                    "SubgroupEqMask": 4416,
-                    "SubgroupEqMaskKHR": 4416,
-                    "SubgroupGeMask": 4417,
-                    "SubgroupGeMaskKHR": 4417,
-                    "SubgroupGtMask": 4418,
-                    "SubgroupGtMaskKHR": 4418,
-                    "SubgroupLeMask": 4419,
-                    "SubgroupLeMaskKHR": 4419,
-                    "SubgroupLtMask": 4420,
-                    "SubgroupLtMaskKHR": 4420,
-                    "BaseVertex": 4424,
-                    "BaseInstance": 4425,
-                    "DrawIndex": 4426,
-                    "DeviceIndex": 4438,
-                    "ViewIndex": 4440,
-                    "BaryCoordNoPerspAMD": 4992,
-                    "BaryCoordNoPerspCentroidAMD": 4993,
-                    "BaryCoordNoPerspSampleAMD": 4994,
-                    "BaryCoordSmoothAMD": 4995,
-                    "BaryCoordSmoothCentroidAMD": 4996,
-                    "BaryCoordSmoothSampleAMD": 4997,
-                    "BaryCoordPullModelAMD": 4998,
-                    "FragStencilRefEXT": 5014,
-                    "ViewportMaskNV": 5253,
-                    "SecondaryPositionNV": 5257,
-                    "SecondaryViewportMaskNV": 5258,
-                    "PositionPerViewNV": 5261,
-                    "ViewportMaskPerViewNV": 5262,
-                    "FullyCoveredEXT": 5264,
-                    "TaskCountNV": 5274,
-                    "PrimitiveCountNV": 5275,
-                    "PrimitiveIndicesNV": 5276,
-                    "ClipDistancePerViewNV": 5277,
-                    "CullDistancePerViewNV": 5278,
-                    "LayerPerViewNV": 5279,
-                    "MeshViewCountNV": 5280,
-                    "MeshViewIndicesNV": 5281,
-                    "BaryCoordNV": 5286,
-                    "BaryCoordNoPerspNV": 5287,
-                    "FragSizeEXT": 5292,
-                    "FragmentSizeNV": 5292,
-                    "FragInvocationCountEXT": 5293,
-                    "InvocationsPerPixelNV": 5293,
-                    "LaunchIdNV": 5319,
-                    "LaunchSizeNV": 5320,
-                    "WorldRayOriginNV": 5321,
-                    "WorldRayDirectionNV": 5322,
-                    "ObjectRayOriginNV": 5323,
-                    "ObjectRayDirectionNV": 5324,
-                    "RayTminNV": 5325,
-                    "RayTmaxNV": 5326,
-                    "InstanceCustomIndexNV": 5327,
-                    "ObjectToWorldNV": 5330,
-                    "WorldToObjectNV": 5331,
-                    "HitTNV": 5332,
-                    "HitKindNV": 5333,
-                    "IncomingRayFlagsNV": 5351
-                }
-            },
-            {
-                "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,
-                    "OutputMemoryKHR": 12,
-                    "MakeAvailableKHR": 13,
-                    "MakeVisibleKHR": 14
-                }
-            },
-            {
-                "Name": "MemoryAccess",
-                "Type": "Bit",
-                "Values":
-                {
-                    "Volatile": 0,
-                    "Aligned": 1,
-                    "Nontemporal": 2,
-                    "MakePointerAvailableKHR": 3,
-                    "MakePointerVisibleKHR": 4,
-                    "NonPrivatePointerKHR": 5
-                }
-            },
-            {
-                "Name": "Scope",
-                "Type": "Value",
-                "Values":
-                {
-                    "CrossDevice": 0,
-                    "Device": 1,
-                    "Workgroup": 2,
-                    "Subgroup": 3,
-                    "Invocation": 4,
-                    "QueueFamilyKHR": 5
-                }
-            },
-            {
-                "Name": "GroupOperation",
-                "Type": "Value",
-                "Values":
-                {
-                    "Reduce": 0,
-                    "InclusiveScan": 1,
-                    "ExclusiveScan": 2,
-                    "ClusteredReduce": 3,
-                    "PartitionedReduceNV": 6,
-                    "PartitionedInclusiveScanNV": 7,
-                    "PartitionedExclusiveScanNV": 8
-                }
-            },
-            {
-                "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,
-                    "GroupNonUniform": 61,
-                    "GroupNonUniformVote": 62,
-                    "GroupNonUniformArithmetic": 63,
-                    "GroupNonUniformBallot": 64,
-                    "GroupNonUniformShuffle": 65,
-                    "GroupNonUniformShuffleRelative": 66,
-                    "GroupNonUniformClustered": 67,
-                    "GroupNonUniformQuad": 68,
-                    "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,
-                    "AtomicStorageOps": 4445,
-                    "SampleMaskPostDepthCoverage": 4447,
-                    "StorageBuffer8BitAccess": 4448,
-                    "UniformAndStorageBuffer8BitAccess": 4449,
-                    "StoragePushConstant8": 4450,
-                    "DenormPreserve": 4464,
-                    "DenormFlushToZero": 4465,
-                    "SignedZeroInfNanPreserve": 4466,
-                    "RoundingModeRTE": 4467,
-                    "RoundingModeRTZ": 4468,
-                    "Float16ImageAMD": 5008,
-                    "ImageGatherBiasLodAMD": 5009,
-                    "FragmentMaskAMD": 5010,
-                    "StencilExportEXT": 5013,
-                    "ImageReadWriteLodAMD": 5015,
-                    "SampleMaskOverrideCoverageNV": 5249,
-                    "GeometryShaderPassthroughNV": 5251,
-                    "ShaderViewportIndexLayerEXT": 5254,
-                    "ShaderViewportIndexLayerNV": 5254,
-                    "ShaderViewportMaskNV": 5255,
-                    "ShaderStereoViewNV": 5259,
-                    "PerViewAttributesNV": 5260,
-                    "FragmentFullyCoveredEXT": 5265,
-                    "MeshShadingNV": 5266,
-                    "ImageFootprintNV": 5282,
-                    "FragmentBarycentricNV": 5284,
-                    "ComputeDerivativeGroupQuadsNV": 5288,
-                    "FragmentDensityEXT": 5291,
-                    "ShadingRateNV": 5291,
-                    "GroupNonUniformPartitionedNV": 5297,
-                    "ShaderNonUniformEXT": 5301,
-                    "RuntimeDescriptorArrayEXT": 5302,
-                    "InputAttachmentArrayDynamicIndexingEXT": 5303,
-                    "UniformTexelBufferArrayDynamicIndexingEXT": 5304,
-                    "StorageTexelBufferArrayDynamicIndexingEXT": 5305,
-                    "UniformBufferArrayNonUniformIndexingEXT": 5306,
-                    "SampledImageArrayNonUniformIndexingEXT": 5307,
-                    "StorageBufferArrayNonUniformIndexingEXT": 5308,
-                    "StorageImageArrayNonUniformIndexingEXT": 5309,
-                    "InputAttachmentArrayNonUniformIndexingEXT": 5310,
-                    "UniformTexelBufferArrayNonUniformIndexingEXT": 5311,
-                    "StorageTexelBufferArrayNonUniformIndexingEXT": 5312,
-                    "RayTracingNV": 5340,
-                    "VulkanMemoryModelKHR": 5345,
-                    "VulkanMemoryModelDeviceScopeKHR": 5346,
-                    "ComputeDerivativeGroupLinearNV": 5350,
-                    "SubgroupShuffleINTEL": 5568,
-                    "SubgroupBufferBlockIOINTEL": 5569,
-                    "SubgroupImageBlockIOINTEL": 5570
-                }
-            },
-            {
-                "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,
-                    "OpGroupNonUniformElect": 333,
-                    "OpGroupNonUniformAll": 334,
-                    "OpGroupNonUniformAny": 335,
-                    "OpGroupNonUniformAllEqual": 336,
-                    "OpGroupNonUniformBroadcast": 337,
-                    "OpGroupNonUniformBroadcastFirst": 338,
-                    "OpGroupNonUniformBallot": 339,
-                    "OpGroupNonUniformInverseBallot": 340,
-                    "OpGroupNonUniformBallotBitExtract": 341,
-                    "OpGroupNonUniformBallotBitCount": 342,
-                    "OpGroupNonUniformBallotFindLSB": 343,
-                    "OpGroupNonUniformBallotFindMSB": 344,
-                    "OpGroupNonUniformShuffle": 345,
-                    "OpGroupNonUniformShuffleXor": 346,
-                    "OpGroupNonUniformShuffleUp": 347,
-                    "OpGroupNonUniformShuffleDown": 348,
-                    "OpGroupNonUniformIAdd": 349,
-                    "OpGroupNonUniformFAdd": 350,
-                    "OpGroupNonUniformIMul": 351,
-                    "OpGroupNonUniformFMul": 352,
-                    "OpGroupNonUniformSMin": 353,
-                    "OpGroupNonUniformUMin": 354,
-                    "OpGroupNonUniformFMin": 355,
-                    "OpGroupNonUniformSMax": 356,
-                    "OpGroupNonUniformUMax": 357,
-                    "OpGroupNonUniformFMax": 358,
-                    "OpGroupNonUniformBitwiseAnd": 359,
-                    "OpGroupNonUniformBitwiseOr": 360,
-                    "OpGroupNonUniformBitwiseXor": 361,
-                    "OpGroupNonUniformLogicalAnd": 362,
-                    "OpGroupNonUniformLogicalOr": 363,
-                    "OpGroupNonUniformLogicalXor": 364,
-                    "OpGroupNonUniformQuadBroadcast": 365,
-                    "OpGroupNonUniformQuadSwap": 366,
-                    "OpSubgroupBallotKHR": 4421,
-                    "OpSubgroupFirstInvocationKHR": 4422,
-                    "OpSubgroupAllKHR": 4428,
-                    "OpSubgroupAnyKHR": 4429,
-                    "OpSubgroupAllEqualKHR": 4430,
-                    "OpSubgroupReadInvocationKHR": 4432,
-                    "OpGroupIAddNonUniformAMD": 5000,
-                    "OpGroupFAddNonUniformAMD": 5001,
-                    "OpGroupFMinNonUniformAMD": 5002,
-                    "OpGroupUMinNonUniformAMD": 5003,
-                    "OpGroupSMinNonUniformAMD": 5004,
-                    "OpGroupFMaxNonUniformAMD": 5005,
-                    "OpGroupUMaxNonUniformAMD": 5006,
-                    "OpGroupSMaxNonUniformAMD": 5007,
-                    "OpFragmentMaskFetchAMD": 5011,
-                    "OpFragmentFetchAMD": 5012,
-                    "OpImageSampleFootprintNV": 5283,
-                    "OpGroupNonUniformPartitionNV": 5296,
-                    "OpWritePackedPrimitiveIndices4x8NV": 5299,
-                    "OpReportIntersectionNV": 5334,
-                    "OpIgnoreIntersectionNV": 5335,
-                    "OpTerminateRayNV": 5336,
-                    "OpTraceNV": 5337,
-                    "OpTypeAccelerationStructureNV": 5341,
-                    "OpExecuteCallableNV": 5344,
-                    "OpSubgroupShuffleINTEL": 5571,
-                    "OpSubgroupShuffleDownINTEL": 5572,
-                    "OpSubgroupShuffleUpINTEL": 5573,
-                    "OpSubgroupShuffleXorINTEL": 5574,
-                    "OpSubgroupBlockReadINTEL": 5575,
-                    "OpSubgroupBlockWriteINTEL": 5576,
-                    "OpSubgroupImageBlockReadINTEL": 5577,
-                    "OpSubgroupImageBlockWriteINTEL": 5578,
-                    "OpDecorateStringGOOGLE": 5632,
-                    "OpMemberDecorateStringGOOGLE": 5633
-                }
-            }
-        ]
-    }
-}
-
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
deleted file mode 100644
index 9b7b098..0000000
--- a/include/spirv/unified1/spirv.lua
+++ /dev/null
@@ -1,1153 +0,0 @@
--- Copyright (c) 2014-2018 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#
--- 
--- - 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']
--- - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.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 = 0x00010300,
-    Revision = 6,
-    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,
-        TaskNV = 5267,
-        MeshNV = 5268,
-        RayGenerationNV = 5313,
-        IntersectionNV = 5314,
-        AnyHitNV = 5315,
-        ClosestHitNV = 5316,
-        MissNV = 5317,
-        CallableNV = 5318,
-    },
-
-    AddressingModel = {
-        Logical = 0,
-        Physical32 = 1,
-        Physical64 = 2,
-    },
-
-    MemoryModel = {
-        Simple = 0,
-        GLSL450 = 1,
-        OpenCL = 2,
-        VulkanKHR = 3,
-    },
-
-    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,
-        PostDepthCoverage = 4446,
-        DenormPreserve = 4459,
-        DenormFlushToZero = 4460,
-        SignedZeroInfNanPreserve = 4461,
-        RoundingModeRTE = 4462,
-        RoundingModeRTZ = 4463,
-        StencilRefReplacingEXT = 5027,
-        OutputLinesNV = 5269,
-        OutputPrimitivesNV = 5270,
-        DerivativeGroupQuadsNV = 5289,
-        DerivativeGroupLinearNV = 5290,
-        OutputTrianglesNV = 5298,
-    },
-
-    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,
-        CallableDataNV = 5328,
-        IncomingCallableDataNV = 5329,
-        RayPayloadNV = 5338,
-        HitAttributeNV = 5339,
-        IncomingRayPayloadNV = 5342,
-        ShaderRecordBufferNV = 5343,
-    },
-
-    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,
-        MakeTexelAvailableKHR = 8,
-        MakeTexelVisibleKHR = 9,
-        NonPrivateTexelKHR = 10,
-        VolatileTexelKHR = 11,
-    },
-
-    ImageOperandsMask = {
-        MaskNone = 0,
-        Bias = 0x00000001,
-        Lod = 0x00000002,
-        Grad = 0x00000004,
-        ConstOffset = 0x00000008,
-        Offset = 0x00000010,
-        ConstOffsets = 0x00000020,
-        Sample = 0x00000040,
-        MinLod = 0x00000080,
-        MakeTexelAvailableKHR = 0x00000100,
-        MakeTexelVisibleKHR = 0x00000200,
-        NonPrivateTexelKHR = 0x00000400,
-        VolatileTexelKHR = 0x00000800,
-    },
-
-    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,
-        NoSignedWrap = 4469,
-        NoUnsignedWrap = 4470,
-        ExplicitInterpAMD = 4999,
-        OverrideCoverageNV = 5248,
-        PassthroughNV = 5250,
-        ViewportRelativeNV = 5252,
-        SecondaryViewportRelativeNV = 5256,
-        PerPrimitiveNV = 5271,
-        PerViewNV = 5272,
-        PerTaskNV = 5273,
-        PerVertexNV = 5285,
-        NonUniformEXT = 5300,
-        HlslCounterBufferGOOGLE = 5634,
-        HlslSemanticGOOGLE = 5635,
-    },
-
-    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,
-        SubgroupEqMask = 4416,
-        SubgroupEqMaskKHR = 4416,
-        SubgroupGeMask = 4417,
-        SubgroupGeMaskKHR = 4417,
-        SubgroupGtMask = 4418,
-        SubgroupGtMaskKHR = 4418,
-        SubgroupLeMask = 4419,
-        SubgroupLeMaskKHR = 4419,
-        SubgroupLtMask = 4420,
-        SubgroupLtMaskKHR = 4420,
-        BaseVertex = 4424,
-        BaseInstance = 4425,
-        DrawIndex = 4426,
-        DeviceIndex = 4438,
-        ViewIndex = 4440,
-        BaryCoordNoPerspAMD = 4992,
-        BaryCoordNoPerspCentroidAMD = 4993,
-        BaryCoordNoPerspSampleAMD = 4994,
-        BaryCoordSmoothAMD = 4995,
-        BaryCoordSmoothCentroidAMD = 4996,
-        BaryCoordSmoothSampleAMD = 4997,
-        BaryCoordPullModelAMD = 4998,
-        FragStencilRefEXT = 5014,
-        ViewportMaskNV = 5253,
-        SecondaryPositionNV = 5257,
-        SecondaryViewportMaskNV = 5258,
-        PositionPerViewNV = 5261,
-        ViewportMaskPerViewNV = 5262,
-        FullyCoveredEXT = 5264,
-        TaskCountNV = 5274,
-        PrimitiveCountNV = 5275,
-        PrimitiveIndicesNV = 5276,
-        ClipDistancePerViewNV = 5277,
-        CullDistancePerViewNV = 5278,
-        LayerPerViewNV = 5279,
-        MeshViewCountNV = 5280,
-        MeshViewIndicesNV = 5281,
-        BaryCoordNV = 5286,
-        BaryCoordNoPerspNV = 5287,
-        FragSizeEXT = 5292,
-        FragmentSizeNV = 5292,
-        FragInvocationCountEXT = 5293,
-        InvocationsPerPixelNV = 5293,
-        LaunchIdNV = 5319,
-        LaunchSizeNV = 5320,
-        WorldRayOriginNV = 5321,
-        WorldRayDirectionNV = 5322,
-        ObjectRayOriginNV = 5323,
-        ObjectRayDirectionNV = 5324,
-        RayTminNV = 5325,
-        RayTmaxNV = 5326,
-        InstanceCustomIndexNV = 5327,
-        ObjectToWorldNV = 5330,
-        WorldToObjectNV = 5331,
-        HitTNV = 5332,
-        HitKindNV = 5333,
-        IncomingRayFlagsNV = 5351,
-    },
-
-    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,
-        OutputMemoryKHR = 12,
-        MakeAvailableKHR = 13,
-        MakeVisibleKHR = 14,
-    },
-
-    MemorySemanticsMask = {
-        MaskNone = 0,
-        Acquire = 0x00000002,
-        Release = 0x00000004,
-        AcquireRelease = 0x00000008,
-        SequentiallyConsistent = 0x00000010,
-        UniformMemory = 0x00000040,
-        SubgroupMemory = 0x00000080,
-        WorkgroupMemory = 0x00000100,
-        CrossWorkgroupMemory = 0x00000200,
-        AtomicCounterMemory = 0x00000400,
-        ImageMemory = 0x00000800,
-        OutputMemoryKHR = 0x00001000,
-        MakeAvailableKHR = 0x00002000,
-        MakeVisibleKHR = 0x00004000,
-    },
-
-    MemoryAccessShift = {
-        Volatile = 0,
-        Aligned = 1,
-        Nontemporal = 2,
-        MakePointerAvailableKHR = 3,
-        MakePointerVisibleKHR = 4,
-        NonPrivatePointerKHR = 5,
-    },
-
-    MemoryAccessMask = {
-        MaskNone = 0,
-        Volatile = 0x00000001,
-        Aligned = 0x00000002,
-        Nontemporal = 0x00000004,
-        MakePointerAvailableKHR = 0x00000008,
-        MakePointerVisibleKHR = 0x00000010,
-        NonPrivatePointerKHR = 0x00000020,
-    },
-
-    Scope = {
-        CrossDevice = 0,
-        Device = 1,
-        Workgroup = 2,
-        Subgroup = 3,
-        Invocation = 4,
-        QueueFamilyKHR = 5,
-    },
-
-    GroupOperation = {
-        Reduce = 0,
-        InclusiveScan = 1,
-        ExclusiveScan = 2,
-        ClusteredReduce = 3,
-        PartitionedReduceNV = 6,
-        PartitionedInclusiveScanNV = 7,
-        PartitionedExclusiveScanNV = 8,
-    },
-
-    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,
-        GroupNonUniform = 61,
-        GroupNonUniformVote = 62,
-        GroupNonUniformArithmetic = 63,
-        GroupNonUniformBallot = 64,
-        GroupNonUniformShuffle = 65,
-        GroupNonUniformShuffleRelative = 66,
-        GroupNonUniformClustered = 67,
-        GroupNonUniformQuad = 68,
-        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,
-        AtomicStorageOps = 4445,
-        SampleMaskPostDepthCoverage = 4447,
-        StorageBuffer8BitAccess = 4448,
-        UniformAndStorageBuffer8BitAccess = 4449,
-        StoragePushConstant8 = 4450,
-        DenormPreserve = 4464,
-        DenormFlushToZero = 4465,
-        SignedZeroInfNanPreserve = 4466,
-        RoundingModeRTE = 4467,
-        RoundingModeRTZ = 4468,
-        Float16ImageAMD = 5008,
-        ImageGatherBiasLodAMD = 5009,
-        FragmentMaskAMD = 5010,
-        StencilExportEXT = 5013,
-        ImageReadWriteLodAMD = 5015,
-        SampleMaskOverrideCoverageNV = 5249,
-        GeometryShaderPassthroughNV = 5251,
-        ShaderViewportIndexLayerEXT = 5254,
-        ShaderViewportIndexLayerNV = 5254,
-        ShaderViewportMaskNV = 5255,
-        ShaderStereoViewNV = 5259,
-        PerViewAttributesNV = 5260,
-        FragmentFullyCoveredEXT = 5265,
-        MeshShadingNV = 5266,
-        ImageFootprintNV = 5282,
-        FragmentBarycentricNV = 5284,
-        ComputeDerivativeGroupQuadsNV = 5288,
-        FragmentDensityEXT = 5291,
-        ShadingRateNV = 5291,
-        GroupNonUniformPartitionedNV = 5297,
-        ShaderNonUniformEXT = 5301,
-        RuntimeDescriptorArrayEXT = 5302,
-        InputAttachmentArrayDynamicIndexingEXT = 5303,
-        UniformTexelBufferArrayDynamicIndexingEXT = 5304,
-        StorageTexelBufferArrayDynamicIndexingEXT = 5305,
-        UniformBufferArrayNonUniformIndexingEXT = 5306,
-        SampledImageArrayNonUniformIndexingEXT = 5307,
-        StorageBufferArrayNonUniformIndexingEXT = 5308,
-        StorageImageArrayNonUniformIndexingEXT = 5309,
-        InputAttachmentArrayNonUniformIndexingEXT = 5310,
-        UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
-        StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
-        RayTracingNV = 5340,
-        VulkanMemoryModelKHR = 5345,
-        VulkanMemoryModelDeviceScopeKHR = 5346,
-        ComputeDerivativeGroupLinearNV = 5350,
-        SubgroupShuffleINTEL = 5568,
-        SubgroupBufferBlockIOINTEL = 5569,
-        SubgroupImageBlockIOINTEL = 5570,
-    },
-
-    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,
-        OpGroupNonUniformElect = 333,
-        OpGroupNonUniformAll = 334,
-        OpGroupNonUniformAny = 335,
-        OpGroupNonUniformAllEqual = 336,
-        OpGroupNonUniformBroadcast = 337,
-        OpGroupNonUniformBroadcastFirst = 338,
-        OpGroupNonUniformBallot = 339,
-        OpGroupNonUniformInverseBallot = 340,
-        OpGroupNonUniformBallotBitExtract = 341,
-        OpGroupNonUniformBallotBitCount = 342,
-        OpGroupNonUniformBallotFindLSB = 343,
-        OpGroupNonUniformBallotFindMSB = 344,
-        OpGroupNonUniformShuffle = 345,
-        OpGroupNonUniformShuffleXor = 346,
-        OpGroupNonUniformShuffleUp = 347,
-        OpGroupNonUniformShuffleDown = 348,
-        OpGroupNonUniformIAdd = 349,
-        OpGroupNonUniformFAdd = 350,
-        OpGroupNonUniformIMul = 351,
-        OpGroupNonUniformFMul = 352,
-        OpGroupNonUniformSMin = 353,
-        OpGroupNonUniformUMin = 354,
-        OpGroupNonUniformFMin = 355,
-        OpGroupNonUniformSMax = 356,
-        OpGroupNonUniformUMax = 357,
-        OpGroupNonUniformFMax = 358,
-        OpGroupNonUniformBitwiseAnd = 359,
-        OpGroupNonUniformBitwiseOr = 360,
-        OpGroupNonUniformBitwiseXor = 361,
-        OpGroupNonUniformLogicalAnd = 362,
-        OpGroupNonUniformLogicalOr = 363,
-        OpGroupNonUniformLogicalXor = 364,
-        OpGroupNonUniformQuadBroadcast = 365,
-        OpGroupNonUniformQuadSwap = 366,
-        OpSubgroupBallotKHR = 4421,
-        OpSubgroupFirstInvocationKHR = 4422,
-        OpSubgroupAllKHR = 4428,
-        OpSubgroupAnyKHR = 4429,
-        OpSubgroupAllEqualKHR = 4430,
-        OpSubgroupReadInvocationKHR = 4432,
-        OpGroupIAddNonUniformAMD = 5000,
-        OpGroupFAddNonUniformAMD = 5001,
-        OpGroupFMinNonUniformAMD = 5002,
-        OpGroupUMinNonUniformAMD = 5003,
-        OpGroupSMinNonUniformAMD = 5004,
-        OpGroupFMaxNonUniformAMD = 5005,
-        OpGroupUMaxNonUniformAMD = 5006,
-        OpGroupSMaxNonUniformAMD = 5007,
-        OpFragmentMaskFetchAMD = 5011,
-        OpFragmentFetchAMD = 5012,
-        OpImageSampleFootprintNV = 5283,
-        OpGroupNonUniformPartitionNV = 5296,
-        OpWritePackedPrimitiveIndices4x8NV = 5299,
-        OpReportIntersectionNV = 5334,
-        OpIgnoreIntersectionNV = 5335,
-        OpTerminateRayNV = 5336,
-        OpTraceNV = 5337,
-        OpTypeAccelerationStructureNV = 5341,
-        OpExecuteCallableNV = 5344,
-        OpSubgroupShuffleINTEL = 5571,
-        OpSubgroupShuffleDownINTEL = 5572,
-        OpSubgroupShuffleUpINTEL = 5573,
-        OpSubgroupShuffleXorINTEL = 5574,
-        OpSubgroupBlockReadINTEL = 5575,
-        OpSubgroupBlockWriteINTEL = 5576,
-        OpSubgroupImageBlockReadINTEL = 5577,
-        OpSubgroupImageBlockWriteINTEL = 5578,
-        OpDecorateStringGOOGLE = 5632,
-        OpMemberDecorateStringGOOGLE = 5633,
-    },
-
-}
-
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
deleted file mode 100755
index 7961735..0000000
--- a/include/spirv/unified1/spirv.py
+++ /dev/null
@@ -1,1153 +0,0 @@
-# Copyright (c) 2014-2018 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#
-# 
-# - 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']
-# - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.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' : 0x00010300,
-    'Revision' : 6,
-    '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,
-        'TaskNV' : 5267,
-        'MeshNV' : 5268,
-        'RayGenerationNV' : 5313,
-        'IntersectionNV' : 5314,
-        'AnyHitNV' : 5315,
-        'ClosestHitNV' : 5316,
-        'MissNV' : 5317,
-        'CallableNV' : 5318,
-    },
-
-    'AddressingModel' : {
-        'Logical' : 0,
-        'Physical32' : 1,
-        'Physical64' : 2,
-    },
-
-    'MemoryModel' : {
-        'Simple' : 0,
-        'GLSL450' : 1,
-        'OpenCL' : 2,
-        'VulkanKHR' : 3,
-    },
-
-    '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,
-        'PostDepthCoverage' : 4446,
-        'DenormPreserve' : 4459,
-        'DenormFlushToZero' : 4460,
-        'SignedZeroInfNanPreserve' : 4461,
-        'RoundingModeRTE' : 4462,
-        'RoundingModeRTZ' : 4463,
-        'StencilRefReplacingEXT' : 5027,
-        'OutputLinesNV' : 5269,
-        'OutputPrimitivesNV' : 5270,
-        'DerivativeGroupQuadsNV' : 5289,
-        'DerivativeGroupLinearNV' : 5290,
-        'OutputTrianglesNV' : 5298,
-    },
-
-    '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,
-        'CallableDataNV' : 5328,
-        'IncomingCallableDataNV' : 5329,
-        'RayPayloadNV' : 5338,
-        'HitAttributeNV' : 5339,
-        'IncomingRayPayloadNV' : 5342,
-        'ShaderRecordBufferNV' : 5343,
-    },
-
-    '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,
-        'MakeTexelAvailableKHR' : 8,
-        'MakeTexelVisibleKHR' : 9,
-        'NonPrivateTexelKHR' : 10,
-        'VolatileTexelKHR' : 11,
-    },
-
-    'ImageOperandsMask' : {
-        'MaskNone' : 0,
-        'Bias' : 0x00000001,
-        'Lod' : 0x00000002,
-        'Grad' : 0x00000004,
-        'ConstOffset' : 0x00000008,
-        'Offset' : 0x00000010,
-        'ConstOffsets' : 0x00000020,
-        'Sample' : 0x00000040,
-        'MinLod' : 0x00000080,
-        'MakeTexelAvailableKHR' : 0x00000100,
-        'MakeTexelVisibleKHR' : 0x00000200,
-        'NonPrivateTexelKHR' : 0x00000400,
-        'VolatileTexelKHR' : 0x00000800,
-    },
-
-    '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,
-        'NoSignedWrap' : 4469,
-        'NoUnsignedWrap' : 4470,
-        'ExplicitInterpAMD' : 4999,
-        'OverrideCoverageNV' : 5248,
-        'PassthroughNV' : 5250,
-        'ViewportRelativeNV' : 5252,
-        'SecondaryViewportRelativeNV' : 5256,
-        'PerPrimitiveNV' : 5271,
-        'PerViewNV' : 5272,
-        'PerTaskNV' : 5273,
-        'PerVertexNV' : 5285,
-        'NonUniformEXT' : 5300,
-        'HlslCounterBufferGOOGLE' : 5634,
-        'HlslSemanticGOOGLE' : 5635,
-    },
-
-    '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,
-        'SubgroupEqMask' : 4416,
-        'SubgroupEqMaskKHR' : 4416,
-        'SubgroupGeMask' : 4417,
-        'SubgroupGeMaskKHR' : 4417,
-        'SubgroupGtMask' : 4418,
-        'SubgroupGtMaskKHR' : 4418,
-        'SubgroupLeMask' : 4419,
-        'SubgroupLeMaskKHR' : 4419,
-        'SubgroupLtMask' : 4420,
-        'SubgroupLtMaskKHR' : 4420,
-        'BaseVertex' : 4424,
-        'BaseInstance' : 4425,
-        'DrawIndex' : 4426,
-        'DeviceIndex' : 4438,
-        'ViewIndex' : 4440,
-        'BaryCoordNoPerspAMD' : 4992,
-        'BaryCoordNoPerspCentroidAMD' : 4993,
-        'BaryCoordNoPerspSampleAMD' : 4994,
-        'BaryCoordSmoothAMD' : 4995,
-        'BaryCoordSmoothCentroidAMD' : 4996,
-        'BaryCoordSmoothSampleAMD' : 4997,
-        'BaryCoordPullModelAMD' : 4998,
-        'FragStencilRefEXT' : 5014,
-        'ViewportMaskNV' : 5253,
-        'SecondaryPositionNV' : 5257,
-        'SecondaryViewportMaskNV' : 5258,
-        'PositionPerViewNV' : 5261,
-        'ViewportMaskPerViewNV' : 5262,
-        'FullyCoveredEXT' : 5264,
-        'TaskCountNV' : 5274,
-        'PrimitiveCountNV' : 5275,
-        'PrimitiveIndicesNV' : 5276,
-        'ClipDistancePerViewNV' : 5277,
-        'CullDistancePerViewNV' : 5278,
-        'LayerPerViewNV' : 5279,
-        'MeshViewCountNV' : 5280,
-        'MeshViewIndicesNV' : 5281,
-        'BaryCoordNV' : 5286,
-        'BaryCoordNoPerspNV' : 5287,
-        'FragSizeEXT' : 5292,
-        'FragmentSizeNV' : 5292,
-        'FragInvocationCountEXT' : 5293,
-        'InvocationsPerPixelNV' : 5293,
-        'LaunchIdNV' : 5319,
-        'LaunchSizeNV' : 5320,
-        'WorldRayOriginNV' : 5321,
-        'WorldRayDirectionNV' : 5322,
-        'ObjectRayOriginNV' : 5323,
-        'ObjectRayDirectionNV' : 5324,
-        'RayTminNV' : 5325,
-        'RayTmaxNV' : 5326,
-        'InstanceCustomIndexNV' : 5327,
-        'ObjectToWorldNV' : 5330,
-        'WorldToObjectNV' : 5331,
-        'HitTNV' : 5332,
-        'HitKindNV' : 5333,
-        'IncomingRayFlagsNV' : 5351,
-    },
-
-    '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,
-        'OutputMemoryKHR' : 12,
-        'MakeAvailableKHR' : 13,
-        'MakeVisibleKHR' : 14,
-    },
-
-    'MemorySemanticsMask' : {
-        'MaskNone' : 0,
-        'Acquire' : 0x00000002,
-        'Release' : 0x00000004,
-        'AcquireRelease' : 0x00000008,
-        'SequentiallyConsistent' : 0x00000010,
-        'UniformMemory' : 0x00000040,
-        'SubgroupMemory' : 0x00000080,
-        'WorkgroupMemory' : 0x00000100,
-        'CrossWorkgroupMemory' : 0x00000200,
-        'AtomicCounterMemory' : 0x00000400,
-        'ImageMemory' : 0x00000800,
-        'OutputMemoryKHR' : 0x00001000,
-        'MakeAvailableKHR' : 0x00002000,
-        'MakeVisibleKHR' : 0x00004000,
-    },
-
-    'MemoryAccessShift' : {
-        'Volatile' : 0,
-        'Aligned' : 1,
-        'Nontemporal' : 2,
-        'MakePointerAvailableKHR' : 3,
-        'MakePointerVisibleKHR' : 4,
-        'NonPrivatePointerKHR' : 5,
-    },
-
-    'MemoryAccessMask' : {
-        'MaskNone' : 0,
-        'Volatile' : 0x00000001,
-        'Aligned' : 0x00000002,
-        'Nontemporal' : 0x00000004,
-        'MakePointerAvailableKHR' : 0x00000008,
-        'MakePointerVisibleKHR' : 0x00000010,
-        'NonPrivatePointerKHR' : 0x00000020,
-    },
-
-    'Scope' : {
-        'CrossDevice' : 0,
-        'Device' : 1,
-        'Workgroup' : 2,
-        'Subgroup' : 3,
-        'Invocation' : 4,
-        'QueueFamilyKHR' : 5,
-    },
-
-    'GroupOperation' : {
-        'Reduce' : 0,
-        'InclusiveScan' : 1,
-        'ExclusiveScan' : 2,
-        'ClusteredReduce' : 3,
-        'PartitionedReduceNV' : 6,
-        'PartitionedInclusiveScanNV' : 7,
-        'PartitionedExclusiveScanNV' : 8,
-    },
-
-    '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,
-        'GroupNonUniform' : 61,
-        'GroupNonUniformVote' : 62,
-        'GroupNonUniformArithmetic' : 63,
-        'GroupNonUniformBallot' : 64,
-        'GroupNonUniformShuffle' : 65,
-        'GroupNonUniformShuffleRelative' : 66,
-        'GroupNonUniformClustered' : 67,
-        'GroupNonUniformQuad' : 68,
-        '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,
-        'AtomicStorageOps' : 4445,
-        'SampleMaskPostDepthCoverage' : 4447,
-        'StorageBuffer8BitAccess' : 4448,
-        'UniformAndStorageBuffer8BitAccess' : 4449,
-        'StoragePushConstant8' : 4450,
-        'DenormPreserve' : 4464,
-        'DenormFlushToZero' : 4465,
-        'SignedZeroInfNanPreserve' : 4466,
-        'RoundingModeRTE' : 4467,
-        'RoundingModeRTZ' : 4468,
-        'Float16ImageAMD' : 5008,
-        'ImageGatherBiasLodAMD' : 5009,
-        'FragmentMaskAMD' : 5010,
-        'StencilExportEXT' : 5013,
-        'ImageReadWriteLodAMD' : 5015,
-        'SampleMaskOverrideCoverageNV' : 5249,
-        'GeometryShaderPassthroughNV' : 5251,
-        'ShaderViewportIndexLayerEXT' : 5254,
-        'ShaderViewportIndexLayerNV' : 5254,
-        'ShaderViewportMaskNV' : 5255,
-        'ShaderStereoViewNV' : 5259,
-        'PerViewAttributesNV' : 5260,
-        'FragmentFullyCoveredEXT' : 5265,
-        'MeshShadingNV' : 5266,
-        'ImageFootprintNV' : 5282,
-        'FragmentBarycentricNV' : 5284,
-        'ComputeDerivativeGroupQuadsNV' : 5288,
-        'FragmentDensityEXT' : 5291,
-        'ShadingRateNV' : 5291,
-        'GroupNonUniformPartitionedNV' : 5297,
-        'ShaderNonUniformEXT' : 5301,
-        'RuntimeDescriptorArrayEXT' : 5302,
-        'InputAttachmentArrayDynamicIndexingEXT' : 5303,
-        'UniformTexelBufferArrayDynamicIndexingEXT' : 5304,
-        'StorageTexelBufferArrayDynamicIndexingEXT' : 5305,
-        'UniformBufferArrayNonUniformIndexingEXT' : 5306,
-        'SampledImageArrayNonUniformIndexingEXT' : 5307,
-        'StorageBufferArrayNonUniformIndexingEXT' : 5308,
-        'StorageImageArrayNonUniformIndexingEXT' : 5309,
-        'InputAttachmentArrayNonUniformIndexingEXT' : 5310,
-        'UniformTexelBufferArrayNonUniformIndexingEXT' : 5311,
-        'StorageTexelBufferArrayNonUniformIndexingEXT' : 5312,
-        'RayTracingNV' : 5340,
-        'VulkanMemoryModelKHR' : 5345,
-        'VulkanMemoryModelDeviceScopeKHR' : 5346,
-        'ComputeDerivativeGroupLinearNV' : 5350,
-        'SubgroupShuffleINTEL' : 5568,
-        'SubgroupBufferBlockIOINTEL' : 5569,
-        'SubgroupImageBlockIOINTEL' : 5570,
-    },
-
-    '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,
-        'OpGroupNonUniformElect' : 333,
-        'OpGroupNonUniformAll' : 334,
-        'OpGroupNonUniformAny' : 335,
-        'OpGroupNonUniformAllEqual' : 336,
-        'OpGroupNonUniformBroadcast' : 337,
-        'OpGroupNonUniformBroadcastFirst' : 338,
-        'OpGroupNonUniformBallot' : 339,
-        'OpGroupNonUniformInverseBallot' : 340,
-        'OpGroupNonUniformBallotBitExtract' : 341,
-        'OpGroupNonUniformBallotBitCount' : 342,
-        'OpGroupNonUniformBallotFindLSB' : 343,
-        'OpGroupNonUniformBallotFindMSB' : 344,
-        'OpGroupNonUniformShuffle' : 345,
-        'OpGroupNonUniformShuffleXor' : 346,
-        'OpGroupNonUniformShuffleUp' : 347,
-        'OpGroupNonUniformShuffleDown' : 348,
-        'OpGroupNonUniformIAdd' : 349,
-        'OpGroupNonUniformFAdd' : 350,
-        'OpGroupNonUniformIMul' : 351,
-        'OpGroupNonUniformFMul' : 352,
-        'OpGroupNonUniformSMin' : 353,
-        'OpGroupNonUniformUMin' : 354,
-        'OpGroupNonUniformFMin' : 355,
-        'OpGroupNonUniformSMax' : 356,
-        'OpGroupNonUniformUMax' : 357,
-        'OpGroupNonUniformFMax' : 358,
-        'OpGroupNonUniformBitwiseAnd' : 359,
-        'OpGroupNonUniformBitwiseOr' : 360,
-        'OpGroupNonUniformBitwiseXor' : 361,
-        'OpGroupNonUniformLogicalAnd' : 362,
-        'OpGroupNonUniformLogicalOr' : 363,
-        'OpGroupNonUniformLogicalXor' : 364,
-        'OpGroupNonUniformQuadBroadcast' : 365,
-        'OpGroupNonUniformQuadSwap' : 366,
-        'OpSubgroupBallotKHR' : 4421,
-        'OpSubgroupFirstInvocationKHR' : 4422,
-        'OpSubgroupAllKHR' : 4428,
-        'OpSubgroupAnyKHR' : 4429,
-        'OpSubgroupAllEqualKHR' : 4430,
-        'OpSubgroupReadInvocationKHR' : 4432,
-        'OpGroupIAddNonUniformAMD' : 5000,
-        'OpGroupFAddNonUniformAMD' : 5001,
-        'OpGroupFMinNonUniformAMD' : 5002,
-        'OpGroupUMinNonUniformAMD' : 5003,
-        'OpGroupSMinNonUniformAMD' : 5004,
-        'OpGroupFMaxNonUniformAMD' : 5005,
-        'OpGroupUMaxNonUniformAMD' : 5006,
-        'OpGroupSMaxNonUniformAMD' : 5007,
-        'OpFragmentMaskFetchAMD' : 5011,
-        'OpFragmentFetchAMD' : 5012,
-        'OpImageSampleFootprintNV' : 5283,
-        'OpGroupNonUniformPartitionNV' : 5296,
-        'OpWritePackedPrimitiveIndices4x8NV' : 5299,
-        'OpReportIntersectionNV' : 5334,
-        'OpIgnoreIntersectionNV' : 5335,
-        'OpTerminateRayNV' : 5336,
-        'OpTraceNV' : 5337,
-        'OpTypeAccelerationStructureNV' : 5341,
-        'OpExecuteCallableNV' : 5344,
-        'OpSubgroupShuffleINTEL' : 5571,
-        'OpSubgroupShuffleDownINTEL' : 5572,
-        'OpSubgroupShuffleUpINTEL' : 5573,
-        'OpSubgroupShuffleXorINTEL' : 5574,
-        'OpSubgroupBlockReadINTEL' : 5575,
-        'OpSubgroupBlockWriteINTEL' : 5576,
-        'OpSubgroupImageBlockReadINTEL' : 5577,
-        'OpSubgroupImageBlockWriteINTEL' : 5578,
-        'OpDecorateStringGOOGLE' : 5632,
-        'OpMemberDecorateStringGOOGLE' : 5633,
-    },
-
-}
-
diff --git a/src/Vulkan/vulkan.vcxproj b/src/Vulkan/vulkan.vcxproj
index 4c18fcb..0bd3618 100644
--- a/src/Vulkan/vulkan.vcxproj
+++ b/src/Vulkan/vulkan.vcxproj
@@ -60,7 +60,7 @@
       <FunctionLevelLinking>true</FunctionLevelLinking>

       <IntrinsicFunctions>true</IntrinsicFunctions>

       <SDLCheck>true</SDLCheck>

-      <AdditionalIncludeDirectories>$(SolutionDir)include;$(SolutionDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>$(SolutionDir)include;$(SolutionDir)third_party\SPIRV-Headers\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;NOMINMAX;_SECURE_SCL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

       <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>

@@ -82,7 +82,7 @@
       <WarningLevel>Level3</WarningLevel>

       <Optimization>Disabled</Optimization>

       <SDLCheck>true</SDLCheck>

-      <AdditionalIncludeDirectories>$(SolutionDir)include;$(SolutionDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>$(SolutionDir)include;$(SolutionDir)third_party\SPIRV-Headers\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

       <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;NOMINMAX;DEBUGGER_WAIT_DIALOG;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

       <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>

@@ -323,4 +323,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

   <ImportGroup Label="ExtensionTargets">

   </ImportGroup>

-</Project>

+</Project>
\ No newline at end of file
diff --git a/src/Vulkan/vulkan.vcxproj.filters b/src/Vulkan/vulkan.vcxproj.filters
index 823aeb9..f3fbdbd 100644
--- a/src/Vulkan/vulkan.vcxproj.filters
+++ b/src/Vulkan/vulkan.vcxproj.filters
@@ -258,6 +258,9 @@
     <ClCompile Include="VkQueryPool.cpp">

       <Filter>Source Files\Vulkan</Filter>

     </ClCompile>

+    <ClCompile Include="..\Pipeline\SpirvShader.cpp">

+      <Filter>Source Files\Pipeline</Filter>

+    </ClCompile>

   </ItemGroup>

   <ItemGroup>

     <ClInclude Include="resource.h">

@@ -534,6 +537,9 @@
       <Filter>Header Files\Vulkan</Filter>

     </ClInclude>

     <ClInclude Include="Version.h" />

+    <ClInclude Include="..\Pipeline\SpirvShader.hpp">

+      <Filter>Header Files\Pipeline</Filter>

+    </ClInclude>

   </ItemGroup>

   <ItemGroup>

     <None Include="swiftshader_icd.def" />