Home | History | Annotate | Download | only in unified1
      1 {
      2   "copyright" : [
      3     "Copyright (c) 2014-2016 The Khronos Group Inc.",
      4     "",
      5     "Permission is hereby granted, free of charge, to any person obtaining a copy",
      6     "of this software and/or associated documentation files (the \"Materials\"),",
      7     "to deal in the Materials without restriction, including without limitation",
      8     "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
      9     "and/or sell copies of the Materials, and to permit persons to whom the",
     10     "Materials are furnished to do so, subject to the following conditions:",
     11     "",
     12     "The above copyright notice and this permission notice shall be included in",
     13     "all copies or substantial portions of the Materials.",
     14     "",
     15     "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
     16     "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
     17     "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
     18     "",
     19     "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
     20     "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
     21     "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
     22     "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
     23     "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
     24     "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
     25     "IN THE MATERIALS."
     26   ],
     27   "magic_number" : "0x07230203",
     28   "major_version" : 1,
     29   "minor_version" : 3,
     30   "revision" : 1,
     31   "instructions" : [
     32     {
     33       "opname" : "OpNop",
     34       "opcode" : 0
     35     },
     36     {
     37       "opname" : "OpUndef",
     38       "opcode" : 1,
     39       "operands" : [
     40         { "kind" : "IdResultType" },
     41         { "kind" : "IdResult" }
     42       ]
     43     },
     44     {
     45       "opname" : "OpSourceContinued",
     46       "opcode" : 2,
     47       "operands" : [
     48         { "kind" : "LiteralString", "name" : "'Continued Source'" }
     49       ]
     50     },
     51     {
     52       "opname" : "OpSource",
     53       "opcode" : 3,
     54       "operands" : [
     55         { "kind" : "SourceLanguage" },
     56         { "kind" : "LiteralInteger",                     "name" : "'Version'" },
     57         { "kind" : "IdRef",          "quantifier" : "?", "name" : "'File'" },
     58         { "kind" : "LiteralString",  "quantifier" : "?", "name" : "'Source'" }
     59       ]
     60     },
     61     {
     62       "opname" : "OpSourceExtension",
     63       "opcode" : 4,
     64       "operands" : [
     65         { "kind" : "LiteralString", "name" : "'Extension'" }
     66       ]
     67     },
     68     {
     69       "opname" : "OpName",
     70       "opcode" : 5,
     71       "operands" : [
     72         { "kind" : "IdRef",         "name" : "'Target'" },
     73         { "kind" : "LiteralString", "name" : "'Name'" }
     74       ]
     75     },
     76     {
     77       "opname" : "OpMemberName",
     78       "opcode" : 6,
     79       "operands" : [
     80         { "kind" : "IdRef",          "name" : "'Type'" },
     81         { "kind" : "LiteralInteger", "name" : "'Member'" },
     82         { "kind" : "LiteralString",  "name" : "'Name'" }
     83       ]
     84     },
     85     {
     86       "opname" : "OpString",
     87       "opcode" : 7,
     88       "operands" : [
     89         { "kind" : "IdResult" },
     90         { "kind" : "LiteralString", "name" : "'String'" }
     91       ]
     92     },
     93     {
     94       "opname" : "OpLine",
     95       "opcode" : 8,
     96       "operands" : [
     97         { "kind" : "IdRef",          "name" : "'File'" },
     98         { "kind" : "LiteralInteger", "name" : "'Line'" },
     99         { "kind" : "LiteralInteger", "name" : "'Column'" }
    100       ]
    101     },
    102     {
    103       "opname" : "OpExtension",
    104       "opcode" : 10,
    105       "operands" : [
    106         { "kind" : "LiteralString", "name" : "'Name'" }
    107       ]
    108     },
    109     {
    110       "opname" : "OpExtInstImport",
    111       "opcode" : 11,
    112       "operands" : [
    113         { "kind" : "IdResult" },
    114         { "kind" : "LiteralString", "name" : "'Name'" }
    115       ]
    116     },
    117     {
    118       "opname" : "OpExtInst",
    119       "opcode" : 12,
    120       "operands" : [
    121         { "kind" : "IdResultType" },
    122         { "kind" : "IdResult" },
    123         { "kind" : "IdRef",                                     "name" : "'Set'" },
    124         { "kind" : "LiteralExtInstInteger",                     "name" : "'Instruction'" },
    125         { "kind" : "IdRef",                 "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." }
    126       ]
    127     },
    128     {
    129       "opname" : "OpMemoryModel",
    130       "opcode" : 14,
    131       "operands" : [
    132         { "kind" : "AddressingModel" },
    133         { "kind" : "MemoryModel" }
    134       ]
    135     },
    136     {
    137       "opname" : "OpEntryPoint",
    138       "opcode" : 15,
    139       "operands" : [
    140         { "kind" : "ExecutionModel" },
    141         { "kind" : "IdRef",                              "name" : "'Entry Point'" },
    142         { "kind" : "LiteralString",                      "name" : "'Name'" },
    143         { "kind" : "IdRef",          "quantifier" : "*", "name" : "'Interface'" }
    144       ]
    145     },
    146     {
    147       "opname" : "OpExecutionMode",
    148       "opcode" : 16,
    149       "operands" : [
    150         { "kind" : "IdRef",         "name" : "'Entry Point'" },
    151         { "kind" : "ExecutionMode", "name" : "'Mode'" }
    152       ]
    153     },
    154     {
    155       "opname" : "OpCapability",
    156       "opcode" : 17,
    157       "operands" : [
    158         { "kind" : "Capability", "name" : "'Capability'" }
    159       ]
    160     },
    161     {
    162       "opname" : "OpTypeVoid",
    163       "opcode" : 19,
    164       "operands" : [
    165         { "kind" : "IdResult" }
    166       ]
    167     },
    168     {
    169       "opname" : "OpTypeBool",
    170       "opcode" : 20,
    171       "operands" : [
    172         { "kind" : "IdResult" }
    173       ]
    174     },
    175     {
    176       "opname" : "OpTypeInt",
    177       "opcode" : 21,
    178       "operands" : [
    179         { "kind" : "IdResult" },
    180         { "kind" : "LiteralInteger", "name" : "'Width'" },
    181         { "kind" : "LiteralInteger", "name" : "'Signedness'" }
    182       ]
    183     },
    184     {
    185       "opname" : "OpTypeFloat",
    186       "opcode" : 22,
    187       "operands" : [
    188         { "kind" : "IdResult" },
    189         { "kind" : "LiteralInteger", "name" : "'Width'" }
    190       ]
    191     },
    192     {
    193       "opname" : "OpTypeVector",
    194       "opcode" : 23,
    195       "operands" : [
    196         { "kind" : "IdResult" },
    197         { "kind" : "IdRef",          "name" : "'Component Type'" },
    198         { "kind" : "LiteralInteger", "name" : "'Component Count'" }
    199       ]
    200     },
    201     {
    202       "opname" : "OpTypeMatrix",
    203       "opcode" : 24,
    204       "operands" : [
    205         { "kind" : "IdResult" },
    206         { "kind" : "IdRef",          "name" : "'Column Type'" },
    207         { "kind" : "LiteralInteger", "name" : "'Column Count'" }
    208       ],
    209       "capabilities" : [ "Matrix" ]
    210     },
    211     {
    212       "opname" : "OpTypeImage",
    213       "opcode" : 25,
    214       "operands" : [
    215         { "kind" : "IdResult" },
    216         { "kind" : "IdRef",                               "name" : "'Sampled Type'" },
    217         { "kind" : "Dim" },
    218         { "kind" : "LiteralInteger",                      "name" : "'Depth'" },
    219         { "kind" : "LiteralInteger",                      "name" : "'Arrayed'" },
    220         { "kind" : "LiteralInteger",                      "name" : "'MS'" },
    221         { "kind" : "LiteralInteger",                      "name" : "'Sampled'" },
    222         { "kind" : "ImageFormat" },
    223         { "kind" : "AccessQualifier", "quantifier" : "?" }
    224       ]
    225     },
    226     {
    227       "opname" : "OpTypeSampler",
    228       "opcode" : 26,
    229       "operands" : [
    230         { "kind" : "IdResult" }
    231       ]
    232     },
    233     {
    234       "opname" : "OpTypeSampledImage",
    235       "opcode" : 27,
    236       "operands" : [
    237         { "kind" : "IdResult" },
    238         { "kind" : "IdRef",    "name" : "'Image Type'" }
    239       ]
    240     },
    241     {
    242       "opname" : "OpTypeArray",
    243       "opcode" : 28,
    244       "operands" : [
    245         { "kind" : "IdResult" },
    246         { "kind" : "IdRef",    "name" : "'Element Type'" },
    247         { "kind" : "IdRef",    "name" : "'Length'" }
    248       ]
    249     },
    250     {
    251       "opname" : "OpTypeRuntimeArray",
    252       "opcode" : 29,
    253       "operands" : [
    254         { "kind" : "IdResult" },
    255         { "kind" : "IdRef",    "name" : "'Element Type'" }
    256       ],
    257       "capabilities" : [ "Shader" ]
    258     },
    259     {
    260       "opname" : "OpTypeStruct",
    261       "opcode" : 30,
    262       "operands" : [
    263         { "kind" : "IdResult" },
    264         { "kind" : "IdRef",    "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
    265       ]
    266     },
    267     {
    268       "opname" : "OpTypeOpaque",
    269       "opcode" : 31,
    270       "operands" : [
    271         { "kind" : "IdResult" },
    272         { "kind" : "LiteralString", "name" : "The name of the opaque type." }
    273       ],
    274       "capabilities" : [ "Kernel" ]
    275     },
    276     {
    277       "opname" : "OpTypePointer",
    278       "opcode" : 32,
    279       "operands" : [
    280         { "kind" : "IdResult" },
    281         { "kind" : "StorageClass" },
    282         { "kind" : "IdRef",        "name" : "'Type'" }
    283       ]
    284     },
    285     {
    286       "opname" : "OpTypeFunction",
    287       "opcode" : 33,
    288       "operands" : [
    289         { "kind" : "IdResult" },
    290         { "kind" : "IdRef",                        "name" : "'Return Type'" },
    291         { "kind" : "IdRef",    "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." }
    292       ]
    293     },
    294     {
    295       "opname" : "OpTypeEvent",
    296       "opcode" : 34,
    297       "operands" : [
    298         { "kind" : "IdResult" }
    299       ],
    300       "capabilities" : [ "Kernel" ]
    301     },
    302     {
    303       "opname" : "OpTypeDeviceEvent",
    304       "opcode" : 35,
    305       "operands" : [
    306         { "kind" : "IdResult" }
    307       ],
    308       "capabilities" : [ "DeviceEnqueue" ]
    309     },
    310     {
    311       "opname" : "OpTypeReserveId",
    312       "opcode" : 36,
    313       "operands" : [
    314         { "kind" : "IdResult" }
    315       ],
    316       "capabilities" : [ "Pipes" ]
    317     },
    318     {
    319       "opname" : "OpTypeQueue",
    320       "opcode" : 37,
    321       "operands" : [
    322         { "kind" : "IdResult" }
    323       ],
    324       "capabilities" : [ "DeviceEnqueue" ]
    325     },
    326     {
    327       "opname" : "OpTypePipe",
    328       "opcode" : 38,
    329       "operands" : [
    330         { "kind" : "IdResult" },
    331         { "kind" : "AccessQualifier", "name" : "'Qualifier'" }
    332       ],
    333       "capabilities" : [ "Pipes" ]
    334     },
    335     {
    336       "opname" : "OpTypeForwardPointer",
    337       "opcode" : 39,
    338       "operands" : [
    339         { "kind" : "IdRef",        "name" : "'Pointer Type'" },
    340         { "kind" : "StorageClass" }
    341       ],
    342       "capabilities" : [ "Addresses" ]
    343     },
    344     {
    345       "opname" : "OpConstantTrue",
    346       "opcode" : 41,
    347       "operands" : [
    348         { "kind" : "IdResultType" },
    349         { "kind" : "IdResult" }
    350       ]
    351     },
    352     {
    353       "opname" : "OpConstantFalse",
    354       "opcode" : 42,
    355       "operands" : [
    356         { "kind" : "IdResultType" },
    357         { "kind" : "IdResult" }
    358       ]
    359     },
    360     {
    361       "opname" : "OpConstant",
    362       "opcode" : 43,
    363       "operands" : [
    364         { "kind" : "IdResultType" },
    365         { "kind" : "IdResult" },
    366         { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
    367       ]
    368     },
    369     {
    370       "opname" : "OpConstantComposite",
    371       "opcode" : 44,
    372       "operands" : [
    373         { "kind" : "IdResultType" },
    374         { "kind" : "IdResult" },
    375         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
    376       ]
    377     },
    378     {
    379       "opname" : "OpConstantSampler",
    380       "opcode" : 45,
    381       "operands" : [
    382         { "kind" : "IdResultType" },
    383         { "kind" : "IdResult" },
    384         { "kind" : "SamplerAddressingMode" },
    385         { "kind" : "LiteralInteger",        "name" : "'Param'" },
    386         { "kind" : "SamplerFilterMode" }
    387       ],
    388       "capabilities" : [ "LiteralSampler" ]
    389     },
    390     {
    391       "opname" : "OpConstantNull",
    392       "opcode" : 46,
    393       "operands" : [
    394         { "kind" : "IdResultType" },
    395         { "kind" : "IdResult" }
    396       ]
    397     },
    398     {
    399       "opname" : "OpSpecConstantTrue",
    400       "opcode" : 48,
    401       "operands" : [
    402         { "kind" : "IdResultType" },
    403         { "kind" : "IdResult" }
    404       ]
    405     },
    406     {
    407       "opname" : "OpSpecConstantFalse",
    408       "opcode" : 49,
    409       "operands" : [
    410         { "kind" : "IdResultType" },
    411         { "kind" : "IdResult" }
    412       ]
    413     },
    414     {
    415       "opname" : "OpSpecConstant",
    416       "opcode" : 50,
    417       "operands" : [
    418         { "kind" : "IdResultType" },
    419         { "kind" : "IdResult" },
    420         { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
    421       ]
    422     },
    423     {
    424       "opname" : "OpSpecConstantComposite",
    425       "opcode" : 51,
    426       "operands" : [
    427         { "kind" : "IdResultType" },
    428         { "kind" : "IdResult" },
    429         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
    430       ]
    431     },
    432     {
    433       "opname" : "OpSpecConstantOp",
    434       "opcode" : 52,
    435       "operands" : [
    436         { "kind" : "IdResultType" },
    437         { "kind" : "IdResult" },
    438         { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" }
    439       ]
    440     },
    441     {
    442       "opname" : "OpFunction",
    443       "opcode" : 54,
    444       "operands" : [
    445         { "kind" : "IdResultType" },
    446         { "kind" : "IdResult" },
    447         { "kind" : "FunctionControl" },
    448         { "kind" : "IdRef",           "name" : "'Function Type'" }
    449       ]
    450     },
    451     {
    452       "opname" : "OpFunctionParameter",
    453       "opcode" : 55,
    454       "operands" : [
    455         { "kind" : "IdResultType" },
    456         { "kind" : "IdResult" }
    457       ]
    458     },
    459     {
    460       "opname" : "OpFunctionEnd",
    461       "opcode" : 56
    462     },
    463     {
    464       "opname" : "OpFunctionCall",
    465       "opcode" : 57,
    466       "operands" : [
    467         { "kind" : "IdResultType" },
    468         { "kind" : "IdResult" },
    469         { "kind" : "IdRef",                            "name" : "'Function'" },
    470         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." }
    471       ]
    472     },
    473     {
    474       "opname" : "OpVariable",
    475       "opcode" : 59,
    476       "operands" : [
    477         { "kind" : "IdResultType" },
    478         { "kind" : "IdResult" },
    479         { "kind" : "StorageClass" },
    480         { "kind" : "IdRef",        "quantifier" : "?", "name" : "'Initializer'" }
    481       ]
    482     },
    483     {
    484       "opname" : "OpImageTexelPointer",
    485       "opcode" : 60,
    486       "operands" : [
    487         { "kind" : "IdResultType" },
    488         { "kind" : "IdResult" },
    489         { "kind" : "IdRef",        "name" : "'Image'" },
    490         { "kind" : "IdRef",        "name" : "'Coordinate'" },
    491         { "kind" : "IdRef",        "name" : "'Sample'" }
    492       ]
    493     },
    494     {
    495       "opname" : "OpLoad",
    496       "opcode" : 61,
    497       "operands" : [
    498         { "kind" : "IdResultType" },
    499         { "kind" : "IdResult" },
    500         { "kind" : "IdRef",                            "name" : "'Pointer'" },
    501         { "kind" : "MemoryAccess", "quantifier" : "?" }
    502       ]
    503     },
    504     {
    505       "opname" : "OpStore",
    506       "opcode" : 62,
    507       "operands" : [
    508         { "kind" : "IdRef",                            "name" : "'Pointer'" },
    509         { "kind" : "IdRef",                            "name" : "'Object'" },
    510         { "kind" : "MemoryAccess", "quantifier" : "?" }
    511       ]
    512     },
    513     {
    514       "opname" : "OpCopyMemory",
    515       "opcode" : 63,
    516       "operands" : [
    517         { "kind" : "IdRef",                            "name" : "'Target'" },
    518         { "kind" : "IdRef",                            "name" : "'Source'" },
    519         { "kind" : "MemoryAccess", "quantifier" : "?" }
    520       ]
    521     },
    522     {
    523       "opname" : "OpCopyMemorySized",
    524       "opcode" : 64,
    525       "operands" : [
    526         { "kind" : "IdRef",                            "name" : "'Target'" },
    527         { "kind" : "IdRef",                            "name" : "'Source'" },
    528         { "kind" : "IdRef",                            "name" : "'Size'" },
    529         { "kind" : "MemoryAccess", "quantifier" : "?" }
    530       ],
    531       "capabilities" : [ "Addresses" ]
    532     },
    533     {
    534       "opname" : "OpAccessChain",
    535       "opcode" : 65,
    536       "operands" : [
    537         { "kind" : "IdResultType" },
    538         { "kind" : "IdResult" },
    539         { "kind" : "IdRef",                            "name" : "'Base'" },
    540         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
    541       ]
    542     },
    543     {
    544       "opname" : "OpInBoundsAccessChain",
    545       "opcode" : 66,
    546       "operands" : [
    547         { "kind" : "IdResultType" },
    548         { "kind" : "IdResult" },
    549         { "kind" : "IdRef",                            "name" : "'Base'" },
    550         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
    551       ]
    552     },
    553     {
    554       "opname" : "OpPtrAccessChain",
    555       "opcode" : 67,
    556       "operands" : [
    557         { "kind" : "IdResultType" },
    558         { "kind" : "IdResult" },
    559         { "kind" : "IdRef",                            "name" : "'Base'" },
    560         { "kind" : "IdRef",                            "name" : "'Element'" },
    561         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
    562       ],
    563       "capabilities" : [
    564         "Addresses",
    565         "VariablePointers",
    566         "VariablePointersStorageBuffer"
    567       ]
    568     },
    569     {
    570       "opname" : "OpArrayLength",
    571       "opcode" : 68,
    572       "operands" : [
    573         { "kind" : "IdResultType" },
    574         { "kind" : "IdResult" },
    575         { "kind" : "IdRef",          "name" : "'Structure'" },
    576         { "kind" : "LiteralInteger", "name" : "'Array member'" }
    577       ],
    578       "capabilities" : [ "Shader" ]
    579     },
    580     {
    581       "opname" : "OpGenericPtrMemSemantics",
    582       "opcode" : 69,
    583       "operands" : [
    584         { "kind" : "IdResultType" },
    585         { "kind" : "IdResult" },
    586         { "kind" : "IdRef",        "name" : "'Pointer'" }
    587       ],
    588       "capabilities" : [ "Kernel" ]
    589     },
    590     {
    591       "opname" : "OpInBoundsPtrAccessChain",
    592       "opcode" : 70,
    593       "operands" : [
    594         { "kind" : "IdResultType" },
    595         { "kind" : "IdResult" },
    596         { "kind" : "IdRef",                            "name" : "'Base'" },
    597         { "kind" : "IdRef",                            "name" : "'Element'" },
    598         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
    599       ],
    600       "capabilities" : [ "Addresses" ]
    601     },
    602     {
    603       "opname" : "OpDecorate",
    604       "opcode" : 71,
    605       "operands" : [
    606         { "kind" : "IdRef",      "name" : "'Target'" },
    607         { "kind" : "Decoration" }
    608       ]
    609     },
    610     {
    611       "opname" : "OpMemberDecorate",
    612       "opcode" : 72,
    613       "operands" : [
    614         { "kind" : "IdRef",          "name" : "'Structure Type'" },
    615         { "kind" : "LiteralInteger", "name" : "'Member'" },
    616         { "kind" : "Decoration" }
    617       ]
    618     },
    619     {
    620       "opname" : "OpDecorationGroup",
    621       "opcode" : 73,
    622       "operands" : [
    623         { "kind" : "IdResult" }
    624       ]
    625     },
    626     {
    627       "opname" : "OpGroupDecorate",
    628       "opcode" : 74,
    629       "operands" : [
    630         { "kind" : "IdRef",                     "name" : "'Decoration Group'" },
    631         { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" }
    632       ]
    633     },
    634     {
    635       "opname" : "OpGroupMemberDecorate",
    636       "opcode" : 75,
    637       "operands" : [
    638         { "kind" : "IdRef",                                       "name" : "'Decoration Group'" },
    639         { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" }
    640       ]
    641     },
    642     {
    643       "opname" : "OpVectorExtractDynamic",
    644       "opcode" : 77,
    645       "operands" : [
    646         { "kind" : "IdResultType" },
    647         { "kind" : "IdResult" },
    648         { "kind" : "IdRef",        "name" : "'Vector'" },
    649         { "kind" : "IdRef",        "name" : "'Index'" }
    650       ]
    651     },
    652     {
    653       "opname" : "OpVectorInsertDynamic",
    654       "opcode" : 78,
    655       "operands" : [
    656         { "kind" : "IdResultType" },
    657         { "kind" : "IdResult" },
    658         { "kind" : "IdRef",        "name" : "'Vector'" },
    659         { "kind" : "IdRef",        "name" : "'Component'" },
    660         { "kind" : "IdRef",        "name" : "'Index'" }
    661       ]
    662     },
    663     {
    664       "opname" : "OpVectorShuffle",
    665       "opcode" : 79,
    666       "operands" : [
    667         { "kind" : "IdResultType" },
    668         { "kind" : "IdResult" },
    669         { "kind" : "IdRef",                              "name" : "'Vector 1'" },
    670         { "kind" : "IdRef",                              "name" : "'Vector 2'" },
    671         { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" }
    672       ]
    673     },
    674     {
    675       "opname" : "OpCompositeConstruct",
    676       "opcode" : 80,
    677       "operands" : [
    678         { "kind" : "IdResultType" },
    679         { "kind" : "IdResult" },
    680         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
    681       ]
    682     },
    683     {
    684       "opname" : "OpCompositeExtract",
    685       "opcode" : 81,
    686       "operands" : [
    687         { "kind" : "IdResultType" },
    688         { "kind" : "IdResult" },
    689         { "kind" : "IdRef",                              "name" : "'Composite'" },
    690         { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
    691       ]
    692     },
    693     {
    694       "opname" : "OpCompositeInsert",
    695       "opcode" : 82,
    696       "operands" : [
    697         { "kind" : "IdResultType" },
    698         { "kind" : "IdResult" },
    699         { "kind" : "IdRef",                              "name" : "'Object'" },
    700         { "kind" : "IdRef",                              "name" : "'Composite'" },
    701         { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
    702       ]
    703     },
    704     {
    705       "opname" : "OpCopyObject",
    706       "opcode" : 83,
    707       "operands" : [
    708         { "kind" : "IdResultType" },
    709         { "kind" : "IdResult" },
    710         { "kind" : "IdRef",        "name" : "'Operand'" }
    711       ]
    712     },
    713     {
    714       "opname" : "OpTranspose",
    715       "opcode" : 84,
    716       "operands" : [
    717         { "kind" : "IdResultType" },
    718         { "kind" : "IdResult" },
    719         { "kind" : "IdRef",        "name" : "'Matrix'" }
    720       ],
    721       "capabilities" : [ "Matrix" ]
    722     },
    723     {
    724       "opname" : "OpSampledImage",
    725       "opcode" : 86,
    726       "operands" : [
    727         { "kind" : "IdResultType" },
    728         { "kind" : "IdResult" },
    729         { "kind" : "IdRef",        "name" : "'Image'" },
    730         { "kind" : "IdRef",        "name" : "'Sampler'" }
    731       ]
    732     },
    733     {
    734       "opname" : "OpImageSampleImplicitLod",
    735       "opcode" : 87,
    736       "operands" : [
    737         { "kind" : "IdResultType" },
    738         { "kind" : "IdResult" },
    739         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
    740         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    741         { "kind" : "ImageOperands", "quantifier" : "?" }
    742       ],
    743       "capabilities" : [ "Shader" ]
    744     },
    745     {
    746       "opname" : "OpImageSampleExplicitLod",
    747       "opcode" : 88,
    748       "operands" : [
    749         { "kind" : "IdResultType" },
    750         { "kind" : "IdResult" },
    751         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
    752         { "kind" : "IdRef",         "name" : "'Coordinate'" },
    753         { "kind" : "ImageOperands" }
    754       ]
    755     },
    756     {
    757       "opname" : "OpImageSampleDrefImplicitLod",
    758       "opcode" : 89,
    759       "operands" : [
    760         { "kind" : "IdResultType" },
    761         { "kind" : "IdResult" },
    762         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
    763         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    764         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
    765         { "kind" : "ImageOperands", "quantifier" : "?" }
    766       ],
    767       "capabilities" : [ "Shader" ]
    768     },
    769     {
    770       "opname" : "OpImageSampleDrefExplicitLod",
    771       "opcode" : 90,
    772       "operands" : [
    773         { "kind" : "IdResultType" },
    774         { "kind" : "IdResult" },
    775         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
    776         { "kind" : "IdRef",         "name" : "'Coordinate'" },
    777         { "kind" : "IdRef",         "name" : "'D~ref~'" },
    778         { "kind" : "ImageOperands" }
    779       ],
    780       "capabilities" : [ "Shader" ]
    781     },
    782     {
    783       "opname" : "OpImageSampleProjImplicitLod",
    784       "opcode" : 91,
    785       "operands" : [
    786         { "kind" : "IdResultType" },
    787         { "kind" : "IdResult" },
    788         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
    789         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    790         { "kind" : "ImageOperands", "quantifier" : "?" }
    791       ],
    792       "capabilities" : [ "Shader" ]
    793     },
    794     {
    795       "opname" : "OpImageSampleProjExplicitLod",
    796       "opcode" : 92,
    797       "operands" : [
    798         { "kind" : "IdResultType" },
    799         { "kind" : "IdResult" },
    800         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
    801         { "kind" : "IdRef",         "name" : "'Coordinate'" },
    802         { "kind" : "ImageOperands" }
    803       ],
    804       "capabilities" : [ "Shader" ]
    805     },
    806     {
    807       "opname" : "OpImageSampleProjDrefImplicitLod",
    808       "opcode" : 93,
    809       "operands" : [
    810         { "kind" : "IdResultType" },
    811         { "kind" : "IdResult" },
    812         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
    813         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    814         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
    815         { "kind" : "ImageOperands", "quantifier" : "?" }
    816       ],
    817       "capabilities" : [ "Shader" ]
    818     },
    819     {
    820       "opname" : "OpImageSampleProjDrefExplicitLod",
    821       "opcode" : 94,
    822       "operands" : [
    823         { "kind" : "IdResultType" },
    824         { "kind" : "IdResult" },
    825         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
    826         { "kind" : "IdRef",         "name" : "'Coordinate'" },
    827         { "kind" : "IdRef",         "name" : "'D~ref~'" },
    828         { "kind" : "ImageOperands" }
    829       ],
    830       "capabilities" : [ "Shader" ]
    831     },
    832     {
    833       "opname" : "OpImageFetch",
    834       "opcode" : 95,
    835       "operands" : [
    836         { "kind" : "IdResultType" },
    837         { "kind" : "IdResult" },
    838         { "kind" : "IdRef",                             "name" : "'Image'" },
    839         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    840         { "kind" : "ImageOperands", "quantifier" : "?" }
    841       ]
    842     },
    843     {
    844       "opname" : "OpImageGather",
    845       "opcode" : 96,
    846       "operands" : [
    847         { "kind" : "IdResultType" },
    848         { "kind" : "IdResult" },
    849         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
    850         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    851         { "kind" : "IdRef",                             "name" : "'Component'" },
    852         { "kind" : "ImageOperands", "quantifier" : "?" }
    853       ],
    854       "capabilities" : [ "Shader" ]
    855     },
    856     {
    857       "opname" : "OpImageDrefGather",
    858       "opcode" : 97,
    859       "operands" : [
    860         { "kind" : "IdResultType" },
    861         { "kind" : "IdResult" },
    862         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
    863         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    864         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
    865         { "kind" : "ImageOperands", "quantifier" : "?" }
    866       ],
    867       "capabilities" : [ "Shader" ]
    868     },
    869     {
    870       "opname" : "OpImageRead",
    871       "opcode" : 98,
    872       "operands" : [
    873         { "kind" : "IdResultType" },
    874         { "kind" : "IdResult" },
    875         { "kind" : "IdRef",                             "name" : "'Image'" },
    876         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    877         { "kind" : "ImageOperands", "quantifier" : "?" }
    878       ]
    879     },
    880     {
    881       "opname" : "OpImageWrite",
    882       "opcode" : 99,
    883       "operands" : [
    884         { "kind" : "IdRef",                             "name" : "'Image'" },
    885         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    886         { "kind" : "IdRef",                             "name" : "'Texel'" },
    887         { "kind" : "ImageOperands", "quantifier" : "?" }
    888       ]
    889     },
    890     {
    891       "opname" : "OpImage",
    892       "opcode" : 100,
    893       "operands" : [
    894         { "kind" : "IdResultType" },
    895         { "kind" : "IdResult" },
    896         { "kind" : "IdRef",        "name" : "'Sampled Image'" }
    897       ]
    898     },
    899     {
    900       "opname" : "OpImageQueryFormat",
    901       "opcode" : 101,
    902       "operands" : [
    903         { "kind" : "IdResultType" },
    904         { "kind" : "IdResult" },
    905         { "kind" : "IdRef",        "name" : "'Image'" }
    906       ],
    907       "capabilities" : [ "Kernel" ]
    908     },
    909     {
    910       "opname" : "OpImageQueryOrder",
    911       "opcode" : 102,
    912       "operands" : [
    913         { "kind" : "IdResultType" },
    914         { "kind" : "IdResult" },
    915         { "kind" : "IdRef",        "name" : "'Image'" }
    916       ],
    917       "capabilities" : [ "Kernel" ]
    918     },
    919     {
    920       "opname" : "OpImageQuerySizeLod",
    921       "opcode" : 103,
    922       "operands" : [
    923         { "kind" : "IdResultType" },
    924         { "kind" : "IdResult" },
    925         { "kind" : "IdRef",        "name" : "'Image'" },
    926         { "kind" : "IdRef",        "name" : "'Level of Detail'" }
    927       ],
    928       "capabilities" : [ "Kernel", "ImageQuery" ]
    929     },
    930     {
    931       "opname" : "OpImageQuerySize",
    932       "opcode" : 104,
    933       "operands" : [
    934         { "kind" : "IdResultType" },
    935         { "kind" : "IdResult" },
    936         { "kind" : "IdRef",        "name" : "'Image'" }
    937       ],
    938       "capabilities" : [ "Kernel", "ImageQuery" ]
    939     },
    940     {
    941       "opname" : "OpImageQueryLod",
    942       "opcode" : 105,
    943       "operands" : [
    944         { "kind" : "IdResultType" },
    945         { "kind" : "IdResult" },
    946         { "kind" : "IdRef",        "name" : "'Sampled Image'" },
    947         { "kind" : "IdRef",        "name" : "'Coordinate'" }
    948       ],
    949       "capabilities" : [ "ImageQuery" ]
    950     },
    951     {
    952       "opname" : "OpImageQueryLevels",
    953       "opcode" : 106,
    954       "operands" : [
    955         { "kind" : "IdResultType" },
    956         { "kind" : "IdResult" },
    957         { "kind" : "IdRef",        "name" : "'Image'" }
    958       ],
    959       "capabilities" : [ "Kernel", "ImageQuery" ]
    960     },
    961     {
    962       "opname" : "OpImageQuerySamples",
    963       "opcode" : 107,
    964       "operands" : [
    965         { "kind" : "IdResultType" },
    966         { "kind" : "IdResult" },
    967         { "kind" : "IdRef",        "name" : "'Image'" }
    968       ],
    969       "capabilities" : [ "Kernel", "ImageQuery" ]
    970     },
    971     {
    972       "opname" : "OpConvertFToU",
    973       "opcode" : 109,
    974       "operands" : [
    975         { "kind" : "IdResultType" },
    976         { "kind" : "IdResult" },
    977         { "kind" : "IdRef",        "name" : "'Float Value'" }
    978       ]
    979     },
    980     {
    981       "opname" : "OpConvertFToS",
    982       "opcode" : 110,
    983       "operands" : [
    984         { "kind" : "IdResultType" },
    985         { "kind" : "IdResult" },
    986         { "kind" : "IdRef",        "name" : "'Float Value'" }
    987       ]
    988     },
    989     {
    990       "opname" : "OpConvertSToF",
    991       "opcode" : 111,
    992       "operands" : [
    993         { "kind" : "IdResultType" },
    994         { "kind" : "IdResult" },
    995         { "kind" : "IdRef",        "name" : "'Signed Value'" }
    996       ]
    997     },
    998     {
    999       "opname" : "OpConvertUToF",
   1000       "opcode" : 112,
   1001       "operands" : [
   1002         { "kind" : "IdResultType" },
   1003         { "kind" : "IdResult" },
   1004         { "kind" : "IdRef",        "name" : "'Unsigned Value'" }
   1005       ]
   1006     },
   1007     {
   1008       "opname" : "OpUConvert",
   1009       "opcode" : 113,
   1010       "operands" : [
   1011         { "kind" : "IdResultType" },
   1012         { "kind" : "IdResult" },
   1013         { "kind" : "IdRef",        "name" : "'Unsigned Value'" }
   1014       ]
   1015     },
   1016     {
   1017       "opname" : "OpSConvert",
   1018       "opcode" : 114,
   1019       "operands" : [
   1020         { "kind" : "IdResultType" },
   1021         { "kind" : "IdResult" },
   1022         { "kind" : "IdRef",        "name" : "'Signed Value'" }
   1023       ]
   1024     },
   1025     {
   1026       "opname" : "OpFConvert",
   1027       "opcode" : 115,
   1028       "operands" : [
   1029         { "kind" : "IdResultType" },
   1030         { "kind" : "IdResult" },
   1031         { "kind" : "IdRef",        "name" : "'Float Value'" }
   1032       ]
   1033     },
   1034     {
   1035       "opname" : "OpQuantizeToF16",
   1036       "opcode" : 116,
   1037       "operands" : [
   1038         { "kind" : "IdResultType" },
   1039         { "kind" : "IdResult" },
   1040         { "kind" : "IdRef",        "name" : "'Value'" }
   1041       ]
   1042     },
   1043     {
   1044       "opname" : "OpConvertPtrToU",
   1045       "opcode" : 117,
   1046       "operands" : [
   1047         { "kind" : "IdResultType" },
   1048         { "kind" : "IdResult" },
   1049         { "kind" : "IdRef",        "name" : "'Pointer'" }
   1050       ],
   1051       "capabilities" : [ "Addresses" ]
   1052     },
   1053     {
   1054       "opname" : "OpSatConvertSToU",
   1055       "opcode" : 118,
   1056       "operands" : [
   1057         { "kind" : "IdResultType" },
   1058         { "kind" : "IdResult" },
   1059         { "kind" : "IdRef",        "name" : "'Signed Value'" }
   1060       ],
   1061       "capabilities" : [ "Kernel" ]
   1062     },
   1063     {
   1064       "opname" : "OpSatConvertUToS",
   1065       "opcode" : 119,
   1066       "operands" : [
   1067         { "kind" : "IdResultType" },
   1068         { "kind" : "IdResult" },
   1069         { "kind" : "IdRef",        "name" : "'Unsigned Value'" }
   1070       ],
   1071       "capabilities" : [ "Kernel" ]
   1072     },
   1073     {
   1074       "opname" : "OpConvertUToPtr",
   1075       "opcode" : 120,
   1076       "operands" : [
   1077         { "kind" : "IdResultType" },
   1078         { "kind" : "IdResult" },
   1079         { "kind" : "IdRef",        "name" : "'Integer Value'" }
   1080       ],
   1081       "capabilities" : [ "Addresses" ]
   1082     },
   1083     {
   1084       "opname" : "OpPtrCastToGeneric",
   1085       "opcode" : 121,
   1086       "operands" : [
   1087         { "kind" : "IdResultType" },
   1088         { "kind" : "IdResult" },
   1089         { "kind" : "IdRef",        "name" : "'Pointer'" }
   1090       ],
   1091       "capabilities" : [ "Kernel" ]
   1092     },
   1093     {
   1094       "opname" : "OpGenericCastToPtr",
   1095       "opcode" : 122,
   1096       "operands" : [
   1097         { "kind" : "IdResultType" },
   1098         { "kind" : "IdResult" },
   1099         { "kind" : "IdRef",        "name" : "'Pointer'" }
   1100       ],
   1101       "capabilities" : [ "Kernel" ]
   1102     },
   1103     {
   1104       "opname" : "OpGenericCastToPtrExplicit",
   1105       "opcode" : 123,
   1106       "operands" : [
   1107         { "kind" : "IdResultType" },
   1108         { "kind" : "IdResult" },
   1109         { "kind" : "IdRef",        "name" : "'Pointer'" },
   1110         { "kind" : "StorageClass", "name" : "'Storage'" }
   1111       ],
   1112       "capabilities" : [ "Kernel" ]
   1113     },
   1114     {
   1115       "opname" : "OpBitcast",
   1116       "opcode" : 124,
   1117       "operands" : [
   1118         { "kind" : "IdResultType" },
   1119         { "kind" : "IdResult" },
   1120         { "kind" : "IdRef",        "name" : "'Operand'" }
   1121       ]
   1122     },
   1123     {
   1124       "opname" : "OpSNegate",
   1125       "opcode" : 126,
   1126       "operands" : [
   1127         { "kind" : "IdResultType" },
   1128         { "kind" : "IdResult" },
   1129         { "kind" : "IdRef",        "name" : "'Operand'" }
   1130       ]
   1131     },
   1132     {
   1133       "opname" : "OpFNegate",
   1134       "opcode" : 127,
   1135       "operands" : [
   1136         { "kind" : "IdResultType" },
   1137         { "kind" : "IdResult" },
   1138         { "kind" : "IdRef",        "name" : "'Operand'" }
   1139       ]
   1140     },
   1141     {
   1142       "opname" : "OpIAdd",
   1143       "opcode" : 128,
   1144       "operands" : [
   1145         { "kind" : "IdResultType" },
   1146         { "kind" : "IdResult" },
   1147         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1148         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1149       ]
   1150     },
   1151     {
   1152       "opname" : "OpFAdd",
   1153       "opcode" : 129,
   1154       "operands" : [
   1155         { "kind" : "IdResultType" },
   1156         { "kind" : "IdResult" },
   1157         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1158         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1159       ]
   1160     },
   1161     {
   1162       "opname" : "OpISub",
   1163       "opcode" : 130,
   1164       "operands" : [
   1165         { "kind" : "IdResultType" },
   1166         { "kind" : "IdResult" },
   1167         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1168         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1169       ]
   1170     },
   1171     {
   1172       "opname" : "OpFSub",
   1173       "opcode" : 131,
   1174       "operands" : [
   1175         { "kind" : "IdResultType" },
   1176         { "kind" : "IdResult" },
   1177         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1178         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1179       ]
   1180     },
   1181     {
   1182       "opname" : "OpIMul",
   1183       "opcode" : 132,
   1184       "operands" : [
   1185         { "kind" : "IdResultType" },
   1186         { "kind" : "IdResult" },
   1187         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1188         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1189       ]
   1190     },
   1191     {
   1192       "opname" : "OpFMul",
   1193       "opcode" : 133,
   1194       "operands" : [
   1195         { "kind" : "IdResultType" },
   1196         { "kind" : "IdResult" },
   1197         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1198         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1199       ]
   1200     },
   1201     {
   1202       "opname" : "OpUDiv",
   1203       "opcode" : 134,
   1204       "operands" : [
   1205         { "kind" : "IdResultType" },
   1206         { "kind" : "IdResult" },
   1207         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1208         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1209       ]
   1210     },
   1211     {
   1212       "opname" : "OpSDiv",
   1213       "opcode" : 135,
   1214       "operands" : [
   1215         { "kind" : "IdResultType" },
   1216         { "kind" : "IdResult" },
   1217         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1218         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1219       ]
   1220     },
   1221     {
   1222       "opname" : "OpFDiv",
   1223       "opcode" : 136,
   1224       "operands" : [
   1225         { "kind" : "IdResultType" },
   1226         { "kind" : "IdResult" },
   1227         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1228         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1229       ]
   1230     },
   1231     {
   1232       "opname" : "OpUMod",
   1233       "opcode" : 137,
   1234       "operands" : [
   1235         { "kind" : "IdResultType" },
   1236         { "kind" : "IdResult" },
   1237         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1238         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1239       ]
   1240     },
   1241     {
   1242       "opname" : "OpSRem",
   1243       "opcode" : 138,
   1244       "operands" : [
   1245         { "kind" : "IdResultType" },
   1246         { "kind" : "IdResult" },
   1247         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1248         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1249       ]
   1250     },
   1251     {
   1252       "opname" : "OpSMod",
   1253       "opcode" : 139,
   1254       "operands" : [
   1255         { "kind" : "IdResultType" },
   1256         { "kind" : "IdResult" },
   1257         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1258         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1259       ]
   1260     },
   1261     {
   1262       "opname" : "OpFRem",
   1263       "opcode" : 140,
   1264       "operands" : [
   1265         { "kind" : "IdResultType" },
   1266         { "kind" : "IdResult" },
   1267         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1268         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1269       ]
   1270     },
   1271     {
   1272       "opname" : "OpFMod",
   1273       "opcode" : 141,
   1274       "operands" : [
   1275         { "kind" : "IdResultType" },
   1276         { "kind" : "IdResult" },
   1277         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1278         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1279       ]
   1280     },
   1281     {
   1282       "opname" : "OpVectorTimesScalar",
   1283       "opcode" : 142,
   1284       "operands" : [
   1285         { "kind" : "IdResultType" },
   1286         { "kind" : "IdResult" },
   1287         { "kind" : "IdRef",        "name" : "'Vector'" },
   1288         { "kind" : "IdRef",        "name" : "'Scalar'" }
   1289       ]
   1290     },
   1291     {
   1292       "opname" : "OpMatrixTimesScalar",
   1293       "opcode" : 143,
   1294       "operands" : [
   1295         { "kind" : "IdResultType" },
   1296         { "kind" : "IdResult" },
   1297         { "kind" : "IdRef",        "name" : "'Matrix'" },
   1298         { "kind" : "IdRef",        "name" : "'Scalar'" }
   1299       ],
   1300       "capabilities" : [ "Matrix" ]
   1301     },
   1302     {
   1303       "opname" : "OpVectorTimesMatrix",
   1304       "opcode" : 144,
   1305       "operands" : [
   1306         { "kind" : "IdResultType" },
   1307         { "kind" : "IdResult" },
   1308         { "kind" : "IdRef",        "name" : "'Vector'" },
   1309         { "kind" : "IdRef",        "name" : "'Matrix'" }
   1310       ],
   1311       "capabilities" : [ "Matrix" ]
   1312     },
   1313     {
   1314       "opname" : "OpMatrixTimesVector",
   1315       "opcode" : 145,
   1316       "operands" : [
   1317         { "kind" : "IdResultType" },
   1318         { "kind" : "IdResult" },
   1319         { "kind" : "IdRef",        "name" : "'Matrix'" },
   1320         { "kind" : "IdRef",        "name" : "'Vector'" }
   1321       ],
   1322       "capabilities" : [ "Matrix" ]
   1323     },
   1324     {
   1325       "opname" : "OpMatrixTimesMatrix",
   1326       "opcode" : 146,
   1327       "operands" : [
   1328         { "kind" : "IdResultType" },
   1329         { "kind" : "IdResult" },
   1330         { "kind" : "IdRef",        "name" : "'LeftMatrix'" },
   1331         { "kind" : "IdRef",        "name" : "'RightMatrix'" }
   1332       ],
   1333       "capabilities" : [ "Matrix" ]
   1334     },
   1335     {
   1336       "opname" : "OpOuterProduct",
   1337       "opcode" : 147,
   1338       "operands" : [
   1339         { "kind" : "IdResultType" },
   1340         { "kind" : "IdResult" },
   1341         { "kind" : "IdRef",        "name" : "'Vector 1'" },
   1342         { "kind" : "IdRef",        "name" : "'Vector 2'" }
   1343       ],
   1344       "capabilities" : [ "Matrix" ]
   1345     },
   1346     {
   1347       "opname" : "OpDot",
   1348       "opcode" : 148,
   1349       "operands" : [
   1350         { "kind" : "IdResultType" },
   1351         { "kind" : "IdResult" },
   1352         { "kind" : "IdRef",        "name" : "'Vector 1'" },
   1353         { "kind" : "IdRef",        "name" : "'Vector 2'" }
   1354       ]
   1355     },
   1356     {
   1357       "opname" : "OpIAddCarry",
   1358       "opcode" : 149,
   1359       "operands" : [
   1360         { "kind" : "IdResultType" },
   1361         { "kind" : "IdResult" },
   1362         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1363         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1364       ]
   1365     },
   1366     {
   1367       "opname" : "OpISubBorrow",
   1368       "opcode" : 150,
   1369       "operands" : [
   1370         { "kind" : "IdResultType" },
   1371         { "kind" : "IdResult" },
   1372         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1373         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1374       ]
   1375     },
   1376     {
   1377       "opname" : "OpUMulExtended",
   1378       "opcode" : 151,
   1379       "operands" : [
   1380         { "kind" : "IdResultType" },
   1381         { "kind" : "IdResult" },
   1382         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1383         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1384       ]
   1385     },
   1386     {
   1387       "opname" : "OpSMulExtended",
   1388       "opcode" : 152,
   1389       "operands" : [
   1390         { "kind" : "IdResultType" },
   1391         { "kind" : "IdResult" },
   1392         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1393         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1394       ]
   1395     },
   1396     {
   1397       "opname" : "OpAny",
   1398       "opcode" : 154,
   1399       "operands" : [
   1400         { "kind" : "IdResultType" },
   1401         { "kind" : "IdResult" },
   1402         { "kind" : "IdRef",        "name" : "'Vector'" }
   1403       ]
   1404     },
   1405     {
   1406       "opname" : "OpAll",
   1407       "opcode" : 155,
   1408       "operands" : [
   1409         { "kind" : "IdResultType" },
   1410         { "kind" : "IdResult" },
   1411         { "kind" : "IdRef",        "name" : "'Vector'" }
   1412       ]
   1413     },
   1414     {
   1415       "opname" : "OpIsNan",
   1416       "opcode" : 156,
   1417       "operands" : [
   1418         { "kind" : "IdResultType" },
   1419         { "kind" : "IdResult" },
   1420         { "kind" : "IdRef",        "name" : "'x'" }
   1421       ]
   1422     },
   1423     {
   1424       "opname" : "OpIsInf",
   1425       "opcode" : 157,
   1426       "operands" : [
   1427         { "kind" : "IdResultType" },
   1428         { "kind" : "IdResult" },
   1429         { "kind" : "IdRef",        "name" : "'x'" }
   1430       ]
   1431     },
   1432     {
   1433       "opname" : "OpIsFinite",
   1434       "opcode" : 158,
   1435       "operands" : [
   1436         { "kind" : "IdResultType" },
   1437         { "kind" : "IdResult" },
   1438         { "kind" : "IdRef",        "name" : "'x'" }
   1439       ],
   1440       "capabilities" : [ "Kernel" ]
   1441     },
   1442     {
   1443       "opname" : "OpIsNormal",
   1444       "opcode" : 159,
   1445       "operands" : [
   1446         { "kind" : "IdResultType" },
   1447         { "kind" : "IdResult" },
   1448         { "kind" : "IdRef",        "name" : "'x'" }
   1449       ],
   1450       "capabilities" : [ "Kernel" ]
   1451     },
   1452     {
   1453       "opname" : "OpSignBitSet",
   1454       "opcode" : 160,
   1455       "operands" : [
   1456         { "kind" : "IdResultType" },
   1457         { "kind" : "IdResult" },
   1458         { "kind" : "IdRef",        "name" : "'x'" }
   1459       ],
   1460       "capabilities" : [ "Kernel" ]
   1461     },
   1462     {
   1463       "opname" : "OpLessOrGreater",
   1464       "opcode" : 161,
   1465       "operands" : [
   1466         { "kind" : "IdResultType" },
   1467         { "kind" : "IdResult" },
   1468         { "kind" : "IdRef",        "name" : "'x'" },
   1469         { "kind" : "IdRef",        "name" : "'y'" }
   1470       ],
   1471       "capabilities" : [ "Kernel" ]
   1472     },
   1473     {
   1474       "opname" : "OpOrdered",
   1475       "opcode" : 162,
   1476       "operands" : [
   1477         { "kind" : "IdResultType" },
   1478         { "kind" : "IdResult" },
   1479         { "kind" : "IdRef",        "name" : "'x'" },
   1480         { "kind" : "IdRef",        "name" : "'y'" }
   1481       ],
   1482       "capabilities" : [ "Kernel" ]
   1483     },
   1484     {
   1485       "opname" : "OpUnordered",
   1486       "opcode" : 163,
   1487       "operands" : [
   1488         { "kind" : "IdResultType" },
   1489         { "kind" : "IdResult" },
   1490         { "kind" : "IdRef",        "name" : "'x'" },
   1491         { "kind" : "IdRef",        "name" : "'y'" }
   1492       ],
   1493       "capabilities" : [ "Kernel" ]
   1494     },
   1495     {
   1496       "opname" : "OpLogicalEqual",
   1497       "opcode" : 164,
   1498       "operands" : [
   1499         { "kind" : "IdResultType" },
   1500         { "kind" : "IdResult" },
   1501         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1502         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1503       ]
   1504     },
   1505     {
   1506       "opname" : "OpLogicalNotEqual",
   1507       "opcode" : 165,
   1508       "operands" : [
   1509         { "kind" : "IdResultType" },
   1510         { "kind" : "IdResult" },
   1511         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1512         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1513       ]
   1514     },
   1515     {
   1516       "opname" : "OpLogicalOr",
   1517       "opcode" : 166,
   1518       "operands" : [
   1519         { "kind" : "IdResultType" },
   1520         { "kind" : "IdResult" },
   1521         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1522         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1523       ]
   1524     },
   1525     {
   1526       "opname" : "OpLogicalAnd",
   1527       "opcode" : 167,
   1528       "operands" : [
   1529         { "kind" : "IdResultType" },
   1530         { "kind" : "IdResult" },
   1531         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1532         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1533       ]
   1534     },
   1535     {
   1536       "opname" : "OpLogicalNot",
   1537       "opcode" : 168,
   1538       "operands" : [
   1539         { "kind" : "IdResultType" },
   1540         { "kind" : "IdResult" },
   1541         { "kind" : "IdRef",        "name" : "'Operand'" }
   1542       ]
   1543     },
   1544     {
   1545       "opname" : "OpSelect",
   1546       "opcode" : 169,
   1547       "operands" : [
   1548         { "kind" : "IdResultType" },
   1549         { "kind" : "IdResult" },
   1550         { "kind" : "IdRef",        "name" : "'Condition'" },
   1551         { "kind" : "IdRef",        "name" : "'Object 1'" },
   1552         { "kind" : "IdRef",        "name" : "'Object 2'" }
   1553       ]
   1554     },
   1555     {
   1556       "opname" : "OpIEqual",
   1557       "opcode" : 170,
   1558       "operands" : [
   1559         { "kind" : "IdResultType" },
   1560         { "kind" : "IdResult" },
   1561         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1562         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1563       ]
   1564     },
   1565     {
   1566       "opname" : "OpINotEqual",
   1567       "opcode" : 171,
   1568       "operands" : [
   1569         { "kind" : "IdResultType" },
   1570         { "kind" : "IdResult" },
   1571         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1572         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1573       ]
   1574     },
   1575     {
   1576       "opname" : "OpUGreaterThan",
   1577       "opcode" : 172,
   1578       "operands" : [
   1579         { "kind" : "IdResultType" },
   1580         { "kind" : "IdResult" },
   1581         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1582         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1583       ]
   1584     },
   1585     {
   1586       "opname" : "OpSGreaterThan",
   1587       "opcode" : 173,
   1588       "operands" : [
   1589         { "kind" : "IdResultType" },
   1590         { "kind" : "IdResult" },
   1591         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1592         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1593       ]
   1594     },
   1595     {
   1596       "opname" : "OpUGreaterThanEqual",
   1597       "opcode" : 174,
   1598       "operands" : [
   1599         { "kind" : "IdResultType" },
   1600         { "kind" : "IdResult" },
   1601         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1602         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1603       ]
   1604     },
   1605     {
   1606       "opname" : "OpSGreaterThanEqual",
   1607       "opcode" : 175,
   1608       "operands" : [
   1609         { "kind" : "IdResultType" },
   1610         { "kind" : "IdResult" },
   1611         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1612         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1613       ]
   1614     },
   1615     {
   1616       "opname" : "OpULessThan",
   1617       "opcode" : 176,
   1618       "operands" : [
   1619         { "kind" : "IdResultType" },
   1620         { "kind" : "IdResult" },
   1621         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1622         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1623       ]
   1624     },
   1625     {
   1626       "opname" : "OpSLessThan",
   1627       "opcode" : 177,
   1628       "operands" : [
   1629         { "kind" : "IdResultType" },
   1630         { "kind" : "IdResult" },
   1631         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1632         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1633       ]
   1634     },
   1635     {
   1636       "opname" : "OpULessThanEqual",
   1637       "opcode" : 178,
   1638       "operands" : [
   1639         { "kind" : "IdResultType" },
   1640         { "kind" : "IdResult" },
   1641         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1642         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1643       ]
   1644     },
   1645     {
   1646       "opname" : "OpSLessThanEqual",
   1647       "opcode" : 179,
   1648       "operands" : [
   1649         { "kind" : "IdResultType" },
   1650         { "kind" : "IdResult" },
   1651         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1652         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1653       ]
   1654     },
   1655     {
   1656       "opname" : "OpFOrdEqual",
   1657       "opcode" : 180,
   1658       "operands" : [
   1659         { "kind" : "IdResultType" },
   1660         { "kind" : "IdResult" },
   1661         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1662         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1663       ]
   1664     },
   1665     {
   1666       "opname" : "OpFUnordEqual",
   1667       "opcode" : 181,
   1668       "operands" : [
   1669         { "kind" : "IdResultType" },
   1670         { "kind" : "IdResult" },
   1671         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1672         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1673       ]
   1674     },
   1675     {
   1676       "opname" : "OpFOrdNotEqual",
   1677       "opcode" : 182,
   1678       "operands" : [
   1679         { "kind" : "IdResultType" },
   1680         { "kind" : "IdResult" },
   1681         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1682         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1683       ]
   1684     },
   1685     {
   1686       "opname" : "OpFUnordNotEqual",
   1687       "opcode" : 183,
   1688       "operands" : [
   1689         { "kind" : "IdResultType" },
   1690         { "kind" : "IdResult" },
   1691         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1692         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1693       ]
   1694     },
   1695     {
   1696       "opname" : "OpFOrdLessThan",
   1697       "opcode" : 184,
   1698       "operands" : [
   1699         { "kind" : "IdResultType" },
   1700         { "kind" : "IdResult" },
   1701         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1702         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1703       ]
   1704     },
   1705     {
   1706       "opname" : "OpFUnordLessThan",
   1707       "opcode" : 185,
   1708       "operands" : [
   1709         { "kind" : "IdResultType" },
   1710         { "kind" : "IdResult" },
   1711         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1712         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1713       ]
   1714     },
   1715     {
   1716       "opname" : "OpFOrdGreaterThan",
   1717       "opcode" : 186,
   1718       "operands" : [
   1719         { "kind" : "IdResultType" },
   1720         { "kind" : "IdResult" },
   1721         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1722         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1723       ]
   1724     },
   1725     {
   1726       "opname" : "OpFUnordGreaterThan",
   1727       "opcode" : 187,
   1728       "operands" : [
   1729         { "kind" : "IdResultType" },
   1730         { "kind" : "IdResult" },
   1731         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1732         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1733       ]
   1734     },
   1735     {
   1736       "opname" : "OpFOrdLessThanEqual",
   1737       "opcode" : 188,
   1738       "operands" : [
   1739         { "kind" : "IdResultType" },
   1740         { "kind" : "IdResult" },
   1741         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1742         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1743       ]
   1744     },
   1745     {
   1746       "opname" : "OpFUnordLessThanEqual",
   1747       "opcode" : 189,
   1748       "operands" : [
   1749         { "kind" : "IdResultType" },
   1750         { "kind" : "IdResult" },
   1751         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1752         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1753       ]
   1754     },
   1755     {
   1756       "opname" : "OpFOrdGreaterThanEqual",
   1757       "opcode" : 190,
   1758       "operands" : [
   1759         { "kind" : "IdResultType" },
   1760         { "kind" : "IdResult" },
   1761         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1762         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1763       ]
   1764     },
   1765     {
   1766       "opname" : "OpFUnordGreaterThanEqual",
   1767       "opcode" : 191,
   1768       "operands" : [
   1769         { "kind" : "IdResultType" },
   1770         { "kind" : "IdResult" },
   1771         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1772         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1773       ]
   1774     },
   1775     {
   1776       "opname" : "OpShiftRightLogical",
   1777       "opcode" : 194,
   1778       "operands" : [
   1779         { "kind" : "IdResultType" },
   1780         { "kind" : "IdResult" },
   1781         { "kind" : "IdRef",        "name" : "'Base'" },
   1782         { "kind" : "IdRef",        "name" : "'Shift'" }
   1783       ]
   1784     },
   1785     {
   1786       "opname" : "OpShiftRightArithmetic",
   1787       "opcode" : 195,
   1788       "operands" : [
   1789         { "kind" : "IdResultType" },
   1790         { "kind" : "IdResult" },
   1791         { "kind" : "IdRef",        "name" : "'Base'" },
   1792         { "kind" : "IdRef",        "name" : "'Shift'" }
   1793       ]
   1794     },
   1795     {
   1796       "opname" : "OpShiftLeftLogical",
   1797       "opcode" : 196,
   1798       "operands" : [
   1799         { "kind" : "IdResultType" },
   1800         { "kind" : "IdResult" },
   1801         { "kind" : "IdRef",        "name" : "'Base'" },
   1802         { "kind" : "IdRef",        "name" : "'Shift'" }
   1803       ]
   1804     },
   1805     {
   1806       "opname" : "OpBitwiseOr",
   1807       "opcode" : 197,
   1808       "operands" : [
   1809         { "kind" : "IdResultType" },
   1810         { "kind" : "IdResult" },
   1811         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1812         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1813       ]
   1814     },
   1815     {
   1816       "opname" : "OpBitwiseXor",
   1817       "opcode" : 198,
   1818       "operands" : [
   1819         { "kind" : "IdResultType" },
   1820         { "kind" : "IdResult" },
   1821         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1822         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1823       ]
   1824     },
   1825     {
   1826       "opname" : "OpBitwiseAnd",
   1827       "opcode" : 199,
   1828       "operands" : [
   1829         { "kind" : "IdResultType" },
   1830         { "kind" : "IdResult" },
   1831         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1832         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1833       ]
   1834     },
   1835     {
   1836       "opname" : "OpNot",
   1837       "opcode" : 200,
   1838       "operands" : [
   1839         { "kind" : "IdResultType" },
   1840         { "kind" : "IdResult" },
   1841         { "kind" : "IdRef",        "name" : "'Operand'" }
   1842       ]
   1843     },
   1844     {
   1845       "opname" : "OpBitFieldInsert",
   1846       "opcode" : 201,
   1847       "operands" : [
   1848         { "kind" : "IdResultType" },
   1849         { "kind" : "IdResult" },
   1850         { "kind" : "IdRef",        "name" : "'Base'" },
   1851         { "kind" : "IdRef",        "name" : "'Insert'" },
   1852         { "kind" : "IdRef",        "name" : "'Offset'" },
   1853         { "kind" : "IdRef",        "name" : "'Count'" }
   1854       ],
   1855       "capabilities" : [ "Shader" ]
   1856     },
   1857     {
   1858       "opname" : "OpBitFieldSExtract",
   1859       "opcode" : 202,
   1860       "operands" : [
   1861         { "kind" : "IdResultType" },
   1862         { "kind" : "IdResult" },
   1863         { "kind" : "IdRef",        "name" : "'Base'" },
   1864         { "kind" : "IdRef",        "name" : "'Offset'" },
   1865         { "kind" : "IdRef",        "name" : "'Count'" }
   1866       ],
   1867       "capabilities" : [ "Shader" ]
   1868     },
   1869     {
   1870       "opname" : "OpBitFieldUExtract",
   1871       "opcode" : 203,
   1872       "operands" : [
   1873         { "kind" : "IdResultType" },
   1874         { "kind" : "IdResult" },
   1875         { "kind" : "IdRef",        "name" : "'Base'" },
   1876         { "kind" : "IdRef",        "name" : "'Offset'" },
   1877         { "kind" : "IdRef",        "name" : "'Count'" }
   1878       ],
   1879       "capabilities" : [ "Shader" ]
   1880     },
   1881     {
   1882       "opname" : "OpBitReverse",
   1883       "opcode" : 204,
   1884       "operands" : [
   1885         { "kind" : "IdResultType" },
   1886         { "kind" : "IdResult" },
   1887         { "kind" : "IdRef",        "name" : "'Base'" }
   1888       ],
   1889       "capabilities" : [ "Shader" ]
   1890     },
   1891     {
   1892       "opname" : "OpBitCount",
   1893       "opcode" : 205,
   1894       "operands" : [
   1895         { "kind" : "IdResultType" },
   1896         { "kind" : "IdResult" },
   1897         { "kind" : "IdRef",        "name" : "'Base'" }
   1898       ]
   1899     },
   1900     {
   1901       "opname" : "OpDPdx",
   1902       "opcode" : 207,
   1903       "operands" : [
   1904         { "kind" : "IdResultType" },
   1905         { "kind" : "IdResult" },
   1906         { "kind" : "IdRef",        "name" : "'P'" }
   1907       ],
   1908       "capabilities" : [ "Shader" ]
   1909     },
   1910     {
   1911       "opname" : "OpDPdy",
   1912       "opcode" : 208,
   1913       "operands" : [
   1914         { "kind" : "IdResultType" },
   1915         { "kind" : "IdResult" },
   1916         { "kind" : "IdRef",        "name" : "'P'" }
   1917       ],
   1918       "capabilities" : [ "Shader" ]
   1919     },
   1920     {
   1921       "opname" : "OpFwidth",
   1922       "opcode" : 209,
   1923       "operands" : [
   1924         { "kind" : "IdResultType" },
   1925         { "kind" : "IdResult" },
   1926         { "kind" : "IdRef",        "name" : "'P'" }
   1927       ],
   1928       "capabilities" : [ "Shader" ]
   1929     },
   1930     {
   1931       "opname" : "OpDPdxFine",
   1932       "opcode" : 210,
   1933       "operands" : [
   1934         { "kind" : "IdResultType" },
   1935         { "kind" : "IdResult" },
   1936         { "kind" : "IdRef",        "name" : "'P'" }
   1937       ],
   1938       "capabilities" : [ "DerivativeControl" ]
   1939     },
   1940     {
   1941       "opname" : "OpDPdyFine",
   1942       "opcode" : 211,
   1943       "operands" : [
   1944         { "kind" : "IdResultType" },
   1945         { "kind" : "IdResult" },
   1946         { "kind" : "IdRef",        "name" : "'P'" }
   1947       ],
   1948       "capabilities" : [ "DerivativeControl" ]
   1949     },
   1950     {
   1951       "opname" : "OpFwidthFine",
   1952       "opcode" : 212,
   1953       "operands" : [
   1954         { "kind" : "IdResultType" },
   1955         { "kind" : "IdResult" },
   1956         { "kind" : "IdRef",        "name" : "'P'" }
   1957       ],
   1958       "capabilities" : [ "DerivativeControl" ]
   1959     },
   1960     {
   1961       "opname" : "OpDPdxCoarse",
   1962       "opcode" : 213,
   1963       "operands" : [
   1964         { "kind" : "IdResultType" },
   1965         { "kind" : "IdResult" },
   1966         { "kind" : "IdRef",        "name" : "'P'" }
   1967       ],
   1968       "capabilities" : [ "DerivativeControl" ]
   1969     },
   1970     {
   1971       "opname" : "OpDPdyCoarse",
   1972       "opcode" : 214,
   1973       "operands" : [
   1974         { "kind" : "IdResultType" },
   1975         { "kind" : "IdResult" },
   1976         { "kind" : "IdRef",        "name" : "'P'" }
   1977       ],
   1978       "capabilities" : [ "DerivativeControl" ]
   1979     },
   1980     {
   1981       "opname" : "OpFwidthCoarse",
   1982       "opcode" : 215,
   1983       "operands" : [
   1984         { "kind" : "IdResultType" },
   1985         { "kind" : "IdResult" },
   1986         { "kind" : "IdRef",        "name" : "'P'" }
   1987       ],
   1988       "capabilities" : [ "DerivativeControl" ]
   1989     },
   1990     {
   1991       "opname" : "OpEmitVertex",
   1992       "opcode" : 218,
   1993       "capabilities" : [ "Geometry" ]
   1994     },
   1995     {
   1996       "opname" : "OpEndPrimitive",
   1997       "opcode" : 219,
   1998       "capabilities" : [ "Geometry" ]
   1999     },
   2000     {
   2001       "opname" : "OpEmitStreamVertex",
   2002       "opcode" : 220,
   2003       "operands" : [
   2004         { "kind" : "IdRef", "name" : "'Stream'" }
   2005       ],
   2006       "capabilities" : [ "GeometryStreams" ]
   2007     },
   2008     {
   2009       "opname" : "OpEndStreamPrimitive",
   2010       "opcode" : 221,
   2011       "operands" : [
   2012         { "kind" : "IdRef", "name" : "'Stream'" }
   2013       ],
   2014       "capabilities" : [ "GeometryStreams" ]
   2015     },
   2016     {
   2017       "opname" : "OpControlBarrier",
   2018       "opcode" : 224,
   2019       "operands" : [
   2020         { "kind" : "IdScope",           "name" : "'Execution'" },
   2021         { "kind" : "IdScope",           "name" : "'Memory'" },
   2022         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   2023       ]
   2024     },
   2025     {
   2026       "opname" : "OpMemoryBarrier",
   2027       "opcode" : 225,
   2028       "operands" : [
   2029         { "kind" : "IdScope",           "name" : "'Memory'" },
   2030         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   2031       ]
   2032     },
   2033     {
   2034       "opname" : "OpAtomicLoad",
   2035       "opcode" : 227,
   2036       "operands" : [
   2037         { "kind" : "IdResultType" },
   2038         { "kind" : "IdResult" },
   2039         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2040         { "kind" : "IdScope",           "name" : "'Scope'" },
   2041         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   2042       ]
   2043     },
   2044     {
   2045       "opname" : "OpAtomicStore",
   2046       "opcode" : 228,
   2047       "operands" : [
   2048         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2049         { "kind" : "IdScope",           "name" : "'Scope'" },
   2050         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2051         { "kind" : "IdRef",             "name" : "'Value'" }
   2052       ]
   2053     },
   2054     {
   2055       "opname" : "OpAtomicExchange",
   2056       "opcode" : 229,
   2057       "operands" : [
   2058         { "kind" : "IdResultType" },
   2059         { "kind" : "IdResult" },
   2060         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2061         { "kind" : "IdScope",           "name" : "'Scope'" },
   2062         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2063         { "kind" : "IdRef",             "name" : "'Value'" }
   2064       ]
   2065     },
   2066     {
   2067       "opname" : "OpAtomicCompareExchange",
   2068       "opcode" : 230,
   2069       "operands" : [
   2070         { "kind" : "IdResultType" },
   2071         { "kind" : "IdResult" },
   2072         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2073         { "kind" : "IdScope",           "name" : "'Scope'" },
   2074         { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
   2075         { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
   2076         { "kind" : "IdRef",             "name" : "'Value'" },
   2077         { "kind" : "IdRef",             "name" : "'Comparator'" }
   2078       ]
   2079     },
   2080     {
   2081       "opname" : "OpAtomicCompareExchangeWeak",
   2082       "opcode" : 231,
   2083       "operands" : [
   2084         { "kind" : "IdResultType" },
   2085         { "kind" : "IdResult" },
   2086         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2087         { "kind" : "IdScope",           "name" : "'Scope'" },
   2088         { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
   2089         { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
   2090         { "kind" : "IdRef",             "name" : "'Value'" },
   2091         { "kind" : "IdRef",             "name" : "'Comparator'" }
   2092       ],
   2093       "capabilities" : [ "Kernel" ]
   2094     },
   2095     {
   2096       "opname" : "OpAtomicIIncrement",
   2097       "opcode" : 232,
   2098       "operands" : [
   2099         { "kind" : "IdResultType" },
   2100         { "kind" : "IdResult" },
   2101         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2102         { "kind" : "IdScope",           "name" : "'Scope'" },
   2103         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   2104       ]
   2105     },
   2106     {
   2107       "opname" : "OpAtomicIDecrement",
   2108       "opcode" : 233,
   2109       "operands" : [
   2110         { "kind" : "IdResultType" },
   2111         { "kind" : "IdResult" },
   2112         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2113         { "kind" : "IdScope",           "name" : "'Scope'" },
   2114         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   2115       ]
   2116     },
   2117     {
   2118       "opname" : "OpAtomicIAdd",
   2119       "opcode" : 234,
   2120       "operands" : [
   2121         { "kind" : "IdResultType" },
   2122         { "kind" : "IdResult" },
   2123         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2124         { "kind" : "IdScope",           "name" : "'Scope'" },
   2125         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2126         { "kind" : "IdRef",             "name" : "'Value'" }
   2127       ]
   2128     },
   2129     {
   2130       "opname" : "OpAtomicISub",
   2131       "opcode" : 235,
   2132       "operands" : [
   2133         { "kind" : "IdResultType" },
   2134         { "kind" : "IdResult" },
   2135         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2136         { "kind" : "IdScope",           "name" : "'Scope'" },
   2137         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2138         { "kind" : "IdRef",             "name" : "'Value'" }
   2139       ]
   2140     },
   2141     {
   2142       "opname" : "OpAtomicSMin",
   2143       "opcode" : 236,
   2144       "operands" : [
   2145         { "kind" : "IdResultType" },
   2146         { "kind" : "IdResult" },
   2147         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2148         { "kind" : "IdScope",           "name" : "'Scope'" },
   2149         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2150         { "kind" : "IdRef",             "name" : "'Value'" }
   2151       ]
   2152     },
   2153     {
   2154       "opname" : "OpAtomicUMin",
   2155       "opcode" : 237,
   2156       "operands" : [
   2157         { "kind" : "IdResultType" },
   2158         { "kind" : "IdResult" },
   2159         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2160         { "kind" : "IdScope",           "name" : "'Scope'" },
   2161         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2162         { "kind" : "IdRef",             "name" : "'Value'" }
   2163       ]
   2164     },
   2165     {
   2166       "opname" : "OpAtomicSMax",
   2167       "opcode" : 238,
   2168       "operands" : [
   2169         { "kind" : "IdResultType" },
   2170         { "kind" : "IdResult" },
   2171         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2172         { "kind" : "IdScope",           "name" : "'Scope'" },
   2173         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2174         { "kind" : "IdRef",             "name" : "'Value'" }
   2175       ]
   2176     },
   2177     {
   2178       "opname" : "OpAtomicUMax",
   2179       "opcode" : 239,
   2180       "operands" : [
   2181         { "kind" : "IdResultType" },
   2182         { "kind" : "IdResult" },
   2183         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2184         { "kind" : "IdScope",           "name" : "'Scope'" },
   2185         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2186         { "kind" : "IdRef",             "name" : "'Value'" }
   2187       ]
   2188     },
   2189     {
   2190       "opname" : "OpAtomicAnd",
   2191       "opcode" : 240,
   2192       "operands" : [
   2193         { "kind" : "IdResultType" },
   2194         { "kind" : "IdResult" },
   2195         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2196         { "kind" : "IdScope",           "name" : "'Scope'" },
   2197         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2198         { "kind" : "IdRef",             "name" : "'Value'" }
   2199       ]
   2200     },
   2201     {
   2202       "opname" : "OpAtomicOr",
   2203       "opcode" : 241,
   2204       "operands" : [
   2205         { "kind" : "IdResultType" },
   2206         { "kind" : "IdResult" },
   2207         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2208         { "kind" : "IdScope",           "name" : "'Scope'" },
   2209         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2210         { "kind" : "IdRef",             "name" : "'Value'" }
   2211       ]
   2212     },
   2213     {
   2214       "opname" : "OpAtomicXor",
   2215       "opcode" : 242,
   2216       "operands" : [
   2217         { "kind" : "IdResultType" },
   2218         { "kind" : "IdResult" },
   2219         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2220         { "kind" : "IdScope",           "name" : "'Scope'" },
   2221         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2222         { "kind" : "IdRef",             "name" : "'Value'" }
   2223       ]
   2224     },
   2225     {
   2226       "opname" : "OpPhi",
   2227       "opcode" : 245,
   2228       "operands" : [
   2229         { "kind" : "IdResultType" },
   2230         { "kind" : "IdResult" },
   2231         { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" }
   2232       ]
   2233     },
   2234     {
   2235       "opname" : "OpLoopMerge",
   2236       "opcode" : 246,
   2237       "operands" : [
   2238         { "kind" : "IdRef",       "name" : "'Merge Block'" },
   2239         { "kind" : "IdRef",       "name" : "'Continue Target'" },
   2240         { "kind" : "LoopControl" }
   2241       ]
   2242     },
   2243     {
   2244       "opname" : "OpSelectionMerge",
   2245       "opcode" : 247,
   2246       "operands" : [
   2247         { "kind" : "IdRef",            "name" : "'Merge Block'" },
   2248         { "kind" : "SelectionControl" }
   2249       ]
   2250     },
   2251     {
   2252       "opname" : "OpLabel",
   2253       "opcode" : 248,
   2254       "operands" : [
   2255         { "kind" : "IdResult" }
   2256       ]
   2257     },
   2258     {
   2259       "opname" : "OpBranch",
   2260       "opcode" : 249,
   2261       "operands" : [
   2262         { "kind" : "IdRef", "name" : "'Target Label'" }
   2263       ]
   2264     },
   2265     {
   2266       "opname" : "OpBranchConditional",
   2267       "opcode" : 250,
   2268       "operands" : [
   2269         { "kind" : "IdRef",                              "name" : "'Condition'" },
   2270         { "kind" : "IdRef",                              "name" : "'True Label'" },
   2271         { "kind" : "IdRef",                              "name" : "'False Label'" },
   2272         { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" }
   2273       ]
   2274     },
   2275     {
   2276       "opname" : "OpSwitch",
   2277       "opcode" : 251,
   2278       "operands" : [
   2279         { "kind" : "IdRef",                                       "name" : "'Selector'" },
   2280         { "kind" : "IdRef",                                       "name" : "'Default'" },
   2281         { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" }
   2282       ]
   2283     },
   2284     {
   2285       "opname" : "OpKill",
   2286       "opcode" : 252,
   2287       "capabilities" : [ "Shader" ]
   2288     },
   2289     {
   2290       "opname" : "OpReturn",
   2291       "opcode" : 253
   2292     },
   2293     {
   2294       "opname" : "OpReturnValue",
   2295       "opcode" : 254,
   2296       "operands" : [
   2297         { "kind" : "IdRef", "name" : "'Value'" }
   2298       ]
   2299     },
   2300     {
   2301       "opname" : "OpUnreachable",
   2302       "opcode" : 255
   2303     },
   2304     {
   2305       "opname" : "OpLifetimeStart",
   2306       "opcode" : 256,
   2307       "operands" : [
   2308         { "kind" : "IdRef",          "name" : "'Pointer'" },
   2309         { "kind" : "LiteralInteger", "name" : "'Size'" }
   2310       ],
   2311       "capabilities" : [ "Kernel" ]
   2312     },
   2313     {
   2314       "opname" : "OpLifetimeStop",
   2315       "opcode" : 257,
   2316       "operands" : [
   2317         { "kind" : "IdRef",          "name" : "'Pointer'" },
   2318         { "kind" : "LiteralInteger", "name" : "'Size'" }
   2319       ],
   2320       "capabilities" : [ "Kernel" ]
   2321     },
   2322     {
   2323       "opname" : "OpGroupAsyncCopy",
   2324       "opcode" : 259,
   2325       "operands" : [
   2326         { "kind" : "IdResultType" },
   2327         { "kind" : "IdResult" },
   2328         { "kind" : "IdScope",      "name" : "'Execution'" },
   2329         { "kind" : "IdRef",        "name" : "'Destination'" },
   2330         { "kind" : "IdRef",        "name" : "'Source'" },
   2331         { "kind" : "IdRef",        "name" : "'Num Elements'" },
   2332         { "kind" : "IdRef",        "name" : "'Stride'" },
   2333         { "kind" : "IdRef",        "name" : "'Event'" }
   2334       ],
   2335       "capabilities" : [ "Kernel" ]
   2336     },
   2337     {
   2338       "opname" : "OpGroupWaitEvents",
   2339       "opcode" : 260,
   2340       "operands" : [
   2341         { "kind" : "IdScope", "name" : "'Execution'" },
   2342         { "kind" : "IdRef",   "name" : "'Num Events'" },
   2343         { "kind" : "IdRef",   "name" : "'Events List'" }
   2344       ],
   2345       "capabilities" : [ "Kernel" ]
   2346     },
   2347     {
   2348       "opname" : "OpGroupAll",
   2349       "opcode" : 261,
   2350       "operands" : [
   2351         { "kind" : "IdResultType" },
   2352         { "kind" : "IdResult" },
   2353         { "kind" : "IdScope",      "name" : "'Execution'" },
   2354         { "kind" : "IdRef",        "name" : "'Predicate'" }
   2355       ],
   2356       "capabilities" : [ "Groups" ]
   2357     },
   2358     {
   2359       "opname" : "OpGroupAny",
   2360       "opcode" : 262,
   2361       "operands" : [
   2362         { "kind" : "IdResultType" },
   2363         { "kind" : "IdResult" },
   2364         { "kind" : "IdScope",      "name" : "'Execution'" },
   2365         { "kind" : "IdRef",        "name" : "'Predicate'" }
   2366       ],
   2367       "capabilities" : [ "Groups" ]
   2368     },
   2369     {
   2370       "opname" : "OpGroupBroadcast",
   2371       "opcode" : 263,
   2372       "operands" : [
   2373         { "kind" : "IdResultType" },
   2374         { "kind" : "IdResult" },
   2375         { "kind" : "IdScope",      "name" : "'Execution'" },
   2376         { "kind" : "IdRef",        "name" : "'Value'" },
   2377         { "kind" : "IdRef",        "name" : "'LocalId'" }
   2378       ],
   2379       "capabilities" : [ "Groups" ]
   2380     },
   2381     {
   2382       "opname" : "OpGroupIAdd",
   2383       "opcode" : 264,
   2384       "operands" : [
   2385         { "kind" : "IdResultType" },
   2386         { "kind" : "IdResult" },
   2387         { "kind" : "IdScope",        "name" : "'Execution'" },
   2388         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2389         { "kind" : "IdRef",          "name" : "'X'" }
   2390       ],
   2391       "capabilities" : [ "Groups" ]
   2392     },
   2393     {
   2394       "opname" : "OpGroupFAdd",
   2395       "opcode" : 265,
   2396       "operands" : [
   2397         { "kind" : "IdResultType" },
   2398         { "kind" : "IdResult" },
   2399         { "kind" : "IdScope",        "name" : "'Execution'" },
   2400         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2401         { "kind" : "IdRef",          "name" : "'X'" }
   2402       ],
   2403       "capabilities" : [ "Groups" ]
   2404     },
   2405     {
   2406       "opname" : "OpGroupFMin",
   2407       "opcode" : 266,
   2408       "operands" : [
   2409         { "kind" : "IdResultType" },
   2410         { "kind" : "IdResult" },
   2411         { "kind" : "IdScope",        "name" : "'Execution'" },
   2412         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2413         { "kind" : "IdRef",          "name" : "'X'" }
   2414       ],
   2415       "capabilities" : [ "Groups" ]
   2416     },
   2417     {
   2418       "opname" : "OpGroupUMin",
   2419       "opcode" : 267,
   2420       "operands" : [
   2421         { "kind" : "IdResultType" },
   2422         { "kind" : "IdResult" },
   2423         { "kind" : "IdScope",        "name" : "'Execution'" },
   2424         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2425         { "kind" : "IdRef",          "name" : "'X'" }
   2426       ],
   2427       "capabilities" : [ "Groups" ]
   2428     },
   2429     {
   2430       "opname" : "OpGroupSMin",
   2431       "opcode" : 268,
   2432       "operands" : [
   2433         { "kind" : "IdResultType" },
   2434         { "kind" : "IdResult" },
   2435         { "kind" : "IdScope",        "name" : "'Execution'" },
   2436         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2437         { "kind" : "IdRef",          "name" : "'X'" }
   2438       ],
   2439       "capabilities" : [ "Groups" ]
   2440     },
   2441     {
   2442       "opname" : "OpGroupFMax",
   2443       "opcode" : 269,
   2444       "operands" : [
   2445         { "kind" : "IdResultType" },
   2446         { "kind" : "IdResult" },
   2447         { "kind" : "IdScope",        "name" : "'Execution'" },
   2448         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2449         { "kind" : "IdRef",          "name" : "'X'" }
   2450       ],
   2451       "capabilities" : [ "Groups" ]
   2452     },
   2453     {
   2454       "opname" : "OpGroupUMax",
   2455       "opcode" : 270,
   2456       "operands" : [
   2457         { "kind" : "IdResultType" },
   2458         { "kind" : "IdResult" },
   2459         { "kind" : "IdScope",        "name" : "'Execution'" },
   2460         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2461         { "kind" : "IdRef",          "name" : "'X'" }
   2462       ],
   2463       "capabilities" : [ "Groups" ]
   2464     },
   2465     {
   2466       "opname" : "OpGroupSMax",
   2467       "opcode" : 271,
   2468       "operands" : [
   2469         { "kind" : "IdResultType" },
   2470         { "kind" : "IdResult" },
   2471         { "kind" : "IdScope",        "name" : "'Execution'" },
   2472         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2473         { "kind" : "IdRef",          "name" : "'X'" }
   2474       ],
   2475       "capabilities" : [ "Groups" ]
   2476     },
   2477     {
   2478       "opname" : "OpReadPipe",
   2479       "opcode" : 274,
   2480       "operands" : [
   2481         { "kind" : "IdResultType" },
   2482         { "kind" : "IdResult" },
   2483         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2484         { "kind" : "IdRef",        "name" : "'Pointer'" },
   2485         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2486         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2487       ],
   2488       "capabilities" : [ "Pipes" ]
   2489     },
   2490     {
   2491       "opname" : "OpWritePipe",
   2492       "opcode" : 275,
   2493       "operands" : [
   2494         { "kind" : "IdResultType" },
   2495         { "kind" : "IdResult" },
   2496         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2497         { "kind" : "IdRef",        "name" : "'Pointer'" },
   2498         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2499         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2500       ],
   2501       "capabilities" : [ "Pipes" ]
   2502     },
   2503     {
   2504       "opname" : "OpReservedReadPipe",
   2505       "opcode" : 276,
   2506       "operands" : [
   2507         { "kind" : "IdResultType" },
   2508         { "kind" : "IdResult" },
   2509         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2510         { "kind" : "IdRef",        "name" : "'Reserve Id'" },
   2511         { "kind" : "IdRef",        "name" : "'Index'" },
   2512         { "kind" : "IdRef",        "name" : "'Pointer'" },
   2513         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2514         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2515       ],
   2516       "capabilities" : [ "Pipes" ]
   2517     },
   2518     {
   2519       "opname" : "OpReservedWritePipe",
   2520       "opcode" : 277,
   2521       "operands" : [
   2522         { "kind" : "IdResultType" },
   2523         { "kind" : "IdResult" },
   2524         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2525         { "kind" : "IdRef",        "name" : "'Reserve Id'" },
   2526         { "kind" : "IdRef",        "name" : "'Index'" },
   2527         { "kind" : "IdRef",        "name" : "'Pointer'" },
   2528         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2529         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2530       ],
   2531       "capabilities" : [ "Pipes" ]
   2532     },
   2533     {
   2534       "opname" : "OpReserveReadPipePackets",
   2535       "opcode" : 278,
   2536       "operands" : [
   2537         { "kind" : "IdResultType" },
   2538         { "kind" : "IdResult" },
   2539         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2540         { "kind" : "IdRef",        "name" : "'Num Packets'" },
   2541         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2542         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2543       ],
   2544       "capabilities" : [ "Pipes" ]
   2545     },
   2546     {
   2547       "opname" : "OpReserveWritePipePackets",
   2548       "opcode" : 279,
   2549       "operands" : [
   2550         { "kind" : "IdResultType" },
   2551         { "kind" : "IdResult" },
   2552         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2553         { "kind" : "IdRef",        "name" : "'Num Packets'" },
   2554         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2555         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2556       ],
   2557       "capabilities" : [ "Pipes" ]
   2558     },
   2559     {
   2560       "opname" : "OpCommitReadPipe",
   2561       "opcode" : 280,
   2562       "operands" : [
   2563         { "kind" : "IdRef", "name" : "'Pipe'" },
   2564         { "kind" : "IdRef", "name" : "'Reserve Id'" },
   2565         { "kind" : "IdRef", "name" : "'Packet Size'" },
   2566         { "kind" : "IdRef", "name" : "'Packet Alignment'" }
   2567       ],
   2568       "capabilities" : [ "Pipes" ]
   2569     },
   2570     {
   2571       "opname" : "OpCommitWritePipe",
   2572       "opcode" : 281,
   2573       "operands" : [
   2574         { "kind" : "IdRef", "name" : "'Pipe'" },
   2575         { "kind" : "IdRef", "name" : "'Reserve Id'" },
   2576         { "kind" : "IdRef", "name" : "'Packet Size'" },
   2577         { "kind" : "IdRef", "name" : "'Packet Alignment'" }
   2578       ],
   2579       "capabilities" : [ "Pipes" ]
   2580     },
   2581     {
   2582       "opname" : "OpIsValidReserveId",
   2583       "opcode" : 282,
   2584       "operands" : [
   2585         { "kind" : "IdResultType" },
   2586         { "kind" : "IdResult" },
   2587         { "kind" : "IdRef",        "name" : "'Reserve Id'" }
   2588       ],
   2589       "capabilities" : [ "Pipes" ]
   2590     },
   2591     {
   2592       "opname" : "OpGetNumPipePackets",
   2593       "opcode" : 283,
   2594       "operands" : [
   2595         { "kind" : "IdResultType" },
   2596         { "kind" : "IdResult" },
   2597         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2598         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2599         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2600       ],
   2601       "capabilities" : [ "Pipes" ]
   2602     },
   2603     {
   2604       "opname" : "OpGetMaxPipePackets",
   2605       "opcode" : 284,
   2606       "operands" : [
   2607         { "kind" : "IdResultType" },
   2608         { "kind" : "IdResult" },
   2609         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2610         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2611         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2612       ],
   2613       "capabilities" : [ "Pipes" ]
   2614     },
   2615     {
   2616       "opname" : "OpGroupReserveReadPipePackets",
   2617       "opcode" : 285,
   2618       "operands" : [
   2619         { "kind" : "IdResultType" },
   2620         { "kind" : "IdResult" },
   2621         { "kind" : "IdScope",      "name" : "'Execution'" },
   2622         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2623         { "kind" : "IdRef",        "name" : "'Num Packets'" },
   2624         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2625         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2626       ],
   2627       "capabilities" : [ "Pipes" ]
   2628     },
   2629     {
   2630       "opname" : "OpGroupReserveWritePipePackets",
   2631       "opcode" : 286,
   2632       "operands" : [
   2633         { "kind" : "IdResultType" },
   2634         { "kind" : "IdResult" },
   2635         { "kind" : "IdScope",      "name" : "'Execution'" },
   2636         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2637         { "kind" : "IdRef",        "name" : "'Num Packets'" },
   2638         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2639         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2640       ],
   2641       "capabilities" : [ "Pipes" ]
   2642     },
   2643     {
   2644       "opname" : "OpGroupCommitReadPipe",
   2645       "opcode" : 287,
   2646       "operands" : [
   2647         { "kind" : "IdScope", "name" : "'Execution'" },
   2648         { "kind" : "IdRef",   "name" : "'Pipe'" },
   2649         { "kind" : "IdRef",   "name" : "'Reserve Id'" },
   2650         { "kind" : "IdRef",   "name" : "'Packet Size'" },
   2651         { "kind" : "IdRef",   "name" : "'Packet Alignment'" }
   2652       ],
   2653       "capabilities" : [ "Pipes" ]
   2654     },
   2655     {
   2656       "opname" : "OpGroupCommitWritePipe",
   2657       "opcode" : 288,
   2658       "operands" : [
   2659         { "kind" : "IdScope", "name" : "'Execution'" },
   2660         { "kind" : "IdRef",   "name" : "'Pipe'" },
   2661         { "kind" : "IdRef",   "name" : "'Reserve Id'" },
   2662         { "kind" : "IdRef",   "name" : "'Packet Size'" },
   2663         { "kind" : "IdRef",   "name" : "'Packet Alignment'" }
   2664       ],
   2665       "capabilities" : [ "Pipes" ]
   2666     },
   2667     {
   2668       "opname" : "OpEnqueueMarker",
   2669       "opcode" : 291,
   2670       "operands" : [
   2671         { "kind" : "IdResultType" },
   2672         { "kind" : "IdResult" },
   2673         { "kind" : "IdRef",        "name" : "'Queue'" },
   2674         { "kind" : "IdRef",        "name" : "'Num Events'" },
   2675         { "kind" : "IdRef",        "name" : "'Wait Events'" },
   2676         { "kind" : "IdRef",        "name" : "'Ret Event'" }
   2677       ],
   2678       "capabilities" : [ "DeviceEnqueue" ]
   2679     },
   2680     {
   2681       "opname" : "OpEnqueueKernel",
   2682       "opcode" : 292,
   2683       "operands" : [
   2684         { "kind" : "IdResultType" },
   2685         { "kind" : "IdResult" },
   2686         { "kind" : "IdRef",                            "name" : "'Queue'" },
   2687         { "kind" : "IdRef",                            "name" : "'Flags'" },
   2688         { "kind" : "IdRef",                            "name" : "'ND Range'" },
   2689         { "kind" : "IdRef",                            "name" : "'Num Events'" },
   2690         { "kind" : "IdRef",                            "name" : "'Wait Events'" },
   2691         { "kind" : "IdRef",                            "name" : "'Ret Event'" },
   2692         { "kind" : "IdRef",                            "name" : "'Invoke'" },
   2693         { "kind" : "IdRef",                            "name" : "'Param'" },
   2694         { "kind" : "IdRef",                            "name" : "'Param Size'" },
   2695         { "kind" : "IdRef",                            "name" : "'Param Align'" },
   2696         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Local Size'" }
   2697       ],
   2698       "capabilities" : [ "DeviceEnqueue" ]
   2699     },
   2700     {
   2701       "opname" : "OpGetKernelNDrangeSubGroupCount",
   2702       "opcode" : 293,
   2703       "operands" : [
   2704         { "kind" : "IdResultType" },
   2705         { "kind" : "IdResult" },
   2706         { "kind" : "IdRef",        "name" : "'ND Range'" },
   2707         { "kind" : "IdRef",        "name" : "'Invoke'" },
   2708         { "kind" : "IdRef",        "name" : "'Param'" },
   2709         { "kind" : "IdRef",        "name" : "'Param Size'" },
   2710         { "kind" : "IdRef",        "name" : "'Param Align'" }
   2711       ],
   2712       "capabilities" : [ "DeviceEnqueue" ]
   2713     },
   2714     {
   2715       "opname" : "OpGetKernelNDrangeMaxSubGroupSize",
   2716       "opcode" : 294,
   2717       "operands" : [
   2718         { "kind" : "IdResultType" },
   2719         { "kind" : "IdResult" },
   2720         { "kind" : "IdRef",        "name" : "'ND Range'" },
   2721         { "kind" : "IdRef",        "name" : "'Invoke'" },
   2722         { "kind" : "IdRef",        "name" : "'Param'" },
   2723         { "kind" : "IdRef",        "name" : "'Param Size'" },
   2724         { "kind" : "IdRef",        "name" : "'Param Align'" }
   2725       ],
   2726       "capabilities" : [ "DeviceEnqueue" ]
   2727     },
   2728     {
   2729       "opname" : "OpGetKernelWorkGroupSize",
   2730       "opcode" : 295,
   2731       "operands" : [
   2732         { "kind" : "IdResultType" },
   2733         { "kind" : "IdResult" },
   2734         { "kind" : "IdRef",        "name" : "'Invoke'" },
   2735         { "kind" : "IdRef",        "name" : "'Param'" },
   2736         { "kind" : "IdRef",        "name" : "'Param Size'" },
   2737         { "kind" : "IdRef",        "name" : "'Param Align'" }
   2738       ],
   2739       "capabilities" : [ "DeviceEnqueue" ]
   2740     },
   2741     {
   2742       "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple",
   2743       "opcode" : 296,
   2744       "operands" : [
   2745         { "kind" : "IdResultType" },
   2746         { "kind" : "IdResult" },
   2747         { "kind" : "IdRef",        "name" : "'Invoke'" },
   2748         { "kind" : "IdRef",        "name" : "'Param'" },
   2749         { "kind" : "IdRef",        "name" : "'Param Size'" },
   2750         { "kind" : "IdRef",        "name" : "'Param Align'" }
   2751       ],
   2752       "capabilities" : [ "DeviceEnqueue" ]
   2753     },
   2754     {
   2755       "opname" : "OpRetainEvent",
   2756       "opcode" : 297,
   2757       "operands" : [
   2758         { "kind" : "IdRef", "name" : "'Event'" }
   2759       ],
   2760       "capabilities" : [ "DeviceEnqueue" ]
   2761     },
   2762     {
   2763       "opname" : "OpReleaseEvent",
   2764       "opcode" : 298,
   2765       "operands" : [
   2766         { "kind" : "IdRef", "name" : "'Event'" }
   2767       ],
   2768       "capabilities" : [ "DeviceEnqueue" ]
   2769     },
   2770     {
   2771       "opname" : "OpCreateUserEvent",
   2772       "opcode" : 299,
   2773       "operands" : [
   2774         { "kind" : "IdResultType" },
   2775         { "kind" : "IdResult" }
   2776       ],
   2777       "capabilities" : [ "DeviceEnqueue" ]
   2778     },
   2779     {
   2780       "opname" : "OpIsValidEvent",
   2781       "opcode" : 300,
   2782       "operands" : [
   2783         { "kind" : "IdResultType" },
   2784         { "kind" : "IdResult" },
   2785         { "kind" : "IdRef",        "name" : "'Event'" }
   2786       ],
   2787       "capabilities" : [ "DeviceEnqueue" ]
   2788     },
   2789     {
   2790       "opname" : "OpSetUserEventStatus",
   2791       "opcode" : 301,
   2792       "operands" : [
   2793         { "kind" : "IdRef", "name" : "'Event'" },
   2794         { "kind" : "IdRef", "name" : "'Status'" }
   2795       ],
   2796       "capabilities" : [ "DeviceEnqueue" ]
   2797     },
   2798     {
   2799       "opname" : "OpCaptureEventProfilingInfo",
   2800       "opcode" : 302,
   2801       "operands" : [
   2802         { "kind" : "IdRef", "name" : "'Event'" },
   2803         { "kind" : "IdRef", "name" : "'Profiling Info'" },
   2804         { "kind" : "IdRef", "name" : "'Value'" }
   2805       ],
   2806       "capabilities" : [ "DeviceEnqueue" ]
   2807     },
   2808     {
   2809       "opname" : "OpGetDefaultQueue",
   2810       "opcode" : 303,
   2811       "operands" : [
   2812         { "kind" : "IdResultType" },
   2813         { "kind" : "IdResult" }
   2814       ],
   2815       "capabilities" : [ "DeviceEnqueue" ]
   2816     },
   2817     {
   2818       "opname" : "OpBuildNDRange",
   2819       "opcode" : 304,
   2820       "operands" : [
   2821         { "kind" : "IdResultType" },
   2822         { "kind" : "IdResult" },
   2823         { "kind" : "IdRef",        "name" : "'GlobalWorkSize'" },
   2824         { "kind" : "IdRef",        "name" : "'LocalWorkSize'" },
   2825         { "kind" : "IdRef",        "name" : "'GlobalWorkOffset'" }
   2826       ],
   2827       "capabilities" : [ "DeviceEnqueue" ]
   2828     },
   2829     {
   2830       "opname" : "OpImageSparseSampleImplicitLod",
   2831       "opcode" : 305,
   2832       "operands" : [
   2833         { "kind" : "IdResultType" },
   2834         { "kind" : "IdResult" },
   2835         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2836         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2837         { "kind" : "ImageOperands", "quantifier" : "?" }
   2838       ],
   2839       "capabilities" : [ "SparseResidency" ]
   2840     },
   2841     {
   2842       "opname" : "OpImageSparseSampleExplicitLod",
   2843       "opcode" : 306,
   2844       "operands" : [
   2845         { "kind" : "IdResultType" },
   2846         { "kind" : "IdResult" },
   2847         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
   2848         { "kind" : "IdRef",         "name" : "'Coordinate'" },
   2849         { "kind" : "ImageOperands" }
   2850       ],
   2851       "capabilities" : [ "SparseResidency" ]
   2852     },
   2853     {
   2854       "opname" : "OpImageSparseSampleDrefImplicitLod",
   2855       "opcode" : 307,
   2856       "operands" : [
   2857         { "kind" : "IdResultType" },
   2858         { "kind" : "IdResult" },
   2859         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2860         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2861         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
   2862         { "kind" : "ImageOperands", "quantifier" : "?" }
   2863       ],
   2864       "capabilities" : [ "SparseResidency" ]
   2865     },
   2866     {
   2867       "opname" : "OpImageSparseSampleDrefExplicitLod",
   2868       "opcode" : 308,
   2869       "operands" : [
   2870         { "kind" : "IdResultType" },
   2871         { "kind" : "IdResult" },
   2872         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
   2873         { "kind" : "IdRef",         "name" : "'Coordinate'" },
   2874         { "kind" : "IdRef",         "name" : "'D~ref~'" },
   2875         { "kind" : "ImageOperands" }
   2876       ],
   2877       "capabilities" : [ "SparseResidency" ]
   2878     },
   2879     {
   2880       "opname" : "OpImageSparseSampleProjImplicitLod",
   2881       "opcode" : 309,
   2882       "operands" : [
   2883         { "kind" : "IdResultType" },
   2884         { "kind" : "IdResult" },
   2885         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2886         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2887         { "kind" : "ImageOperands", "quantifier" : "?" }
   2888       ],
   2889       "capabilities" : [ "SparseResidency" ],
   2890       "version" : "None"
   2891     },
   2892     {
   2893       "opname" : "OpImageSparseSampleProjExplicitLod",
   2894       "opcode" : 310,
   2895       "operands" : [
   2896         { "kind" : "IdResultType" },
   2897         { "kind" : "IdResult" },
   2898         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
   2899         { "kind" : "IdRef",         "name" : "'Coordinate'" },
   2900         { "kind" : "ImageOperands" }
   2901       ],
   2902       "capabilities" : [ "SparseResidency" ],
   2903       "version" : "None"
   2904     },
   2905     {
   2906       "opname" : "OpImageSparseSampleProjDrefImplicitLod",
   2907       "opcode" : 311,
   2908       "operands" : [
   2909         { "kind" : "IdResultType" },
   2910         { "kind" : "IdResult" },
   2911         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2912         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2913         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
   2914         { "kind" : "ImageOperands", "quantifier" : "?" }
   2915       ],
   2916       "capabilities" : [ "SparseResidency" ],
   2917       "version" : "None"
   2918     },
   2919     {
   2920       "opname" : "OpImageSparseSampleProjDrefExplicitLod",
   2921       "opcode" : 312,
   2922       "operands" : [
   2923         { "kind" : "IdResultType" },
   2924         { "kind" : "IdResult" },
   2925         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
   2926         { "kind" : "IdRef",         "name" : "'Coordinate'" },
   2927         { "kind" : "IdRef",         "name" : "'D~ref~'" },
   2928         { "kind" : "ImageOperands" }
   2929       ],
   2930       "capabilities" : [ "SparseResidency" ],
   2931       "version" : "None"
   2932     },
   2933     {
   2934       "opname" : "OpImageSparseFetch",
   2935       "opcode" : 313,
   2936       "operands" : [
   2937         { "kind" : "IdResultType" },
   2938         { "kind" : "IdResult" },
   2939         { "kind" : "IdRef",                             "name" : "'Image'" },
   2940         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2941         { "kind" : "ImageOperands", "quantifier" : "?" }
   2942       ],
   2943       "capabilities" : [ "SparseResidency" ]
   2944     },
   2945     {
   2946       "opname" : "OpImageSparseGather",
   2947       "opcode" : 314,
   2948       "operands" : [
   2949         { "kind" : "IdResultType" },
   2950         { "kind" : "IdResult" },
   2951         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2952         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2953         { "kind" : "IdRef",                             "name" : "'Component'" },
   2954         { "kind" : "ImageOperands", "quantifier" : "?" }
   2955       ],
   2956       "capabilities" : [ "SparseResidency" ]
   2957     },
   2958     {
   2959       "opname" : "OpImageSparseDrefGather",
   2960       "opcode" : 315,
   2961       "operands" : [
   2962         { "kind" : "IdResultType" },
   2963         { "kind" : "IdResult" },
   2964         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2965         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2966         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
   2967         { "kind" : "ImageOperands", "quantifier" : "?" }
   2968       ],
   2969       "capabilities" : [ "SparseResidency" ]
   2970     },
   2971     {
   2972       "opname" : "OpImageSparseTexelsResident",
   2973       "opcode" : 316,
   2974       "operands" : [
   2975         { "kind" : "IdResultType" },
   2976         { "kind" : "IdResult" },
   2977         { "kind" : "IdRef",        "name" : "'Resident Code'" }
   2978       ],
   2979       "capabilities" : [ "SparseResidency" ]
   2980     },
   2981     {
   2982       "opname" : "OpNoLine",
   2983       "opcode" : 317
   2984     },
   2985     {
   2986       "opname" : "OpAtomicFlagTestAndSet",
   2987       "opcode" : 318,
   2988       "operands" : [
   2989         { "kind" : "IdResultType" },
   2990         { "kind" : "IdResult" },
   2991         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2992         { "kind" : "IdScope",           "name" : "'Scope'" },
   2993         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   2994       ],
   2995       "capabilities" : [ "Kernel" ]
   2996     },
   2997     {
   2998       "opname" : "OpAtomicFlagClear",
   2999       "opcode" : 319,
   3000       "operands" : [
   3001         { "kind" : "IdRef",             "name" : "'Pointer'" },
   3002         { "kind" : "IdScope",           "name" : "'Scope'" },
   3003         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   3004       ],
   3005       "capabilities" : [ "Kernel" ]
   3006     },
   3007     {
   3008       "opname" : "OpImageSparseRead",
   3009       "opcode" : 320,
   3010       "operands" : [
   3011         { "kind" : "IdResultType" },
   3012         { "kind" : "IdResult" },
   3013         { "kind" : "IdRef",                             "name" : "'Image'" },
   3014         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   3015         { "kind" : "ImageOperands", "quantifier" : "?" }
   3016       ],
   3017       "capabilities" : [ "SparseResidency" ]
   3018     },
   3019     {
   3020       "opname" : "OpSizeOf",
   3021       "opcode" : 321,
   3022       "operands" : [
   3023         { "kind" : "IdResultType" },
   3024         { "kind" : "IdResult" },
   3025         { "kind" : "IdRef", "name" : "'Pointer'" }
   3026       ],
   3027       "capabilities" : [ "Addresses" ],
   3028       "version" : "1.1"
   3029     },
   3030     {
   3031       "opname" : "OpTypePipeStorage",
   3032       "opcode" : 322,
   3033       "operands" : [
   3034         { "kind" : "IdResult" }
   3035       ],
   3036       "capabilities" : [ "PipeStorage" ],
   3037       "version" : "1.1"
   3038     },
   3039     {
   3040       "opname" : "OpConstantPipeStorage",
   3041       "opcode" : 323,
   3042       "operands" : [
   3043         { "kind" : "IdResultType" },
   3044         { "kind" : "IdResult" },
   3045         { "kind" : "LiteralInteger", "name" : "'Packet Size'" },
   3046         { "kind" : "LiteralInteger", "name" : "'Packet Alignment'" },
   3047         { "kind" : "LiteralInteger", "name" : "'Capacity'" }
   3048       ],
   3049       "capabilities" : [ "PipeStorage" ],
   3050       "version" : "1.1"
   3051     },
   3052     {
   3053       "opname" : "OpCreatePipeFromPipeStorage",
   3054       "opcode" : 324,
   3055       "operands" : [
   3056         { "kind" : "IdResultType" },
   3057         { "kind" : "IdResult" },
   3058         { "kind" : "IdRef", "name" : "'Pipe Storage'" }
   3059       ],
   3060       "capabilities" : [ "PipeStorage" ],
   3061       "version" : "1.1"
   3062     },
   3063     {
   3064       "opname" : "OpGetKernelLocalSizeForSubgroupCount",
   3065       "opcode" : 325,
   3066       "operands" : [
   3067         { "kind" : "IdResultType" },
   3068         { "kind" : "IdResult" },
   3069         { "kind" : "IdRef", "name" : "'Subgroup Count'" },
   3070         { "kind" : "IdRef", "name" : "'Invoke'" },
   3071         { "kind" : "IdRef", "name" : "'Param'" },
   3072         { "kind" : "IdRef", "name" : "'Param Size'" },
   3073         { "kind" : "IdRef", "name" : "'Param Align'" }
   3074       ],
   3075       "capabilities" : [ "SubgroupDispatch" ],
   3076       "version" : "1.1"
   3077     },
   3078     {
   3079       "opname" : "OpGetKernelMaxNumSubgroups",
   3080       "opcode" : 326,
   3081       "operands" : [
   3082         { "kind" : "IdResultType" },
   3083         { "kind" : "IdResult" },
   3084         { "kind" : "IdRef", "name" : "'Invoke'" },
   3085         { "kind" : "IdRef", "name" : "'Param'" },
   3086         { "kind" : "IdRef", "name" : "'Param Size'" },
   3087         { "kind" : "IdRef", "name" : "'Param Align'" }
   3088       ],
   3089       "capabilities" : [ "SubgroupDispatch" ],
   3090       "version" : "1.1"
   3091     },
   3092     {
   3093       "opname" : "OpTypeNamedBarrier",
   3094       "opcode" : 327,
   3095       "operands" : [
   3096         { "kind" : "IdResult" }
   3097       ],
   3098       "capabilities" : [ "NamedBarrier" ],
   3099       "version" : "1.1"
   3100     },
   3101     {
   3102       "opname" : "OpNamedBarrierInitialize",
   3103       "opcode" : 328,
   3104       "operands" : [
   3105         { "kind" : "IdResultType" },
   3106         { "kind" : "IdResult" },
   3107         { "kind" : "IdRef", "name" : "'Subgroup Count'" }
   3108       ],
   3109       "capabilities" : [ "NamedBarrier" ],
   3110       "version" : "1.1"
   3111     },
   3112     {
   3113       "opname" : "OpMemoryNamedBarrier",
   3114       "opcode" : 329,
   3115       "operands" : [
   3116         { "kind" : "IdRef", "name" : "'Named Barrier'" },
   3117         { "kind" : "IdScope", "name" : "'Memory'" },
   3118         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   3119       ],
   3120       "capabilities" : [ "NamedBarrier" ],
   3121       "version" : "1.1"
   3122     },
   3123     {
   3124       "opname" : "OpModuleProcessed",
   3125       "opcode" : 330,
   3126       "operands" : [
   3127         { "kind" : "LiteralString", "name" : "'Process'" }
   3128       ],
   3129       "version" : "1.1"
   3130     },
   3131     {
   3132       "opname" : "OpExecutionModeId",
   3133       "opcode" : 331,
   3134       "operands" : [
   3135         { "kind" : "IdRef", "name" : "'Entry Point'" },
   3136         { "kind" : "ExecutionMode", "name" : "'Mode'" }
   3137       ],
   3138       "version" : "1.2"
   3139     },
   3140     {
   3141       "opname" : "OpDecorateId",
   3142       "opcode" : 332,
   3143       "operands" : [
   3144         { "kind" : "IdRef", "name" : "'Target'" },
   3145         { "kind" : "Decoration" }
   3146       ],
   3147       "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
   3148       "version" : "1.2"
   3149     },
   3150     {
   3151       "opname" : "OpGroupNonUniformElect",
   3152       "opcode" : 333,
   3153       "operands" : [
   3154         { "kind" : "IdResultType" },
   3155         { "kind" : "IdResult" },
   3156         { "kind" : "IdScope", "name" : "'Execution'" }
   3157       ],
   3158       "capabilities" : [ "GroupNonUniform" ],
   3159       "version" : "1.3"
   3160     },
   3161     {
   3162       "opname" : "OpGroupNonUniformAll",
   3163       "opcode" : 334,
   3164       "operands" : [
   3165         { "kind" : "IdResultType" },
   3166         { "kind" : "IdResult" },
   3167         { "kind" : "IdScope", "name" : "'Execution'" },
   3168         { "kind" : "IdRef", "name" : "'Predicate'" }
   3169       ],
   3170       "capabilities" : [ "GroupNonUniformVote" ],
   3171       "version" : "1.3"
   3172     },
   3173     {
   3174       "opname" : "OpGroupNonUniformAny",
   3175       "opcode" : 335,
   3176       "operands" : [
   3177         { "kind" : "IdResultType" },
   3178         { "kind" : "IdResult" },
   3179         { "kind" : "IdScope", "name" : "'Execution'" },
   3180         { "kind" : "IdRef", "name" : "'Predicate'" }
   3181       ],
   3182       "capabilities" : [ "GroupNonUniformVote" ],
   3183       "version" : "1.3"
   3184     },
   3185     {
   3186       "opname" : "OpGroupNonUniformAllEqual",
   3187       "opcode" : 336,
   3188       "operands" : [
   3189         { "kind" : "IdResultType" },
   3190         { "kind" : "IdResult" },
   3191         { "kind" : "IdScope", "name" : "'Execution'" },
   3192         { "kind" : "IdRef", "name" : "'Value'" }
   3193       ],
   3194       "capabilities" : [ "GroupNonUniformVote" ],
   3195       "version" : "1.3"
   3196     },
   3197     {
   3198       "opname" : "OpGroupNonUniformBroadcast",
   3199       "opcode" : 337,
   3200       "operands" : [
   3201         { "kind" : "IdResultType" },
   3202         { "kind" : "IdResult" },
   3203         { "kind" : "IdScope", "name" : "'Execution'" },
   3204         { "kind" : "IdRef", "name" : "'Value'" },
   3205         { "kind" : "IdRef", "name" : "'Id'" }
   3206       ],
   3207       "capabilities" : [ "GroupNonUniformBallot" ],
   3208       "version" : "1.3"
   3209     },
   3210     {
   3211       "opname" : "OpGroupNonUniformBroadcastFirst",
   3212       "opcode" : 338,
   3213       "operands" : [
   3214         { "kind" : "IdResultType" },
   3215         { "kind" : "IdResult" },
   3216         { "kind" : "IdScope", "name" : "'Execution'" },
   3217         { "kind" : "IdRef", "name" : "'Value'" }
   3218       ],
   3219       "capabilities" : [ "GroupNonUniformBallot" ],
   3220       "version" : "1.3"
   3221     },
   3222     {
   3223       "opname" : "OpGroupNonUniformBallot",
   3224       "opcode" : 339,
   3225       "operands" : [
   3226         { "kind" : "IdResultType" },
   3227         { "kind" : "IdResult" },
   3228         { "kind" : "IdScope", "name" : "'Execution'" },
   3229         { "kind" : "IdRef", "name" : "'Predicate'" }
   3230       ],
   3231       "capabilities" : [ "GroupNonUniformBallot" ],
   3232       "version" : "1.3"
   3233     },
   3234     {
   3235       "opname" : "OpGroupNonUniformInverseBallot",
   3236       "opcode" : 340,
   3237       "operands" : [
   3238         { "kind" : "IdResultType" },
   3239         { "kind" : "IdResult" },
   3240         { "kind" : "IdScope", "name" : "'Execution'" },
   3241         { "kind" : "IdRef", "name" : "'Value'" }
   3242       ],
   3243       "capabilities" : [ "GroupNonUniformBallot" ],
   3244       "version" : "1.3"
   3245     },
   3246     {
   3247       "opname" : "OpGroupNonUniformBallotBitExtract",
   3248       "opcode" : 341,
   3249       "operands" : [
   3250         { "kind" : "IdResultType" },
   3251         { "kind" : "IdResult" },
   3252         { "kind" : "IdScope", "name" : "'Execution'" },
   3253         { "kind" : "IdRef", "name" : "'Value'" },
   3254         { "kind" : "IdRef", "name" : "'Index'" }
   3255       ],
   3256       "capabilities" : [ "GroupNonUniformBallot" ],
   3257       "version" : "1.3"
   3258     },
   3259     {
   3260       "opname" : "OpGroupNonUniformBallotBitCount",
   3261       "opcode" : 342,
   3262       "operands" : [
   3263         { "kind" : "IdResultType" },
   3264         { "kind" : "IdResult" },
   3265         { "kind" : "IdScope", "name" : "'Execution'" },
   3266         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3267         { "kind" : "IdRef", "name" : "'Value'" }
   3268       ],
   3269       "capabilities" : [ "GroupNonUniformBallot" ],
   3270       "version" : "1.3"
   3271     },
   3272     {
   3273       "opname" : "OpGroupNonUniformBallotFindLSB",
   3274       "opcode" : 343,
   3275       "operands" : [
   3276         { "kind" : "IdResultType" },
   3277         { "kind" : "IdResult" },
   3278         { "kind" : "IdScope", "name" : "'Execution'" },
   3279         { "kind" : "IdRef", "name" : "'Value'" }
   3280       ],
   3281       "capabilities" : [ "GroupNonUniformBallot" ],
   3282       "version" : "1.3"
   3283     },
   3284     {
   3285       "opname" : "OpGroupNonUniformBallotFindMSB",
   3286       "opcode" : 344,
   3287       "operands" : [
   3288         { "kind" : "IdResultType" },
   3289         { "kind" : "IdResult" },
   3290         { "kind" : "IdScope", "name" : "'Execution'" },
   3291         { "kind" : "IdRef", "name" : "'Value'" }
   3292       ],
   3293       "capabilities" : [ "GroupNonUniformBallot" ],
   3294       "version" : "1.3"
   3295     },
   3296     {
   3297       "opname" : "OpGroupNonUniformShuffle",
   3298       "opcode" : 345,
   3299       "operands" : [
   3300         { "kind" : "IdResultType" },
   3301         { "kind" : "IdResult" },
   3302         { "kind" : "IdScope", "name" : "'Execution'" },
   3303         { "kind" : "IdRef", "name" : "'Value'" },
   3304         { "kind" : "IdRef", "name" : "'Id'" }
   3305       ],
   3306       "capabilities" : [ "GroupNonUniformShuffle" ],
   3307       "version" : "1.3"
   3308     },
   3309     {
   3310       "opname" : "OpGroupNonUniformShuffleXor",
   3311       "opcode" : 346,
   3312       "operands" : [
   3313         { "kind" : "IdResultType" },
   3314         { "kind" : "IdResult" },
   3315         { "kind" : "IdScope", "name" : "'Execution'" },
   3316         { "kind" : "IdRef", "name" : "'Value'" },
   3317         { "kind" : "IdRef", "name" : "'Mask'" }
   3318       ],
   3319       "capabilities" : [ "GroupNonUniformShuffle" ],
   3320       "version" : "1.3"
   3321     },
   3322     {
   3323       "opname" : "OpGroupNonUniformShuffleUp",
   3324       "opcode" : 347,
   3325       "operands" : [
   3326         { "kind" : "IdResultType" },
   3327         { "kind" : "IdResult" },
   3328         { "kind" : "IdScope", "name" : "'Execution'" },
   3329         { "kind" : "IdRef", "name" : "'Value'" },
   3330         { "kind" : "IdRef", "name" : "'Delta'" }
   3331       ],
   3332       "capabilities" : [ "GroupNonUniformShuffleRelative" ],
   3333       "version" : "1.3"
   3334     },
   3335     {
   3336       "opname" : "OpGroupNonUniformShuffleDown",
   3337       "opcode" : 348,
   3338       "operands" : [
   3339         { "kind" : "IdResultType" },
   3340         { "kind" : "IdResult" },
   3341         { "kind" : "IdScope", "name" : "'Execution'" },
   3342         { "kind" : "IdRef", "name" : "'Value'" },
   3343         { "kind" : "IdRef", "name" : "'Delta'" }
   3344       ],
   3345       "capabilities" : [ "GroupNonUniformShuffleRelative" ],
   3346       "version" : "1.3"
   3347     },
   3348     {
   3349       "opname" : "OpGroupNonUniformIAdd",
   3350       "opcode" : 349,
   3351       "operands" : [
   3352         { "kind" : "IdResultType" },
   3353         { "kind" : "IdResult" },
   3354         { "kind" : "IdScope", "name" : "'Execution'" },
   3355         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3356         { "kind" : "IdRef", "name" : "'Value'" },
   3357         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3358       ],
   3359       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3360       "version" : "1.3"
   3361     },
   3362     {
   3363       "opname" : "OpGroupNonUniformFAdd",
   3364       "opcode" : 350,
   3365       "operands" : [
   3366         { "kind" : "IdResultType" },
   3367         { "kind" : "IdResult" },
   3368         { "kind" : "IdScope", "name" : "'Execution'" },
   3369         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3370         { "kind" : "IdRef", "name" : "'Value'" },
   3371         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3372       ],
   3373       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3374       "version" : "1.3"
   3375     },
   3376     {
   3377       "opname" : "OpGroupNonUniformIMul",
   3378       "opcode" : 351,
   3379       "operands" : [
   3380         { "kind" : "IdResultType" },
   3381         { "kind" : "IdResult" },
   3382         { "kind" : "IdScope", "name" : "'Execution'" },
   3383         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3384         { "kind" : "IdRef", "name" : "'Value'" },
   3385         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3386       ],
   3387       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3388       "version" : "1.3"
   3389     },
   3390     {
   3391       "opname" : "OpGroupNonUniformFMul",
   3392       "opcode" : 352,
   3393       "operands" : [
   3394         { "kind" : "IdResultType" },
   3395         { "kind" : "IdResult" },
   3396         { "kind" : "IdScope", "name" : "'Execution'" },
   3397         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3398         { "kind" : "IdRef", "name" : "'Value'" },
   3399         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3400       ],
   3401       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3402       "version" : "1.3"
   3403     },
   3404     {
   3405       "opname" : "OpGroupNonUniformSMin",
   3406       "opcode" : 353,
   3407       "operands" : [
   3408         { "kind" : "IdResultType" },
   3409         { "kind" : "IdResult" },
   3410         { "kind" : "IdScope", "name" : "'Execution'" },
   3411         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3412         { "kind" : "IdRef", "name" : "'Value'" },
   3413         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3414       ],
   3415       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3416       "version" : "1.3"
   3417     },
   3418     {
   3419       "opname" : "OpGroupNonUniformUMin",
   3420       "opcode" : 354,
   3421       "operands" : [
   3422         { "kind" : "IdResultType" },
   3423         { "kind" : "IdResult" },
   3424         { "kind" : "IdScope", "name" : "'Execution'" },
   3425         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3426         { "kind" : "IdRef", "name" : "'Value'" },
   3427         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3428       ],
   3429       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3430       "version" : "1.3"
   3431     },
   3432     {
   3433       "opname" : "OpGroupNonUniformFMin",
   3434       "opcode" : 355,
   3435       "operands" : [
   3436         { "kind" : "IdResultType" },
   3437         { "kind" : "IdResult" },
   3438         { "kind" : "IdScope", "name" : "'Execution'" },
   3439         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3440         { "kind" : "IdRef", "name" : "'Value'" },
   3441         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3442       ],
   3443       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3444       "version" : "1.3"
   3445     },
   3446     {
   3447       "opname" : "OpGroupNonUniformSMax",
   3448       "opcode" : 356,
   3449       "operands" : [
   3450         { "kind" : "IdResultType" },
   3451         { "kind" : "IdResult" },
   3452         { "kind" : "IdScope", "name" : "'Execution'" },
   3453         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3454         { "kind" : "IdRef", "name" : "'Value'" },
   3455         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3456       ],
   3457       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3458       "version" : "1.3"
   3459     },
   3460     {
   3461       "opname" : "OpGroupNonUniformUMax",
   3462       "opcode" : 357,
   3463       "operands" : [
   3464         { "kind" : "IdResultType" },
   3465         { "kind" : "IdResult" },
   3466         { "kind" : "IdScope", "name" : "'Execution'" },
   3467         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3468         { "kind" : "IdRef", "name" : "'Value'" },
   3469         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3470       ],
   3471       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3472       "version" : "1.3"
   3473     },
   3474     {
   3475       "opname" : "OpGroupNonUniformFMax",
   3476       "opcode" : 358,
   3477       "operands" : [
   3478         { "kind" : "IdResultType" },
   3479         { "kind" : "IdResult" },
   3480         { "kind" : "IdScope", "name" : "'Execution'" },
   3481         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3482         { "kind" : "IdRef", "name" : "'Value'" },
   3483         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3484       ],
   3485       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3486       "version" : "1.3"
   3487     },
   3488     {
   3489       "opname" : "OpGroupNonUniformBitwiseAnd",
   3490       "opcode" : 359,
   3491       "operands" : [
   3492         { "kind" : "IdResultType" },
   3493         { "kind" : "IdResult" },
   3494         { "kind" : "IdScope", "name" : "'Execution'" },
   3495         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3496         { "kind" : "IdRef", "name" : "'Value'" },
   3497         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3498       ],
   3499       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3500       "version" : "1.3"
   3501     },
   3502     {
   3503       "opname" : "OpGroupNonUniformBitwiseOr",
   3504       "opcode" : 360,
   3505       "operands" : [
   3506         { "kind" : "IdResultType" },
   3507         { "kind" : "IdResult" },
   3508         { "kind" : "IdScope", "name" : "'Execution'" },
   3509         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3510         { "kind" : "IdRef", "name" : "'Value'" },
   3511         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3512       ],
   3513       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3514       "version" : "1.3"
   3515     },
   3516     {
   3517       "opname" : "OpGroupNonUniformBitwiseXor",
   3518       "opcode" : 361,
   3519       "operands" : [
   3520         { "kind" : "IdResultType" },
   3521         { "kind" : "IdResult" },
   3522         { "kind" : "IdScope", "name" : "'Execution'" },
   3523         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3524         { "kind" : "IdRef", "name" : "'Value'" },
   3525         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3526       ],
   3527       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3528       "version" : "1.3"
   3529     },
   3530     {
   3531       "opname" : "OpGroupNonUniformLogicalAnd",
   3532       "opcode" : 362,
   3533       "operands" : [
   3534         { "kind" : "IdResultType" },
   3535         { "kind" : "IdResult" },
   3536         { "kind" : "IdScope", "name" : "'Execution'" },
   3537         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3538         { "kind" : "IdRef", "name" : "'Value'" },
   3539         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3540       ],
   3541       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3542       "version" : "1.3"
   3543     },
   3544     {
   3545       "opname" : "OpGroupNonUniformLogicalOr",
   3546       "opcode" : 363,
   3547       "operands" : [
   3548         { "kind" : "IdResultType" },
   3549         { "kind" : "IdResult" },
   3550         { "kind" : "IdScope", "name" : "'Execution'" },
   3551         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3552         { "kind" : "IdRef", "name" : "'Value'" },
   3553         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3554       ],
   3555       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3556       "version" : "1.3"
   3557     },
   3558     {
   3559       "opname" : "OpGroupNonUniformLogicalXor",
   3560       "opcode" : 364,
   3561       "operands" : [
   3562         { "kind" : "IdResultType" },
   3563         { "kind" : "IdResult" },
   3564         { "kind" : "IdScope", "name" : "'Execution'" },
   3565         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3566         { "kind" : "IdRef", "name" : "'Value'" },
   3567         { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
   3568       ],
   3569       "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
   3570       "version" : "1.3"
   3571     },
   3572     {
   3573       "opname" : "OpGroupNonUniformQuadBroadcast",
   3574       "opcode" : 365,
   3575       "operands" : [
   3576         { "kind" : "IdResultType" },
   3577         { "kind" : "IdResult" },
   3578         { "kind" : "IdScope", "name" : "'Execution'" },
   3579         { "kind" : "IdRef", "name" : "'Value'" },
   3580         { "kind" : "IdRef", "name" : "'Index'" }
   3581       ],
   3582       "capabilities" : [ "GroupNonUniformQuad" ],
   3583       "version" : "1.3"
   3584     },
   3585     {
   3586       "opname" : "OpGroupNonUniformQuadSwap",
   3587       "opcode" : 366,
   3588       "operands" : [
   3589         { "kind" : "IdResultType" },
   3590         { "kind" : "IdResult" },
   3591         { "kind" : "IdScope", "name" : "'Execution'" },
   3592         { "kind" : "IdRef", "name" : "'Value'" },
   3593         { "kind" : "IdRef", "name" : "'Direction'" }
   3594       ],
   3595       "capabilities" : [ "GroupNonUniformQuad" ],
   3596       "version" : "1.3"
   3597     },
   3598     {
   3599       "opname" : "OpSubgroupBallotKHR",
   3600       "opcode" : 4421,
   3601       "operands" : [
   3602         { "kind" : "IdResultType" },
   3603         { "kind" : "IdResult" },
   3604         { "kind" : "IdRef", "name" : "'Predicate'" }
   3605       ],
   3606       "capabilities" : [ "SubgroupBallotKHR" ],
   3607       "extensions" : [ "SPV_KHR_shader_ballot" ],
   3608       "version" : "None"
   3609     },
   3610     {
   3611       "opname" : "OpSubgroupFirstInvocationKHR",
   3612       "opcode" : 4422,
   3613       "operands" : [
   3614         { "kind" : "IdResultType" },
   3615         { "kind" : "IdResult" },
   3616         { "kind" : "IdRef", "name" : "'Value'" }
   3617       ],
   3618       "capabilities" : [ "SubgroupBallotKHR" ],
   3619       "extensions" : [ "SPV_KHR_shader_ballot" ],
   3620       "version" : "None"
   3621     },
   3622     {
   3623       "opname" : "OpSubgroupAllKHR",
   3624       "opcode" : 4428,
   3625       "operands" : [
   3626         { "kind" : "IdResultType" },
   3627         { "kind" : "IdResult" },
   3628         { "kind" : "IdRef", "name" : "'Predicate'" }
   3629       ],
   3630       "extensions" : [
   3631         "SPV_KHR_subgroup_vote"
   3632       ],
   3633       "capabilities" : [ "SubgroupVoteKHR" ],
   3634       "version" : "None"
   3635     },
   3636     {
   3637       "opname" : "OpSubgroupAnyKHR",
   3638       "opcode" : 4429,
   3639       "operands" : [
   3640         { "kind" : "IdResultType" },
   3641         { "kind" : "IdResult" },
   3642         { "kind" : "IdRef", "name" : "'Predicate'" }
   3643       ],
   3644       "extensions" : [
   3645         "SPV_KHR_subgroup_vote"
   3646       ],
   3647       "capabilities" : [ "SubgroupVoteKHR" ],
   3648       "version" : "None"
   3649     },
   3650     {
   3651       "opname" : "OpSubgroupAllEqualKHR",
   3652       "opcode" : 4430,
   3653       "operands" : [
   3654         { "kind" : "IdResultType" },
   3655         { "kind" : "IdResult" },
   3656         { "kind" : "IdRef", "name" : "'Predicate'" }
   3657       ],
   3658       "extensions" : [
   3659         "SPV_KHR_subgroup_vote"
   3660       ],
   3661       "capabilities" : [ "SubgroupVoteKHR" ],
   3662       "version" : "None"
   3663     },
   3664     {
   3665       "opname" : "OpSubgroupReadInvocationKHR",
   3666       "opcode" : 4432,
   3667       "operands" : [
   3668         { "kind" : "IdResultType" },
   3669         { "kind" : "IdResult" },
   3670         { "kind" : "IdRef", "name" : "'Value'" },
   3671         { "kind" : "IdRef", "name" : "'Index'" }
   3672       ],
   3673       "capabilities" : [ "SubgroupBallotKHR" ],
   3674       "extensions" : [ "SPV_KHR_shader_ballot" ],
   3675       "version" : "None"
   3676     },
   3677     {
   3678       "opname" : "OpGroupIAddNonUniformAMD",
   3679       "opcode" : 5000,
   3680       "operands" : [
   3681         { "kind" : "IdResultType" },
   3682         { "kind" : "IdResult" },
   3683         { "kind" : "IdScope",        "name" : "'Execution'" },
   3684         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3685         { "kind" : "IdRef",          "name" : "'X'" }
   3686       ],
   3687       "capabilities" : [ "Groups" ],
   3688       "extensions" : [ "SPV_AMD_shader_ballot" ],
   3689       "version" : "None"
   3690     },
   3691     {
   3692       "opname" : "OpGroupFAddNonUniformAMD",
   3693       "opcode" : 5001,
   3694       "operands" : [
   3695         { "kind" : "IdResultType" },
   3696         { "kind" : "IdResult" },
   3697         { "kind" : "IdScope",        "name" : "'Execution'" },
   3698         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3699         { "kind" : "IdRef",          "name" : "'X'" }
   3700       ],
   3701       "capabilities" : [ "Groups" ],
   3702       "extensions" : [ "SPV_AMD_shader_ballot" ],
   3703       "version" : "None"
   3704     },
   3705     {
   3706       "opname" : "OpGroupFMinNonUniformAMD",
   3707       "opcode" : 5002,
   3708       "operands" : [
   3709         { "kind" : "IdResultType" },
   3710         { "kind" : "IdResult" },
   3711         { "kind" : "IdScope",        "name" : "'Execution'" },
   3712         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3713         { "kind" : "IdRef",          "name" : "'X'" }
   3714       ],
   3715       "capabilities" : [ "Groups" ],
   3716       "extensions" : [ "SPV_AMD_shader_ballot" ],
   3717       "version" : "None"
   3718     },
   3719     {
   3720       "opname" : "OpGroupUMinNonUniformAMD",
   3721       "opcode" : 5003,
   3722       "operands" : [
   3723         { "kind" : "IdResultType" },
   3724         { "kind" : "IdResult" },
   3725         { "kind" : "IdScope",        "name" : "'Execution'" },
   3726         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3727         { "kind" : "IdRef",          "name" : "'X'" }
   3728       ],
   3729       "capabilities" : [ "Groups" ],
   3730       "extensions" : [ "SPV_AMD_shader_ballot" ],
   3731       "version" : "None"
   3732     },
   3733     {
   3734       "opname" : "OpGroupSMinNonUniformAMD",
   3735       "opcode" : 5004,
   3736       "operands" : [
   3737         { "kind" : "IdResultType" },
   3738         { "kind" : "IdResult" },
   3739         { "kind" : "IdScope",        "name" : "'Execution'" },
   3740         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3741         { "kind" : "IdRef",          "name" : "'X'" }
   3742       ],
   3743       "capabilities" : [ "Groups" ],
   3744       "extensions" : [ "SPV_AMD_shader_ballot" ],
   3745       "version" : "None"
   3746     },
   3747     {
   3748       "opname" : "OpGroupFMaxNonUniformAMD",
   3749       "opcode" : 5005,
   3750       "operands" : [
   3751         { "kind" : "IdResultType" },
   3752         { "kind" : "IdResult" },
   3753         { "kind" : "IdScope",        "name" : "'Execution'" },
   3754         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3755         { "kind" : "IdRef",          "name" : "'X'" }
   3756       ],
   3757       "capabilities" : [ "Groups" ],
   3758       "extensions" : [ "SPV_AMD_shader_ballot" ],
   3759       "version" : "None"
   3760     },
   3761     {
   3762       "opname" : "OpGroupUMaxNonUniformAMD",
   3763       "opcode" : 5006,
   3764       "operands" : [
   3765         { "kind" : "IdResultType" },
   3766         { "kind" : "IdResult" },
   3767         { "kind" : "IdScope",        "name" : "'Execution'" },
   3768         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3769         { "kind" : "IdRef",          "name" : "'X'" }
   3770       ],
   3771       "capabilities" : [ "Groups" ],
   3772       "extensions" : [ "SPV_AMD_shader_ballot" ],
   3773       "version" : "None"
   3774     },
   3775     {
   3776       "opname" : "OpGroupSMaxNonUniformAMD",
   3777       "opcode" : 5007,
   3778       "operands" : [
   3779         { "kind" : "IdResultType" },
   3780         { "kind" : "IdResult" },
   3781         { "kind" : "IdScope",        "name" : "'Execution'" },
   3782         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3783         { "kind" : "IdRef",          "name" : "'X'" }
   3784       ],
   3785       "capabilities" : [ "Groups" ],
   3786       "extensions" : [ "SPV_AMD_shader_ballot" ],
   3787       "version" : "None"
   3788     },
   3789     {
   3790       "opname" : "OpFragmentMaskFetchAMD",
   3791       "opcode" : 5011,
   3792       "operands" : [
   3793         { "kind" : "IdResultType" },
   3794         { "kind" : "IdResult" },
   3795         { "kind" : "IdRef", "name" : "'Image'" },
   3796         { "kind" : "IdRef", "name" : "'Coordinate'" }
   3797       ],
   3798       "capabilities" : [ "FragmentMaskAMD" ],
   3799       "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
   3800       "version" : "None"
   3801     },
   3802     {
   3803       "opname" : "OpFragmentFetchAMD",
   3804       "opcode" : 5012,
   3805       "operands" : [
   3806         { "kind" : "IdResultType" },
   3807         { "kind" : "IdResult" },
   3808         { "kind" : "IdRef", "name" : "'Image'" },
   3809         { "kind" : "IdRef", "name" : "'Coordinate'" },
   3810         { "kind" : "IdRef", "name" : "'Fragment Index'" }
   3811       ],
   3812       "capabilities" : [ "FragmentMaskAMD" ],
   3813       "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
   3814       "version" : "None"
   3815     },
   3816     {
   3817       "opname" : "OpWritePackedPrimitiveIndices4x8NV",
   3818       "opcode" : 5299,
   3819       "operands" : [
   3820         { "kind" : "IdRef", "name" : "'Index Offset'" },
   3821         { "kind" : "IdRef", "name" : "'Packed Indices'" }
   3822       ],
   3823       "capabilities" : [ "MeshShadingNV" ],
   3824       "extensions" : [ "SPV_NV_mesh_shader" ],
   3825       "version" : "None"
   3826     },
   3827     {
   3828       "opname" : "OpReportIntersectionNVX",
   3829       "opcode" : 5334,
   3830       "operands" : [
   3831         { "kind" : "IdResultType" },
   3832         { "kind" : "IdResult" },
   3833         { "kind" : "IdRef", "name" : "'Hit'" },
   3834         { "kind" : "IdRef", "name" : "'HitKind'" }
   3835       ],
   3836       "capabilities" : [ "RaytracingNVX" ],
   3837       "extensions" : [ "SPV_NVX_raytracing" ]
   3838     },
   3839     {
   3840       "opname" : "OpIgnoreIntersectionNVX",
   3841       "opcode" : 5335,
   3842 
   3843       "capabilities" : [ "RaytracingNVX" ],
   3844       "extensions" : [ "SPV_NVX_raytracing" ]
   3845     },
   3846     {
   3847       "opname" : "OpTerminateRayNVX",
   3848       "opcode" : 5336,
   3849 
   3850       "capabilities" : [ "RaytracingNVX" ],
   3851       "extensions" : [ "SPV_NVX_raytracing" ]
   3852     },
   3853     {
   3854       "opname" : "OpTraceNVX",
   3855       "opcode" : 5337,
   3856       "operands" : [
   3857 
   3858         { "kind" : "IdRef", "name" : "'Accel'" },
   3859         { "kind" : "IdRef", "name" : "'Ray Flags'" },
   3860         { "kind" : "IdRef", "name" : "'Cull Mask'" },
   3861         { "kind" : "IdRef", "name" : "'SBT Offset'" },
   3862         { "kind" : "IdRef", "name" : "'SBT Stride'" },
   3863         { "kind" : "IdRef", "name" : "'Miss Index'" },
   3864         { "kind" : "IdRef", "name" : "'Ray Origin'" },
   3865         { "kind" : "IdRef", "name" : "'Ray Tmin'" },
   3866         { "kind" : "IdRef", "name" : "'Ray Direction'" },
   3867         { "kind" : "IdRef", "name" : "'Ray Tmax'" },
   3868         { "kind" : "IdRef", "name" : "'PayloadId'" }
   3869       ],
   3870       "capabilities" : [ "RaytracingNVX" ],
   3871       "extensions" : [ "SPV_NVX_raytracing" ]
   3872     },
   3873     {
   3874       "opname" : "OpTypeAccelerationStructureNVX",
   3875       "opcode" : 5341,
   3876       "operands" : [
   3877         { "kind" : "IdResult" }
   3878       ],
   3879       "capabilities" : [ "RaytracingNVX" ],
   3880       "extensions" : [ "SPV_NVX_raytracing" ]
   3881     },
   3882     {
   3883       "opname" : "OpSubgroupShuffleINTEL",
   3884       "opcode" : 5571,
   3885       "operands" : [
   3886         { "kind" : "IdResultType" },
   3887         { "kind" : "IdResult" },
   3888         { "kind" : "IdRef", "name" : "'Data'" },
   3889         { "kind" : "IdRef", "name" : "'InvocationId'" }
   3890       ],
   3891       "capabilities" : [ "SubgroupShuffleINTEL" ],
   3892       "version" : "None"
   3893     },
   3894     {
   3895       "opname" : "OpSubgroupShuffleDownINTEL",
   3896       "opcode" : 5572,
   3897       "operands" : [
   3898         { "kind" : "IdResultType" },
   3899         { "kind" : "IdResult" },
   3900         { "kind" : "IdRef", "name" : "'Current'" },
   3901         { "kind" : "IdRef", "name" : "'Next'" },
   3902         { "kind" : "IdRef", "name" : "'Delta'" }
   3903       ],
   3904       "capabilities" : [ "SubgroupShuffleINTEL" ],
   3905       "version" : "None"
   3906     },
   3907     {
   3908       "opname" : "OpSubgroupShuffleUpINTEL",
   3909       "opcode" : 5573,
   3910       "operands" : [
   3911         { "kind" : "IdResultType" },
   3912         { "kind" : "IdResult" },
   3913         { "kind" : "IdRef", "name" : "'Previous'" },
   3914         { "kind" : "IdRef", "name" : "'Current'" },
   3915         { "kind" : "IdRef", "name" : "'Delta'" }
   3916       ],
   3917       "capabilities" : [ "SubgroupShuffleINTEL" ],
   3918       "version" : "None"
   3919     },
   3920     {
   3921       "opname" : "OpSubgroupShuffleXorINTEL",
   3922       "opcode" : 5574,
   3923       "operands" : [
   3924         { "kind" : "IdResultType" },
   3925         { "kind" : "IdResult" },
   3926         { "kind" : "IdRef", "name" : "'Data'" },
   3927         { "kind" : "IdRef", "name" : "'Value'" }
   3928       ],
   3929       "capabilities" : [ "SubgroupShuffleINTEL" ],
   3930       "version" : "None"
   3931     },
   3932     {
   3933       "opname" : "OpSubgroupBlockReadINTEL",
   3934       "opcode" : 5575,
   3935       "operands" : [
   3936         { "kind" : "IdResultType" },
   3937         { "kind" : "IdResult" },
   3938         { "kind" : "IdRef", "name" : "'Ptr'" }
   3939       ],
   3940       "capabilities" : [ "SubgroupBufferBlockIOINTEL" ],
   3941       "version" : "None"
   3942     },
   3943     {
   3944       "opname" : "OpSubgroupBlockWriteINTEL",
   3945       "opcode" : 5576,
   3946       "operands" : [
   3947         { "kind" : "IdRef", "name" : "'Ptr'" },
   3948         { "kind" : "IdRef", "name" : "'Data'" }
   3949       ],
   3950       "capabilities" : [ "SubgroupBufferBlockIOINTEL" ],
   3951       "version" : "None"
   3952     },
   3953     {
   3954       "opname" : "OpSubgroupImageBlockReadINTEL",
   3955       "opcode" : 5577,
   3956       "operands" : [
   3957         { "kind" : "IdResultType" },
   3958         { "kind" : "IdResult" },
   3959         { "kind" : "IdRef", "name" : "'Image'" },
   3960         { "kind" : "IdRef", "name" : "'Coordinate'" }
   3961       ],
   3962       "capabilities" : [ "SubgroupImageBlockIOINTEL" ],
   3963       "version" : "None"
   3964     },
   3965     {
   3966       "opname" : "OpSubgroupImageBlockWriteINTEL",
   3967       "opcode" : 5578,
   3968       "operands" : [
   3969         { "kind" : "IdRef", "name" : "'Image'" },
   3970         { "kind" : "IdRef", "name" : "'Coordinate'" },
   3971         { "kind" : "IdRef", "name" : "'Data'" }
   3972       ],
   3973       "capabilities" : [ "SubgroupImageBlockIOINTEL" ],
   3974       "version" : "None"
   3975     },
   3976     {
   3977       "opname" : "OpDecorateStringGOOGLE",
   3978       "opcode" : 5632,
   3979       "operands" : [
   3980         { "kind" : "IdRef",         "name" : "'Target'" },
   3981         { "kind" : "Decoration" }
   3982       ],
   3983       "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ],
   3984       "version" : "None"
   3985     },
   3986     {
   3987       "opname" : "OpMemberDecorateStringGOOGLE",
   3988       "opcode" : 5633,
   3989       "operands" : [
   3990         { "kind" : "IdRef",          "name" : "'Struct Type'" },
   3991         { "kind" : "LiteralInteger", "name" : "'Member'" },
   3992         { "kind" : "Decoration" }
   3993       ],
   3994       "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ],
   3995       "version" : "None"
   3996     },
   3997     {
   3998       "opname" : "OpGroupNonUniformPartitionNV",
   3999       "opcode" : 5296,
   4000       "operands" : [
   4001         { "kind" : "IdResultType" },
   4002         { "kind" : "IdResult" },
   4003         { "kind" : "IdRef", "name" : "'Value'" }
   4004       ],
   4005       "capabilities" : [ "GroupNonUniformPartitionedNV" ],
   4006       "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
   4007       "version" : "None"
   4008     },
   4009 	{
   4010       "opname" : "OpImageSampleFootprintNV",
   4011       "opcode" : 5283,
   4012       "operands" : [
   4013         { "kind" : "IdResultType" },
   4014         { "kind" : "IdResult" },
   4015         { "kind" : "IdRef", "name" : "'Sampled Image'" },
   4016         { "kind" : "IdRef", "name" : "'Coordinate'" },
   4017         { "kind" : "IdRef", "name" : "'Granularity'" },
   4018         { "kind" : "IdRef", "name" : "'Coarse'" },
   4019         { "kind" : "ImageOperands", "quantifier" : "?" }
   4020       ],
   4021       "capabilities" : [ "ImageFootprintNV" ],
   4022       "extensions" : [ "SPV_NV_shader_image_footprint" ],
   4023       "version" : "None"
   4024     }
   4025   ],
   4026   "operand_kinds" : [
   4027     {
   4028       "category" : "BitEnum",
   4029       "kind" : "ImageOperands",
   4030       "enumerants" : [
   4031         {
   4032           "enumerant" : "None",
   4033           "value" : "0x0000"
   4034         },
   4035         {
   4036           "enumerant" : "Bias",
   4037           "value" : "0x0001",
   4038           "capabilities" : [ "Shader" ],
   4039           "parameters" : [
   4040             { "kind" : "IdRef" }
   4041           ]
   4042         },
   4043         {
   4044           "enumerant" : "Lod",
   4045           "value" : "0x0002",
   4046           "parameters" : [
   4047             { "kind" : "IdRef" }
   4048           ]
   4049         },
   4050         {
   4051           "enumerant" : "Grad",
   4052           "value" : "0x0004",
   4053           "parameters" : [
   4054             { "kind" : "IdRef" },
   4055             { "kind" : "IdRef" }
   4056           ]
   4057         },
   4058         {
   4059           "enumerant" : "ConstOffset",
   4060           "value" : "0x0008",
   4061           "parameters" : [
   4062             { "kind" : "IdRef" }
   4063           ]
   4064         },
   4065         {
   4066           "enumerant" : "Offset",
   4067           "value" : "0x0010",
   4068           "capabilities" : [ "ImageGatherExtended" ],
   4069           "parameters" : [
   4070             { "kind" : "IdRef" }
   4071           ]
   4072         },
   4073         {
   4074           "enumerant" : "ConstOffsets",
   4075           "value" : "0x0020",
   4076           "capabilities" : [ "ImageGatherExtended" ],
   4077           "parameters" : [
   4078             { "kind" : "IdRef" }
   4079           ]
   4080         },
   4081         {
   4082           "enumerant" : "Sample",
   4083           "value" : "0x0040",
   4084           "parameters" : [
   4085             { "kind" : "IdRef" }
   4086           ]
   4087         },
   4088         {
   4089           "enumerant" : "MinLod",
   4090           "value" : "0x0080",
   4091           "capabilities" : [ "MinLod" ],
   4092           "parameters" : [
   4093             { "kind" : "IdRef" }
   4094           ]
   4095         },
   4096         {
   4097           "enumerant" : "MakeTexelAvailableKHR",
   4098           "value" : "0x0100",
   4099           "capabilities" : [ "VulkanMemoryModelKHR" ],
   4100           "parameters" : [
   4101             { "kind" : "IdScope" }
   4102           ]
   4103         },
   4104         {
   4105           "enumerant" : "MakeTexelVisibleKHR",
   4106           "value" : "0x0200",
   4107           "capabilities" : [ "VulkanMemoryModelKHR" ],
   4108           "parameters" : [
   4109             { "kind" : "IdScope" }
   4110           ]
   4111         },
   4112         {
   4113           "enumerant" : "NonPrivateTexelKHR",
   4114           "value" : "0x0400",
   4115           "capabilities" : [ "VulkanMemoryModelKHR" ]
   4116         },
   4117         {
   4118           "enumerant" : "VolatileTexelKHR",
   4119           "value" : "0x0800",
   4120           "capabilities" : [ "VulkanMemoryModelKHR" ]
   4121         }
   4122       ]
   4123     },
   4124     {
   4125       "category" : "BitEnum",
   4126       "kind" : "FPFastMathMode",
   4127       "enumerants" : [
   4128         {
   4129           "enumerant" : "None",
   4130           "value" : "0x0000"
   4131         },
   4132         {
   4133           "enumerant" : "NotNaN",
   4134           "value" : "0x0001",
   4135           "capabilities" : [ "Kernel" ]
   4136         },
   4137         {
   4138           "enumerant" : "NotInf",
   4139           "value" : "0x0002",
   4140           "capabilities" : [ "Kernel" ]
   4141         },
   4142         {
   4143           "enumerant" : "NSZ",
   4144           "value" : "0x0004",
   4145           "capabilities" : [ "Kernel" ]
   4146         },
   4147         {
   4148           "enumerant" : "AllowRecip",
   4149           "value" : "0x0008",
   4150           "capabilities" : [ "Kernel" ]
   4151         },
   4152         {
   4153           "enumerant" : "Fast",
   4154           "value" : "0x0010",
   4155           "capabilities" : [ "Kernel" ]
   4156         }
   4157       ]
   4158     },
   4159     {
   4160       "category" : "BitEnum",
   4161       "kind" : "SelectionControl",
   4162       "enumerants" : [
   4163         {
   4164           "enumerant" : "None",
   4165           "value" : "0x0000"
   4166         },
   4167         {
   4168           "enumerant" : "Flatten",
   4169           "value" : "0x0001"
   4170         },
   4171         {
   4172           "enumerant" : "DontFlatten",
   4173           "value" : "0x0002"
   4174         }
   4175       ]
   4176     },
   4177     {
   4178       "category" : "BitEnum",
   4179       "kind" : "LoopControl",
   4180       "enumerants" : [
   4181         {
   4182           "enumerant" : "None",
   4183           "value" : "0x0000"
   4184         },
   4185         {
   4186           "enumerant" : "Unroll",
   4187           "value" : "0x0001"
   4188         },
   4189         {
   4190           "enumerant" : "DontUnroll",
   4191           "value" : "0x0002"
   4192         },
   4193         {
   4194           "enumerant" : "DependencyInfinite",
   4195           "value" : "0x0004",
   4196           "version" : "1.1"
   4197         },
   4198         {
   4199           "enumerant" : "DependencyLength",
   4200           "value" : "0x0008",
   4201           "parameters" : [
   4202             { "kind" : "LiteralInteger" }
   4203           ],
   4204           "version" : "1.1"
   4205         }
   4206       ]
   4207     },
   4208     {
   4209       "category" : "BitEnum",
   4210       "kind" : "FunctionControl",
   4211       "enumerants" : [
   4212         {
   4213           "enumerant" : "None",
   4214           "value" : "0x0000"
   4215         },
   4216         {
   4217           "enumerant" : "Inline",
   4218           "value" : "0x0001"
   4219         },
   4220         {
   4221           "enumerant" : "DontInline",
   4222           "value" : "0x0002"
   4223         },
   4224         {
   4225           "enumerant" : "Pure",
   4226           "value" : "0x0004"
   4227         },
   4228         {
   4229           "enumerant" : "Const",
   4230           "value" : "0x0008"
   4231         }
   4232       ]
   4233     },
   4234     {
   4235       "category" : "BitEnum",
   4236       "kind" : "MemorySemantics",
   4237       "enumerants" : [
   4238         {
   4239           "enumerant" : "Relaxed",
   4240           "value" : "0x0000"
   4241         },
   4242         {
   4243           "enumerant" : "None",
   4244           "value" : "0x0000"
   4245         },
   4246         {
   4247           "enumerant" : "Acquire",
   4248           "value" : "0x0002"
   4249         },
   4250         {
   4251           "enumerant" : "Release",
   4252           "value" : "0x0004"
   4253         },
   4254         {
   4255           "enumerant" : "AcquireRelease",
   4256           "value" : "0x0008"
   4257         },
   4258         {
   4259           "enumerant" : "SequentiallyConsistent",
   4260           "value" : "0x0010"
   4261         },
   4262         {
   4263           "enumerant" : "UniformMemory",
   4264           "value" : "0x0040",
   4265           "capabilities" : [ "Shader" ]
   4266         },
   4267         {
   4268           "enumerant" : "SubgroupMemory",
   4269           "value" : "0x0080"
   4270         },
   4271         {
   4272           "enumerant" : "WorkgroupMemory",
   4273           "value" : "0x0100"
   4274         },
   4275         {
   4276           "enumerant" : "CrossWorkgroupMemory",
   4277           "value" : "0x0200"
   4278         },
   4279         {
   4280           "enumerant" : "AtomicCounterMemory",
   4281           "value" : "0x0400",
   4282           "capabilities" : [ "AtomicStorage" ]
   4283         },
   4284         {
   4285           "enumerant" : "ImageMemory",
   4286           "value" : "0x0800"
   4287         },
   4288         {
   4289           "enumerant" : "OutputMemoryKHR",
   4290           "value" : "0x1000",
   4291           "capabilities" : [ "VulkanMemoryModelKHR" ]
   4292         },
   4293         {
   4294           "enumerant" : "MakeAvailableKHR",
   4295           "value" : "0x2000",
   4296           "capabilities" : [ "VulkanMemoryModelKHR" ]
   4297         },
   4298         {
   4299           "enumerant" : "MakeVisibleKHR",
   4300           "value" : "0x4000",
   4301           "capabilities" : [ "VulkanMemoryModelKHR" ]
   4302         }
   4303       ]
   4304     },
   4305     {
   4306       "category" : "BitEnum",
   4307       "kind" : "MemoryAccess",
   4308       "enumerants" : [
   4309         {
   4310           "enumerant" : "None",
   4311           "value" : "0x0000"
   4312         },
   4313         {
   4314           "enumerant" : "Volatile",
   4315           "value" : "0x0001"
   4316         },
   4317         {
   4318           "enumerant" : "Aligned",
   4319           "value" : "0x0002",
   4320           "parameters" : [
   4321             { "kind" : "LiteralInteger" }
   4322           ]
   4323         },
   4324         {
   4325           "enumerant" : "Nontemporal",
   4326           "value" : "0x0004"
   4327         },
   4328         {
   4329           "enumerant" : "MakePointerAvailableKHR",
   4330           "value" : "0x0008",
   4331           "parameters" : [
   4332             { "kind" : "IdScope" }
   4333           ],
   4334           "capabilities" : [ "VulkanMemoryModelKHR" ]
   4335         },
   4336         {
   4337           "enumerant" : "MakePointerVisibleKHR",
   4338           "value" : "0x0010",
   4339           "parameters" : [
   4340             { "kind" : "IdScope" }
   4341           ],
   4342           "capabilities" : [ "VulkanMemoryModelKHR" ]
   4343         },
   4344         {
   4345           "enumerant" : "NonPrivatePointerKHR",
   4346           "value" : "0x0020",
   4347           "capabilities" : [ "VulkanMemoryModelKHR" ]
   4348         }
   4349       ]
   4350     },
   4351     {
   4352       "category" : "BitEnum",
   4353       "kind" : "KernelProfilingInfo",
   4354       "enumerants" : [
   4355         {
   4356           "enumerant" : "None",
   4357           "value" : "0x0000"
   4358         },
   4359         {
   4360           "enumerant" : "CmdExecTime",
   4361           "value" : "0x0001",
   4362           "capabilities" : [ "Kernel" ]
   4363         }
   4364       ]
   4365     },
   4366     {
   4367       "category" : "ValueEnum",
   4368       "kind" : "SourceLanguage",
   4369       "enumerants" : [
   4370         {
   4371           "enumerant" : "Unknown",
   4372           "value" : 0
   4373         },
   4374         {
   4375           "enumerant" : "ESSL",
   4376           "value" : 1
   4377         },
   4378         {
   4379           "enumerant" : "GLSL",
   4380           "value" : 2
   4381         },
   4382         {
   4383           "enumerant" : "OpenCL_C",
   4384           "value" : 3
   4385         },
   4386         {
   4387           "enumerant" : "OpenCL_CPP",
   4388           "value" : 4
   4389         },
   4390         {
   4391           "enumerant" : "HLSL",
   4392           "value" : 5
   4393         }
   4394       ]
   4395     },
   4396     {
   4397       "category" : "ValueEnum",
   4398       "kind" : "ExecutionModel",
   4399       "enumerants" : [
   4400         {
   4401           "enumerant" : "Vertex",
   4402           "value" : 0,
   4403           "capabilities" : [ "Shader" ]
   4404         },
   4405         {
   4406           "enumerant" : "TessellationControl",
   4407           "value" : 1,
   4408           "capabilities" : [ "Tessellation" ]
   4409         },
   4410         {
   4411           "enumerant" : "TessellationEvaluation",
   4412           "value" : 2,
   4413           "capabilities" : [ "Tessellation" ]
   4414         },
   4415         {
   4416           "enumerant" : "Geometry",
   4417           "value" : 3,
   4418           "capabilities" : [ "Geometry" ]
   4419         },
   4420         {
   4421           "enumerant" : "Fragment",
   4422           "value" : 4,
   4423           "capabilities" : [ "Shader" ]
   4424         },
   4425         {
   4426           "enumerant" : "GLCompute",
   4427           "value" : 5,
   4428           "capabilities" : [ "Shader" ]
   4429         },
   4430         {
   4431           "enumerant" : "Kernel",
   4432           "value" : 6,
   4433           "capabilities" : [ "Kernel" ]
   4434         },
   4435         {
   4436           "enumerant" : "TaskNV",
   4437           "value" : 5267,
   4438           "capabilities" : [ "MeshShadingNV" ]
   4439         },
   4440         {
   4441           "enumerant" : "MeshNV",
   4442           "value" : 5268,
   4443           "capabilities" : [ "MeshShadingNV" ]
   4444         },
   4445         {
   4446           "enumerant" : "RayGenerationNVX",
   4447           "value" : 5313,
   4448           "capabilities" : [ "RaytracingNVX" ]
   4449         },
   4450         {
   4451           "enumerant" : "IntersectionNVX",
   4452           "value" : 5314,
   4453           "capabilities" : [ "RaytracingNVX" ]
   4454         },
   4455         {
   4456           "enumerant" : "AnyHitNVX",
   4457           "value" : 5315,
   4458           "capabilities" : [ "RaytracingNVX" ]
   4459         },
   4460         {
   4461           "enumerant" : "ClosestHitNVX",
   4462           "value" : 5316,
   4463           "capabilities" : [ "RaytracingNVX" ]
   4464         },
   4465         {
   4466           "enumerant" : "MissNVX",
   4467           "value" : 5317,
   4468           "capabilities" : [ "RaytracingNVX" ]
   4469         },
   4470         {
   4471           "enumerant" : "CallableNVX",
   4472           "value" : 5318,
   4473           "capabilities" : [ "RaytracingNVX" ]
   4474         }
   4475       ]
   4476     },
   4477     {
   4478       "category" : "ValueEnum",
   4479       "kind" : "AddressingModel",
   4480       "enumerants" : [
   4481         {
   4482           "enumerant" : "Logical",
   4483           "value" : 0
   4484         },
   4485         {
   4486           "enumerant" : "Physical32",
   4487           "value" : 1,
   4488           "capabilities" : [ "Addresses" ]
   4489         },
   4490         {
   4491           "enumerant" : "Physical64",
   4492           "value" : 2,
   4493           "capabilities" : [ "Addresses" ]
   4494         }
   4495       ]
   4496     },
   4497     {
   4498       "category" : "ValueEnum",
   4499       "kind" : "MemoryModel",
   4500       "enumerants" : [
   4501         {
   4502           "enumerant" : "Simple",
   4503           "value" : 0,
   4504           "capabilities" : [ "Shader" ]
   4505         },
   4506         {
   4507           "enumerant" : "GLSL450",
   4508           "value" : 1,
   4509           "capabilities" : [ "Shader" ]
   4510         },
   4511         {
   4512           "enumerant" : "OpenCL",
   4513           "value" : 2,
   4514           "capabilities" : [ "Kernel" ]
   4515         },
   4516         {
   4517           "enumerant" : "VulkanKHR",
   4518           "value" : 3,
   4519           "capabilities" : [ "VulkanMemoryModelKHR" ]
   4520         }
   4521       ]
   4522     },
   4523     {
   4524       "category" : "ValueEnum",
   4525       "kind" : "ExecutionMode",
   4526       "enumerants" : [
   4527         {
   4528           "enumerant" : "Invocations",
   4529           "value" : 0,
   4530           "capabilities" : [ "Geometry" ],
   4531           "parameters" : [
   4532             { "kind" : "LiteralInteger", "name" : "'Number of <<Invocation,invocations>>'" }
   4533           ]
   4534         },
   4535         {
   4536           "enumerant" : "SpacingEqual",
   4537           "value" : 1,
   4538           "capabilities" : [ "Tessellation" ]
   4539         },
   4540         {
   4541           "enumerant" : "SpacingFractionalEven",
   4542           "value" : 2,
   4543           "capabilities" : [ "Tessellation" ]
   4544         },
   4545         {
   4546           "enumerant" : "SpacingFractionalOdd",
   4547           "value" : 3,
   4548           "capabilities" : [ "Tessellation" ]
   4549         },
   4550         {
   4551           "enumerant" : "VertexOrderCw",
   4552           "value" : 4,
   4553           "capabilities" : [ "Tessellation" ]
   4554         },
   4555         {
   4556           "enumerant" : "VertexOrderCcw",
   4557           "value" : 5,
   4558           "capabilities" : [ "Tessellation" ]
   4559         },
   4560         {
   4561           "enumerant" : "PixelCenterInteger",
   4562           "value" : 6,
   4563           "capabilities" : [ "Shader" ]
   4564         },
   4565         {
   4566           "enumerant" : "OriginUpperLeft",
   4567           "value" : 7,
   4568           "capabilities" : [ "Shader" ]
   4569         },
   4570         {
   4571           "enumerant" : "OriginLowerLeft",
   4572           "value" : 8,
   4573           "capabilities" : [ "Shader" ]
   4574         },
   4575         {
   4576           "enumerant" : "EarlyFragmentTests",
   4577           "value" : 9,
   4578           "capabilities" : [ "Shader" ]
   4579         },
   4580         {
   4581           "enumerant" : "PointMode",
   4582           "value" : 10,
   4583           "capabilities" : [ "Tessellation" ]
   4584         },
   4585         {
   4586           "enumerant" : "Xfb",
   4587           "value" : 11,
   4588           "capabilities" : [ "TransformFeedback" ]
   4589         },
   4590         {
   4591           "enumerant" : "DepthReplacing",
   4592           "value" : 12,
   4593           "capabilities" : [ "Shader" ]
   4594         },
   4595         {
   4596           "enumerant" : "DepthGreater",
   4597           "value" : 14,
   4598           "capabilities" : [ "Shader" ]
   4599         },
   4600         {
   4601           "enumerant" : "DepthLess",
   4602           "value" : 15,
   4603           "capabilities" : [ "Shader" ]
   4604         },
   4605         {
   4606           "enumerant" : "DepthUnchanged",
   4607           "value" : 16,
   4608           "capabilities" : [ "Shader" ]
   4609         },
   4610         {
   4611           "enumerant" : "LocalSize",
   4612           "value" : 17,
   4613           "parameters" : [
   4614             { "kind" : "LiteralInteger", "name" : "'x size'" },
   4615             { "kind" : "LiteralInteger", "name" : "'y size'" },
   4616             { "kind" : "LiteralInteger", "name" : "'z size'" }
   4617           ]
   4618         },
   4619         {
   4620           "enumerant" : "LocalSizeHint",
   4621           "value" : 18,
   4622           "capabilities" : [ "Kernel" ],
   4623           "parameters" : [
   4624             { "kind" : "LiteralInteger", "name" : "'x size'" },
   4625             { "kind" : "LiteralInteger", "name" : "'y size'" },
   4626             { "kind" : "LiteralInteger", "name" : "'z size'" }
   4627           ]
   4628         },
   4629         {
   4630           "enumerant" : "InputPoints",
   4631           "value" : 19,
   4632           "capabilities" : [ "Geometry" ]
   4633         },
   4634         {
   4635           "enumerant" : "InputLines",
   4636           "value" : 20,
   4637           "capabilities" : [ "Geometry" ]
   4638         },
   4639         {
   4640           "enumerant" : "InputLinesAdjacency",
   4641           "value" : 21,
   4642           "capabilities" : [ "Geometry" ]
   4643         },
   4644         {
   4645           "enumerant" : "Triangles",
   4646           "value" : 22,
   4647           "capabilities" : [ "Geometry", "Tessellation" ]
   4648         },
   4649         {
   4650           "enumerant" : "InputTrianglesAdjacency",
   4651           "value" : 23,
   4652           "capabilities" : [ "Geometry" ]
   4653         },
   4654         {
   4655           "enumerant" : "Quads",
   4656           "value" : 24,
   4657           "capabilities" : [ "Tessellation" ]
   4658         },
   4659         {
   4660           "enumerant" : "Isolines",
   4661           "value" : 25,
   4662           "capabilities" : [ "Tessellation" ]
   4663         },
   4664         {
   4665           "enumerant" : "OutputVertices",
   4666           "value" : 26,
   4667           "capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV" ],
   4668           "parameters" : [
   4669             { "kind" : "LiteralInteger", "name" : "'Vertex count'" }
   4670           ]
   4671         },
   4672         {
   4673           "enumerant" : "OutputPoints",
   4674           "value" : 27,
   4675           "capabilities" : [ "Geometry", "MeshShadingNV" ]
   4676         },
   4677         {
   4678           "enumerant" : "OutputLineStrip",
   4679           "value" : 28,
   4680           "capabilities" : [ "Geometry" ]
   4681         },
   4682         {
   4683           "enumerant" : "OutputTriangleStrip",
   4684           "value" : 29,
   4685           "capabilities" : [ "Geometry" ]
   4686         },
   4687         {
   4688           "enumerant" : "VecTypeHint",
   4689           "value" : 30,
   4690           "capabilities" : [ "Kernel" ],
   4691           "parameters" : [
   4692             { "kind" : "LiteralInteger", "name" : "'Vector type'" }
   4693           ]
   4694         },
   4695         {
   4696           "enumerant" : "ContractionOff",
   4697           "value" : 31,
   4698           "capabilities" : [ "Kernel" ]
   4699         },
   4700         {
   4701           "enumerant" : "Initializer",
   4702           "value" : 33,
   4703           "capabilities" : [ "Kernel" ],
   4704           "version" : "1.1"
   4705         },
   4706         {
   4707           "enumerant" : "Finalizer",
   4708           "value" : 34,
   4709           "capabilities" : [ "Kernel" ],
   4710           "version" : "1.1"
   4711         },
   4712         {
   4713           "enumerant" : "SubgroupSize",
   4714           "value" : 35,
   4715           "capabilities" : [ "SubgroupDispatch" ],
   4716           "parameters" : [
   4717             { "kind" : "LiteralInteger", "name" : "'Subgroup Size'" }
   4718           ],
   4719           "version" : "1.1"
   4720         },
   4721         {
   4722           "enumerant" : "SubgroupsPerWorkgroup",
   4723           "value" : 36,
   4724           "capabilities" : [ "SubgroupDispatch" ],
   4725           "parameters" : [
   4726             { "kind" : "LiteralInteger", "name" : "'Subgroups Per Workgroup'" }
   4727           ],
   4728           "version" : "1.1"
   4729         },
   4730         {
   4731           "enumerant" : "SubgroupsPerWorkgroupId",
   4732           "value" : 37,
   4733           "capabilities" : [ "SubgroupDispatch" ],
   4734           "parameters" : [
   4735             { "kind" : "IdRef", "name" : "'Subgroups Per Workgroup'" }
   4736           ],
   4737           "version" : "1.2"
   4738         },
   4739         {
   4740           "enumerant" : "LocalSizeId",
   4741           "value" : 38,
   4742           "parameters" : [
   4743             { "kind" : "IdRef", "name" : "'x size'" },
   4744             { "kind" : "IdRef", "name" : "'y size'" },
   4745             { "kind" : "IdRef", "name" : "'z size'" }
   4746           ],
   4747           "version" : "1.2"
   4748         },
   4749         {
   4750           "enumerant" : "LocalSizeHintId",
   4751           "value" : 39,
   4752           "capabilities" : [ "Kernel" ],
   4753           "parameters" : [
   4754             { "kind" : "IdRef", "name" : "'Local Size Hint'" }
   4755           ],
   4756           "version" : "1.2"
   4757         },
   4758         {
   4759           "enumerant" : "PostDepthCoverage",
   4760           "value" : 4446,
   4761           "capabilities" : [ "SampleMaskPostDepthCoverage" ],
   4762           "extensions" : [ "SPV_KHR_post_depth_coverage" ],
   4763           "version" : "None"
   4764         },
   4765         {
   4766           "enumerant" : "StencilRefReplacingEXT",
   4767           "value" : 5027,
   4768           "capabilities" : [ "StencilExportEXT" ],
   4769           "extensions" : [ "SPV_EXT_shader_stencil_export" ],
   4770           "version" : "None"
   4771         },
   4772         {
   4773           "enumerant" : "OutputLinesNV",
   4774           "value" : 5269,
   4775           "capabilities" : [ "MeshShadingNV" ],
   4776           "extensions" : [ "SPV_NV_mesh_shader" ],
   4777           "version" : "None"
   4778         },
   4779         {
   4780           "enumerant" : "OutputPrimitivesNV",
   4781           "value" : 5270,
   4782           "capabilities" : [ "MeshShadingNV" ],
   4783           "parameters" : [
   4784             { "kind" : "LiteralInteger", "name" : "'Primitive count'" }
   4785           ],
   4786           "extensions" : [ "SPV_NV_mesh_shader" ],
   4787           "version" : "None"
   4788         },
   4789         {
   4790           "enumerant" : "DerivativeGroupQuadsNV",
   4791           "value" : 5289,
   4792           "capabilities" : [ "ComputeDerivativeGroupQuadsNV" ],
   4793           "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
   4794           "version" : "None"
   4795         },
   4796         {
   4797           "enumerant" : "DerivativeGroupLinearNV",
   4798           "value" : 5290,
   4799           "capabilities" : [ "ComputeDerivativeGroupLinearNV" ],
   4800           "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
   4801           "version" : "None"
   4802         },
   4803         {
   4804           "enumerant" : "OutputTrianglesNV",
   4805           "value" : 5298,
   4806           "capabilities" : [ "MeshShadingNV" ],
   4807           "extensions" : [ "SPV_NV_mesh_shader" ],
   4808           "version" : "None"
   4809         }
   4810       ]
   4811     },
   4812     {
   4813       "category" : "ValueEnum",
   4814       "kind" : "StorageClass",
   4815       "enumerants" : [
   4816         {
   4817           "enumerant" : "UniformConstant",
   4818           "value" : 0
   4819         },
   4820         {
   4821           "enumerant" : "Input",
   4822           "value" : 1
   4823         },
   4824         {
   4825           "enumerant" : "Uniform",
   4826           "value" : 2,
   4827           "capabilities" : [ "Shader" ]
   4828         },
   4829         {
   4830           "enumerant" : "Output",
   4831           "value" : 3,
   4832           "capabilities" : [ "Shader" ]
   4833         },
   4834         {
   4835           "enumerant" : "Workgroup",
   4836           "value" : 4
   4837         },
   4838         {
   4839           "enumerant" : "CrossWorkgroup",
   4840           "value" : 5
   4841         },
   4842         {
   4843           "enumerant" : "Private",
   4844           "value" : 6,
   4845           "capabilities" : [ "Shader" ]
   4846         },
   4847         {
   4848           "enumerant" : "Function",
   4849           "value" : 7
   4850         },
   4851         {
   4852           "enumerant" : "Generic",
   4853           "value" : 8,
   4854           "capabilities" : [ "GenericPointer" ]
   4855         },
   4856         {
   4857           "enumerant" : "PushConstant",
   4858           "value" : 9,
   4859           "capabilities" : [ "Shader" ]
   4860         },
   4861         {
   4862           "enumerant" : "AtomicCounter",
   4863           "value" : 10,
   4864           "capabilities" : [ "AtomicStorage" ]
   4865         },
   4866         {
   4867           "enumerant" : "Image",
   4868           "value" : 11
   4869         },
   4870         {
   4871           "enumerant" : "StorageBuffer",
   4872           "value" : 12,
   4873           "extensions" : [
   4874             "SPV_KHR_storage_buffer_storage_class",
   4875             "SPV_KHR_variable_pointers"
   4876           ],
   4877           "capabilities" : [ "Shader" ],
   4878           "version" : "1.3"
   4879         },
   4880         {
   4881           "enumerant" : "RayPayloadNVX",
   4882           "value" : 5338,
   4883           "extensions" : [ "SPV_NVX_raytracing" ],
   4884           "capabilities" : [ "RaytracingNVX" ]
   4885         },
   4886         {
   4887           "enumerant" : "HitAttributeNVX",
   4888           "value" : 5339,
   4889           "extensions" : [ "SPV_NVX_raytracing" ],
   4890           "capabilities" : [ "RaytracingNVX" ]
   4891         },
   4892         {
   4893           "enumerant" : "IncomingRayPayloadNVX",
   4894           "value" : 5342,
   4895           "extensions" : [ "SPV_NVX_raytracing" ],
   4896           "capabilities" : [ "RaytracingNVX" ]
   4897         },
   4898 {
   4899           "enumerant" : "ShaderRecordBufferNVX",
   4900           "value" : 5343,
   4901           "extensions" : [ "SPV_NVX_raytracing" ],
   4902           "capabilities" : [ "RaytracingNVX" ]
   4903         }
   4904       ]
   4905     },
   4906     {
   4907       "category" : "ValueEnum",
   4908       "kind" : "Dim",
   4909       "enumerants" : [
   4910         {
   4911           "enumerant" : "1D",
   4912           "value" : 0,
   4913           "capabilities" : [ "Sampled1D", "Image1D" ]
   4914         },
   4915         {
   4916           "enumerant" : "2D",
   4917           "value" : 1,
   4918           "capabilities" : [ "Shader", "Kernel", "ImageMSArray" ]
   4919         },
   4920         {
   4921           "enumerant" : "3D",
   4922           "value" : 2
   4923         },
   4924         {
   4925           "enumerant" : "Cube",
   4926           "value" : 3,
   4927           "capabilities" : [ "Shader", "ImageCubeArray" ]
   4928         },
   4929         {
   4930           "enumerant" : "Rect",
   4931           "value" : 4,
   4932           "capabilities" : [ "SampledRect", "ImageRect" ]
   4933         },
   4934         {
   4935           "enumerant" : "Buffer",
   4936           "value" : 5,
   4937           "capabilities" : [ "SampledBuffer", "ImageBuffer" ]
   4938         },
   4939         {
   4940           "enumerant" : "SubpassData",
   4941           "value" : 6,
   4942           "capabilities" : [ "InputAttachment" ]
   4943         }
   4944       ]
   4945     },
   4946     {
   4947       "category" : "ValueEnum",
   4948       "kind" : "SamplerAddressingMode",
   4949       "enumerants" : [
   4950         {
   4951           "enumerant" : "None",
   4952           "value" : 0,
   4953           "capabilities" : [ "Kernel" ]
   4954         },
   4955         {
   4956           "enumerant" : "ClampToEdge",
   4957           "value" : 1,
   4958           "capabilities" : [ "Kernel" ]
   4959         },
   4960         {
   4961           "enumerant" : "Clamp",
   4962           "value" : 2,
   4963           "capabilities" : [ "Kernel" ]
   4964         },
   4965         {
   4966           "enumerant" : "Repeat",
   4967           "value" : 3,
   4968           "capabilities" : [ "Kernel" ]
   4969         },
   4970         {
   4971           "enumerant" : "RepeatMirrored",
   4972           "value" : 4,
   4973           "capabilities" : [ "Kernel" ]
   4974         }
   4975       ]
   4976     },
   4977     {
   4978       "category" : "ValueEnum",
   4979       "kind" : "SamplerFilterMode",
   4980       "enumerants" : [
   4981         {
   4982           "enumerant" : "Nearest",
   4983           "value" : 0,
   4984           "capabilities" : [ "Kernel" ]
   4985         },
   4986         {
   4987           "enumerant" : "Linear",
   4988           "value" : 1,
   4989           "capabilities" : [ "Kernel" ]
   4990         }
   4991       ]
   4992     },
   4993     {
   4994       "category" : "ValueEnum",
   4995       "kind" : "ImageFormat",
   4996       "enumerants" : [
   4997         {
   4998           "enumerant" : "Unknown",
   4999           "value" : 0
   5000         },
   5001         {
   5002           "enumerant" : "Rgba32f",
   5003           "value" : 1,
   5004           "capabilities" : [ "Shader" ]
   5005         },
   5006         {
   5007           "enumerant" : "Rgba16f",
   5008           "value" : 2,
   5009           "capabilities" : [ "Shader" ]
   5010         },
   5011         {
   5012           "enumerant" : "R32f",
   5013           "value" : 3,
   5014           "capabilities" : [ "Shader" ]
   5015         },
   5016         {
   5017           "enumerant" : "Rgba8",
   5018           "value" : 4,
   5019           "capabilities" : [ "Shader" ]
   5020         },
   5021         {
   5022           "enumerant" : "Rgba8Snorm",
   5023           "value" : 5,
   5024           "capabilities" : [ "Shader" ]
   5025         },
   5026         {
   5027           "enumerant" : "Rg32f",
   5028           "value" : 6,
   5029           "capabilities" : [ "StorageImageExtendedFormats" ]
   5030         },
   5031         {
   5032           "enumerant" : "Rg16f",
   5033           "value" : 7,
   5034           "capabilities" : [ "StorageImageExtendedFormats" ]
   5035         },
   5036         {
   5037           "enumerant" : "R11fG11fB10f",
   5038           "value" : 8,
   5039           "capabilities" : [ "StorageImageExtendedFormats" ]
   5040         },
   5041         {
   5042           "enumerant" : "R16f",
   5043           "value" : 9,
   5044           "capabilities" : [ "StorageImageExtendedFormats" ]
   5045         },
   5046         {
   5047           "enumerant" : "Rgba16",
   5048           "value" : 10,
   5049           "capabilities" : [ "StorageImageExtendedFormats" ]
   5050         },
   5051         {
   5052           "enumerant" : "Rgb10A2",
   5053           "value" : 11,
   5054           "capabilities" : [ "StorageImageExtendedFormats" ]
   5055         },
   5056         {
   5057           "enumerant" : "Rg16",
   5058           "value" : 12,
   5059           "capabilities" : [ "StorageImageExtendedFormats" ]
   5060         },
   5061         {
   5062           "enumerant" : "Rg8",
   5063           "value" : 13,
   5064           "capabilities" : [ "StorageImageExtendedFormats" ]
   5065         },
   5066         {
   5067           "enumerant" : "R16",
   5068           "value" : 14,
   5069           "capabilities" : [ "StorageImageExtendedFormats" ]
   5070         },
   5071         {
   5072           "enumerant" : "R8",
   5073           "value" : 15,
   5074           "capabilities" : [ "StorageImageExtendedFormats" ]
   5075         },
   5076         {
   5077           "enumerant" : "Rgba16Snorm",
   5078           "value" : 16,
   5079           "capabilities" : [ "StorageImageExtendedFormats" ]
   5080         },
   5081         {
   5082           "enumerant" : "Rg16Snorm",
   5083           "value" : 17,
   5084           "capabilities" : [ "StorageImageExtendedFormats" ]
   5085         },
   5086         {
   5087           "enumerant" : "Rg8Snorm",
   5088           "value" : 18,
   5089           "capabilities" : [ "StorageImageExtendedFormats" ]
   5090         },
   5091         {
   5092           "enumerant" : "R16Snorm",
   5093           "value" : 19,
   5094           "capabilities" : [ "StorageImageExtendedFormats" ]
   5095         },
   5096         {
   5097           "enumerant" : "R8Snorm",
   5098           "value" : 20,
   5099           "capabilities" : [ "StorageImageExtendedFormats" ]
   5100         },
   5101         {
   5102           "enumerant" : "Rgba32i",
   5103           "value" : 21,
   5104           "capabilities" : [ "Shader" ]
   5105         },
   5106         {
   5107           "enumerant" : "Rgba16i",
   5108           "value" : 22,
   5109           "capabilities" : [ "Shader" ]
   5110         },
   5111         {
   5112           "enumerant" : "Rgba8i",
   5113           "value" : 23,
   5114           "capabilities" : [ "Shader" ]
   5115         },
   5116         {
   5117           "enumerant" : "R32i",
   5118           "value" : 24,
   5119           "capabilities" : [ "Shader" ]
   5120         },
   5121         {
   5122           "enumerant" : "Rg32i",
   5123           "value" : 25,
   5124           "capabilities" : [ "StorageImageExtendedFormats" ]
   5125         },
   5126         {
   5127           "enumerant" : "Rg16i",
   5128           "value" : 26,
   5129           "capabilities" : [ "StorageImageExtendedFormats" ]
   5130         },
   5131         {
   5132           "enumerant" : "Rg8i",
   5133           "value" : 27,
   5134           "capabilities" : [ "StorageImageExtendedFormats" ]
   5135         },
   5136         {
   5137           "enumerant" : "R16i",
   5138           "value" : 28,
   5139           "capabilities" : [ "StorageImageExtendedFormats" ]
   5140         },
   5141         {
   5142           "enumerant" : "R8i",
   5143           "value" : 29,
   5144           "capabilities" : [ "StorageImageExtendedFormats" ]
   5145         },
   5146         {
   5147           "enumerant" : "Rgba32ui",
   5148           "value" : 30,
   5149           "capabilities" : [ "Shader" ]
   5150         },
   5151         {
   5152           "enumerant" : "Rgba16ui",
   5153           "value" : 31,
   5154           "capabilities" : [ "Shader" ]
   5155         },
   5156         {
   5157           "enumerant" : "Rgba8ui",
   5158           "value" : 32,
   5159           "capabilities" : [ "Shader" ]
   5160         },
   5161         {
   5162           "enumerant" : "R32ui",
   5163           "value" : 33,
   5164           "capabilities" : [ "Shader" ]
   5165         },
   5166         {
   5167           "enumerant" : "Rgb10a2ui",
   5168           "value" : 34,
   5169           "capabilities" : [ "StorageImageExtendedFormats" ]
   5170         },
   5171         {
   5172           "enumerant" : "Rg32ui",
   5173           "value" : 35,
   5174           "capabilities" : [ "StorageImageExtendedFormats" ]
   5175         },
   5176         {
   5177           "enumerant" : "Rg16ui",
   5178           "value" : 36,
   5179           "capabilities" : [ "StorageImageExtendedFormats" ]
   5180         },
   5181         {
   5182           "enumerant" : "Rg8ui",
   5183           "value" : 37,
   5184           "capabilities" : [ "StorageImageExtendedFormats" ]
   5185         },
   5186         {
   5187           "enumerant" : "R16ui",
   5188           "value" : 38,
   5189           "capabilities" : [ "StorageImageExtendedFormats" ]
   5190         },
   5191         {
   5192           "enumerant" : "R8ui",
   5193           "value" : 39,
   5194           "capabilities" : [ "StorageImageExtendedFormats" ]
   5195         }
   5196       ]
   5197     },
   5198     {
   5199       "category" : "ValueEnum",
   5200       "kind" : "ImageChannelOrder",
   5201       "enumerants" : [
   5202         {
   5203           "enumerant" : "R",
   5204           "value" : 0,
   5205           "capabilities" : [ "Kernel" ]
   5206         },
   5207         {
   5208           "enumerant" : "A",
   5209           "value" : 1,
   5210           "capabilities" : [ "Kernel" ]
   5211         },
   5212         {
   5213           "enumerant" : "RG",
   5214           "value" : 2,
   5215           "capabilities" : [ "Kernel" ]
   5216         },
   5217         {
   5218           "enumerant" : "RA",
   5219           "value" : 3,
   5220           "capabilities" : [ "Kernel" ]
   5221         },
   5222         {
   5223           "enumerant" : "RGB",
   5224           "value" : 4,
   5225           "capabilities" : [ "Kernel" ]
   5226         },
   5227         {
   5228           "enumerant" : "RGBA",
   5229           "value" : 5,
   5230           "capabilities" : [ "Kernel" ]
   5231         },
   5232         {
   5233           "enumerant" : "BGRA",
   5234           "value" : 6,
   5235           "capabilities" : [ "Kernel" ]
   5236         },
   5237         {
   5238           "enumerant" : "ARGB",
   5239           "value" : 7,
   5240           "capabilities" : [ "Kernel" ]
   5241         },
   5242         {
   5243           "enumerant" : "Intensity",
   5244           "value" : 8,
   5245           "capabilities" : [ "Kernel" ]
   5246         },
   5247         {
   5248           "enumerant" : "Luminance",
   5249           "value" : 9,
   5250           "capabilities" : [ "Kernel" ]
   5251         },
   5252         {
   5253           "enumerant" : "Rx",
   5254           "value" : 10,
   5255           "capabilities" : [ "Kernel" ]
   5256         },
   5257         {
   5258           "enumerant" : "RGx",
   5259           "value" : 11,
   5260           "capabilities" : [ "Kernel" ]
   5261         },
   5262         {
   5263           "enumerant" : "RGBx",
   5264           "value" : 12,
   5265           "capabilities" : [ "Kernel" ]
   5266         },
   5267         {
   5268           "enumerant" : "Depth",
   5269           "value" : 13,
   5270           "capabilities" : [ "Kernel" ]
   5271         },
   5272         {
   5273           "enumerant" : "DepthStencil",
   5274           "value" : 14,
   5275           "capabilities" : [ "Kernel" ]
   5276         },
   5277         {
   5278           "enumerant" : "sRGB",
   5279           "value" : 15,
   5280           "capabilities" : [ "Kernel" ]
   5281         },
   5282         {
   5283           "enumerant" : "sRGBx",
   5284           "value" : 16,
   5285           "capabilities" : [ "Kernel" ]
   5286         },
   5287         {
   5288           "enumerant" : "sRGBA",
   5289           "value" : 17,
   5290           "capabilities" : [ "Kernel" ]
   5291         },
   5292         {
   5293           "enumerant" : "sBGRA",
   5294           "value" : 18,
   5295           "capabilities" : [ "Kernel" ]
   5296         },
   5297         {
   5298           "enumerant" : "ABGR",
   5299           "value" : 19,
   5300           "capabilities" : [ "Kernel" ]
   5301         }
   5302       ]
   5303     },
   5304     {
   5305       "category" : "ValueEnum",
   5306       "kind" : "ImageChannelDataType",
   5307       "enumerants" : [
   5308         {
   5309           "enumerant" : "SnormInt8",
   5310           "value" : 0,
   5311           "capabilities" : [ "Kernel" ]
   5312         },
   5313         {
   5314           "enumerant" : "SnormInt16",
   5315           "value" : 1,
   5316           "capabilities" : [ "Kernel" ]
   5317         },
   5318         {
   5319           "enumerant" : "UnormInt8",
   5320           "value" : 2,
   5321           "capabilities" : [ "Kernel" ]
   5322         },
   5323         {
   5324           "enumerant" : "UnormInt16",
   5325           "value" : 3,
   5326           "capabilities" : [ "Kernel" ]
   5327         },
   5328         {
   5329           "enumerant" : "UnormShort565",
   5330           "value" : 4,
   5331           "capabilities" : [ "Kernel" ]
   5332         },
   5333         {
   5334           "enumerant" : "UnormShort555",
   5335           "value" : 5,
   5336           "capabilities" : [ "Kernel" ]
   5337         },
   5338         {
   5339           "enumerant" : "UnormInt101010",
   5340           "value" : 6,
   5341           "capabilities" : [ "Kernel" ]
   5342         },
   5343         {
   5344           "enumerant" : "SignedInt8",
   5345           "value" : 7,
   5346           "capabilities" : [ "Kernel" ]
   5347         },
   5348         {
   5349           "enumerant" : "SignedInt16",
   5350           "value" : 8,
   5351           "capabilities" : [ "Kernel" ]
   5352         },
   5353         {
   5354           "enumerant" : "SignedInt32",
   5355           "value" : 9,
   5356           "capabilities" : [ "Kernel" ]
   5357         },
   5358         {
   5359           "enumerant" : "UnsignedInt8",
   5360           "value" : 10,
   5361           "capabilities" : [ "Kernel" ]
   5362         },
   5363         {
   5364           "enumerant" : "UnsignedInt16",
   5365           "value" : 11,
   5366           "capabilities" : [ "Kernel" ]
   5367         },
   5368         {
   5369           "enumerant" : "UnsignedInt32",
   5370           "value" : 12,
   5371           "capabilities" : [ "Kernel" ]
   5372         },
   5373         {
   5374           "enumerant" : "HalfFloat",
   5375           "value" : 13,
   5376           "capabilities" : [ "Kernel" ]
   5377         },
   5378         {
   5379           "enumerant" : "Float",
   5380           "value" : 14,
   5381           "capabilities" : [ "Kernel" ]
   5382         },
   5383         {
   5384           "enumerant" : "UnormInt24",
   5385           "value" : 15,
   5386           "capabilities" : [ "Kernel" ]
   5387         },
   5388         {
   5389           "enumerant" : "UnormInt101010_2",
   5390           "value" : 16,
   5391           "capabilities" : [ "Kernel" ]
   5392         }
   5393       ]
   5394     },
   5395     {
   5396       "category" : "ValueEnum",
   5397       "kind" : "FPRoundingMode",
   5398       "enumerants" : [
   5399         {
   5400           "enumerant" : "RTE",
   5401           "value" : 0
   5402         },
   5403         {
   5404           "enumerant" : "RTZ",
   5405           "value" : 1
   5406         },
   5407         {
   5408           "enumerant" : "RTP",
   5409           "value" : 2
   5410         },
   5411         {
   5412           "enumerant" : "RTN",
   5413           "value" : 3
   5414         }
   5415       ]
   5416     },
   5417     {
   5418       "category" : "ValueEnum",
   5419       "kind" : "LinkageType",
   5420       "enumerants" : [
   5421         {
   5422           "enumerant" : "Export",
   5423           "value" : 0,
   5424           "capabilities" : [ "Linkage" ]
   5425         },
   5426         {
   5427           "enumerant" : "Import",
   5428           "value" : 1,
   5429           "capabilities" : [ "Linkage" ]
   5430         }
   5431       ]
   5432     },
   5433     {
   5434       "category" : "ValueEnum",
   5435       "kind" : "AccessQualifier",
   5436       "enumerants" : [
   5437         {
   5438           "enumerant" : "ReadOnly",
   5439           "value" : 0,
   5440           "capabilities" : [ "Kernel" ]
   5441         },
   5442         {
   5443           "enumerant" : "WriteOnly",
   5444           "value" : 1,
   5445           "capabilities" : [ "Kernel" ]
   5446         },
   5447         {
   5448           "enumerant" : "ReadWrite",
   5449           "value" : 2,
   5450           "capabilities" : [ "Kernel" ]
   5451         }
   5452       ]
   5453     },
   5454     {
   5455       "category" : "ValueEnum",
   5456       "kind" : "FunctionParameterAttribute",
   5457       "enumerants" : [
   5458         {
   5459           "enumerant" : "Zext",
   5460           "value" : 0,
   5461           "capabilities" : [ "Kernel" ]
   5462         },
   5463         {
   5464           "enumerant" : "Sext",
   5465           "value" : 1,
   5466           "capabilities" : [ "Kernel" ]
   5467         },
   5468         {
   5469           "enumerant" : "ByVal",
   5470           "value" : 2,
   5471           "capabilities" : [ "Kernel" ]
   5472         },
   5473         {
   5474           "enumerant" : "Sret",
   5475           "value" : 3,
   5476           "capabilities" : [ "Kernel" ]
   5477         },
   5478         {
   5479           "enumerant" : "NoAlias",
   5480           "value" : 4,
   5481           "capabilities" : [ "Kernel" ]
   5482         },
   5483         {
   5484           "enumerant" : "NoCapture",
   5485           "value" : 5,
   5486           "capabilities" : [ "Kernel" ]
   5487         },
   5488         {
   5489           "enumerant" : "NoWrite",
   5490           "value" : 6,
   5491           "capabilities" : [ "Kernel" ]
   5492         },
   5493         {
   5494           "enumerant" : "NoReadWrite",
   5495           "value" : 7,
   5496           "capabilities" : [ "Kernel" ]
   5497         }
   5498       ]
   5499     },
   5500     {
   5501       "category" : "ValueEnum",
   5502       "kind" : "Decoration",
   5503       "enumerants" : [
   5504         {
   5505           "enumerant" : "RelaxedPrecision",
   5506           "value" : 0,
   5507           "capabilities" : [ "Shader" ]
   5508         },
   5509         {
   5510           "enumerant" : "SpecId",
   5511           "value" : 1,
   5512           "capabilities" : [ "Shader", "Kernel" ],
   5513           "parameters" : [
   5514             { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" }
   5515           ]
   5516         },
   5517         {
   5518           "enumerant" : "Block",
   5519           "value" : 2,
   5520           "capabilities" : [ "Shader" ]
   5521         },
   5522         {
   5523           "enumerant" : "BufferBlock",
   5524           "value" : 3,
   5525           "capabilities" : [ "Shader" ]
   5526         },
   5527         {
   5528           "enumerant" : "RowMajor",
   5529           "value" : 4,
   5530           "capabilities" : [ "Matrix" ]
   5531         },
   5532         {
   5533           "enumerant" : "ColMajor",
   5534           "value" : 5,
   5535           "capabilities" : [ "Matrix" ]
   5536         },
   5537         {
   5538           "enumerant" : "ArrayStride",
   5539           "value" : 6,
   5540           "capabilities" : [ "Shader" ],
   5541           "parameters" : [
   5542             { "kind" : "LiteralInteger", "name" : "'Array Stride'" }
   5543           ]
   5544         },
   5545         {
   5546           "enumerant" : "MatrixStride",
   5547           "value" : 7,
   5548           "capabilities" : [ "Matrix" ],
   5549           "parameters" : [
   5550             { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" }
   5551           ]
   5552         },
   5553         {
   5554           "enumerant" : "GLSLShared",
   5555           "value" : 8,
   5556           "capabilities" : [ "Shader" ]
   5557         },
   5558         {
   5559           "enumerant" : "GLSLPacked",
   5560           "value" : 9,
   5561           "capabilities" : [ "Shader" ]
   5562         },
   5563         {
   5564           "enumerant" : "CPacked",
   5565           "value" : 10,
   5566           "capabilities" : [ "Kernel" ]
   5567         },
   5568         {
   5569           "enumerant" : "BuiltIn",
   5570           "value" : 11,
   5571           "parameters" : [
   5572             { "kind" : "BuiltIn" }
   5573           ]
   5574         },
   5575         {
   5576           "enumerant" : "NoPerspective",
   5577           "value" : 13,
   5578           "capabilities" : [ "Shader" ]
   5579         },
   5580         {
   5581           "enumerant" : "Flat",
   5582           "value" : 14,
   5583           "capabilities" : [ "Shader" ]
   5584         },
   5585         {
   5586           "enumerant" : "Patch",
   5587           "value" : 15,
   5588           "capabilities" : [ "Tessellation" ]
   5589         },
   5590         {
   5591           "enumerant" : "Centroid",
   5592           "value" : 16,
   5593           "capabilities" : [ "Shader" ]
   5594         },
   5595         {
   5596           "enumerant" : "Sample",
   5597           "value" : 17,
   5598           "capabilities" : [ "SampleRateShading" ]
   5599         },
   5600         {
   5601           "enumerant" : "Invariant",
   5602           "value" : 18,
   5603           "capabilities" : [ "Shader" ]
   5604         },
   5605         {
   5606           "enumerant" : "Restrict",
   5607           "value" : 19
   5608         },
   5609         {
   5610           "enumerant" : "Aliased",
   5611           "value" : 20
   5612         },
   5613         {
   5614           "enumerant" : "Volatile",
   5615           "value" : 21
   5616         },
   5617         {
   5618           "enumerant" : "Constant",
   5619           "value" : 22,
   5620           "capabilities" : [ "Kernel" ]
   5621         },
   5622         {
   5623           "enumerant" : "Coherent",
   5624           "value" : 23
   5625         },
   5626         {
   5627           "enumerant" : "NonWritable",
   5628           "value" : 24
   5629         },
   5630         {
   5631           "enumerant" : "NonReadable",
   5632           "value" : 25
   5633         },
   5634         {
   5635           "enumerant" : "Uniform",
   5636           "value" : 26,
   5637           "capabilities" : [ "Shader" ]
   5638         },
   5639         {
   5640           "enumerant" : "SaturatedConversion",
   5641           "value" : 28,
   5642           "capabilities" : [ "Kernel" ]
   5643         },
   5644         {
   5645           "enumerant" : "Stream",
   5646           "value" : 29,
   5647           "capabilities" : [ "GeometryStreams" ],
   5648           "parameters" : [
   5649             { "kind" : "LiteralInteger", "name" : "'Stream Number'" }
   5650           ]
   5651         },
   5652         {
   5653           "enumerant" : "Location",
   5654           "value" : 30,
   5655           "capabilities" : [ "Shader" ],
   5656           "parameters" : [
   5657             { "kind" : "LiteralInteger", "name" : "'Location'" }
   5658           ]
   5659         },
   5660         {
   5661           "enumerant" : "Component",
   5662           "value" : 31,
   5663           "capabilities" : [ "Shader" ],
   5664           "parameters" : [
   5665             { "kind" : "LiteralInteger", "name" : "'Component'" }
   5666           ]
   5667         },
   5668         {
   5669           "enumerant" : "Index",
   5670           "value" : 32,
   5671           "capabilities" : [ "Shader" ],
   5672           "parameters" : [
   5673             { "kind" : "LiteralInteger", "name" : "'Index'" }
   5674           ]
   5675         },
   5676         {
   5677           "enumerant" : "Binding",
   5678           "value" : 33,
   5679           "capabilities" : [ "Shader" ],
   5680           "parameters" : [
   5681             { "kind" : "LiteralInteger", "name" : "'Binding Point'" }
   5682           ]
   5683         },
   5684         {
   5685           "enumerant" : "DescriptorSet",
   5686           "value" : 34,
   5687           "capabilities" : [ "Shader" ],
   5688           "parameters" : [
   5689             { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" }
   5690           ]
   5691         },
   5692         {
   5693           "enumerant" : "Offset",
   5694           "value" : 35,
   5695           "capabilities" : [ "Shader" ],
   5696           "parameters" : [
   5697             { "kind" : "LiteralInteger", "name" : "'Byte Offset'" }
   5698           ]
   5699         },
   5700         {
   5701           "enumerant" : "XfbBuffer",
   5702           "value" : 36,
   5703           "capabilities" : [ "TransformFeedback" ],
   5704           "parameters" : [
   5705             { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" }
   5706           ]
   5707         },
   5708         {
   5709           "enumerant" : "XfbStride",
   5710           "value" : 37,
   5711           "capabilities" : [ "TransformFeedback" ],
   5712           "parameters" : [
   5713             { "kind" : "LiteralInteger", "name" : "'XFB Stride'" }
   5714           ]
   5715         },
   5716         {
   5717           "enumerant" : "FuncParamAttr",
   5718           "value" : 38,
   5719           "capabilities" : [ "Kernel" ],
   5720           "parameters" : [
   5721             { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" }
   5722           ]
   5723         },
   5724         {
   5725           "enumerant" : "FPRoundingMode",
   5726           "value" : 39,
   5727           "parameters" : [
   5728             { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" }
   5729           ]
   5730         },
   5731         {
   5732           "enumerant" : "FPFastMathMode",
   5733           "value" : 40,
   5734           "capabilities" : [ "Kernel" ],
   5735           "parameters" : [
   5736             { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" }
   5737           ]
   5738         },
   5739         {
   5740           "enumerant" : "LinkageAttributes",
   5741           "value" : 41,
   5742           "capabilities" : [ "Linkage" ],
   5743           "parameters" : [
   5744             { "kind" : "LiteralString", "name" : "'Name'" },
   5745             { "kind" : "LinkageType",   "name" : "'Linkage Type'" }
   5746           ]
   5747         },
   5748         {
   5749           "enumerant" : "NoContraction",
   5750           "value" : 42,
   5751           "capabilities" : [ "Shader" ]
   5752         },
   5753         {
   5754           "enumerant" : "InputAttachmentIndex",
   5755           "value" : 43,
   5756           "capabilities" : [ "InputAttachment" ],
   5757           "parameters" : [
   5758             { "kind" : "LiteralInteger", "name" : "'Attachment Index'" }
   5759           ]
   5760         },
   5761         {
   5762           "enumerant" : "Alignment",
   5763           "value" : 44,
   5764           "capabilities" : [ "Kernel" ],
   5765           "parameters" : [
   5766             { "kind" : "LiteralInteger", "name" : "'Alignment'" }
   5767           ]
   5768         },
   5769         {
   5770           "enumerant" : "MaxByteOffset",
   5771           "value" : 45,
   5772           "capabilities" : [ "Addresses" ],
   5773           "parameters" : [
   5774             { "kind" : "LiteralInteger", "name" : "'Max Byte Offset'" }
   5775           ],
   5776           "version" : "1.1"
   5777         },
   5778         {
   5779           "enumerant" : "AlignmentId",
   5780           "value" : 46,
   5781           "capabilities" : [ "Kernel" ],
   5782           "parameters" : [
   5783             { "kind" : "IdRef", "name" : "'Alignment'" }
   5784           ],
   5785           "version" : "1.2"
   5786         },
   5787         {
   5788           "enumerant" : "MaxByteOffsetId",
   5789           "value" : 47,
   5790           "capabilities" : [ "Addresses" ],
   5791           "parameters" : [
   5792             { "kind" : "IdRef", "name" : "'Max Byte Offset'" }
   5793           ],
   5794           "version" : "1.2"
   5795         },
   5796         {
   5797           "enumerant" : "ExplicitInterpAMD",
   5798           "value" : 4999,
   5799           "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
   5800           "version" : "None"
   5801         },
   5802         {
   5803           "enumerant" : "OverrideCoverageNV",
   5804           "value" : 5248,
   5805           "capabilities" : [ "SampleMaskOverrideCoverageNV" ],
   5806           "extensions" : [ "SPV_NV_sample_mask_override_coverage" ],
   5807           "version" : "None"
   5808         },
   5809         {
   5810           "enumerant" : "PassthroughNV",
   5811           "value" : 5250,
   5812           "capabilities" : [ "GeometryShaderPassthroughNV" ],
   5813           "extensions" : [ "SPV_NV_geometry_shader_passthrough" ],
   5814           "version" : "None"
   5815         },
   5816         {
   5817           "enumerant" : "ViewportRelativeNV",
   5818           "value" : 5252,
   5819           "capabilities" : [ "ShaderViewportMaskNV" ],
   5820           "version" : "None"
   5821         },
   5822         {
   5823           "enumerant" : "SecondaryViewportRelativeNV",
   5824           "value" : 5256,
   5825           "capabilities" : [ "ShaderStereoViewNV" ],
   5826           "extensions" : [ "SPV_NV_stereo_view_rendering" ],
   5827           "version" : "None",
   5828           "parameters" : [
   5829             { "kind" : "LiteralInteger", "name" : "'Offset'" }
   5830           ]
   5831         },
   5832         {
   5833           "enumerant" : "PerPrimitiveNV",
   5834           "value" : 5271,
   5835           "capabilities" : [ "MeshShadingNV" ],
   5836           "extensions" : [ "SPV_NV_mesh_shader" ],
   5837           "version" : "None"
   5838         },
   5839         {
   5840           "enumerant" : "PerViewNV",
   5841           "value" : 5272,
   5842           "capabilities" : [ "MeshShadingNV" ],
   5843           "extensions" : [ "SPV_NV_mesh_shader" ],
   5844           "version" : "None"
   5845         },
   5846         {
   5847           "enumerant" : "PerTaskNV",
   5848           "value" : 5273,
   5849           "capabilities" : [ "MeshShadingNV" ],
   5850           "extensions" : [ "SPV_NV_mesh_shader" ],
   5851           "version" : "None"
   5852         },
   5853 		{
   5854           "enumerant" : "PerVertexNV",
   5855           "value" : 5285,
   5856           "capabilities" : [ "FragmentBarycentricNV" ],
   5857           "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
   5858           "version" : "None"
   5859         },
   5860         {
   5861           "enumerant" : "NonUniformEXT",
   5862           "value" : 5300,
   5863           "capabilities" : [ "ShaderNonUniformEXT" ]
   5864         },
   5865         {
   5866           "enumerant" : "HlslCounterBufferGOOGLE",
   5867           "value" : 5634,
   5868           "parameters" : [
   5869             { "kind" : "IdRef", "name" : "'Counter Buffer'" }
   5870           ],
   5871           "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
   5872           "version" : "None"
   5873         },
   5874         {
   5875           "enumerant" : "HlslSemanticGOOGLE",
   5876           "value" : 5635,
   5877           "parameters" : [
   5878             { "kind" : "LiteralString", "name" : "'Semantic'" }
   5879           ],
   5880           "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
   5881           "version" : "None"
   5882         }
   5883       ]
   5884     },
   5885     {
   5886       "category" : "ValueEnum",
   5887       "kind" : "BuiltIn",
   5888       "enumerants" : [
   5889         {
   5890           "enumerant" : "Position",
   5891           "value" : 0,
   5892           "capabilities" : [ "Shader" ]
   5893         },
   5894         {
   5895           "enumerant" : "PointSize",
   5896           "value" : 1,
   5897           "capabilities" : [ "Shader" ]
   5898         },
   5899         {
   5900           "enumerant" : "ClipDistance",
   5901           "value" : 3,
   5902           "capabilities" : [ "ClipDistance" ]
   5903         },
   5904         {
   5905           "enumerant" : "CullDistance",
   5906           "value" : 4,
   5907           "capabilities" : [ "CullDistance" ]
   5908         },
   5909         {
   5910           "enumerant" : "VertexId",
   5911           "value" : 5,
   5912           "capabilities" : [ "Shader" ]
   5913         },
   5914         {
   5915           "enumerant" : "InstanceId",
   5916           "value" : 6,
   5917           "capabilities" : [ "Shader" ]
   5918         },
   5919         {
   5920           "enumerant" : "PrimitiveId",
   5921           "value" : 7,
   5922           "capabilities" : [ "Geometry", "Tessellation", "RaytracingNVX" ]
   5923         },
   5924         {
   5925           "enumerant" : "InvocationId",
   5926           "value" : 8,
   5927           "capabilities" : [ "Geometry", "Tessellation" ]
   5928         },
   5929         {
   5930           "enumerant" : "Layer",
   5931           "value" : 9,
   5932           "capabilities" : [ "Geometry" ]
   5933         },
   5934         {
   5935           "enumerant" : "ViewportIndex",
   5936           "value" : 10,
   5937           "capabilities" : [ "MultiViewport" ]
   5938         },
   5939         {
   5940           "enumerant" : "TessLevelOuter",
   5941           "value" : 11,
   5942           "capabilities" : [ "Tessellation" ]
   5943         },
   5944         {
   5945           "enumerant" : "TessLevelInner",
   5946           "value" : 12,
   5947           "capabilities" : [ "Tessellation" ]
   5948         },
   5949         {
   5950           "enumerant" : "TessCoord",
   5951           "value" : 13,
   5952           "capabilities" : [ "Tessellation" ]
   5953         },
   5954         {
   5955           "enumerant" : "PatchVertices",
   5956           "value" : 14,
   5957           "capabilities" : [ "Tessellation" ]
   5958         },
   5959         {
   5960           "enumerant" : "FragCoord",
   5961           "value" : 15,
   5962           "capabilities" : [ "Shader" ]
   5963         },
   5964         {
   5965           "enumerant" : "PointCoord",
   5966           "value" : 16,
   5967           "capabilities" : [ "Shader" ]
   5968         },
   5969         {
   5970           "enumerant" : "FrontFacing",
   5971           "value" : 17,
   5972           "capabilities" : [ "Shader" ]
   5973         },
   5974         {
   5975           "enumerant" : "SampleId",
   5976           "value" : 18,
   5977           "capabilities" : [ "SampleRateShading" ]
   5978         },
   5979         {
   5980           "enumerant" : "SamplePosition",
   5981           "value" : 19,
   5982           "capabilities" : [ "SampleRateShading" ]
   5983         },
   5984         {
   5985           "enumerant" : "SampleMask",
   5986           "value" : 20,
   5987           "capabilities" : [ "Shader" ]
   5988         },
   5989         {
   5990           "enumerant" : "FragDepth",
   5991           "value" : 22,
   5992           "capabilities" : [ "Shader" ]
   5993         },
   5994         {
   5995           "enumerant" : "HelperInvocation",
   5996           "value" : 23,
   5997           "capabilities" : [ "Shader" ]
   5998         },
   5999         {
   6000           "enumerant" : "NumWorkgroups",
   6001           "value" : 24
   6002         },
   6003         {
   6004           "enumerant" : "WorkgroupSize",
   6005           "value" : 25
   6006         },
   6007         {
   6008           "enumerant" : "WorkgroupId",
   6009           "value" : 26
   6010         },
   6011         {
   6012           "enumerant" : "LocalInvocationId",
   6013           "value" : 27
   6014         },
   6015         {
   6016           "enumerant" : "GlobalInvocationId",
   6017           "value" : 28
   6018         },
   6019         {
   6020           "enumerant" : "LocalInvocationIndex",
   6021           "value" : 29
   6022         },
   6023         {
   6024           "enumerant" : "WorkDim",
   6025           "value" : 30,
   6026           "capabilities" : [ "Kernel" ]
   6027         },
   6028         {
   6029           "enumerant" : "GlobalSize",
   6030           "value" : 31,
   6031           "capabilities" : [ "Kernel" ]
   6032         },
   6033         {
   6034           "enumerant" : "EnqueuedWorkgroupSize",
   6035           "value" : 32,
   6036           "capabilities" : [ "Kernel" ]
   6037         },
   6038         {
   6039           "enumerant" : "GlobalOffset",
   6040           "value" : 33,
   6041           "capabilities" : [ "Kernel" ]
   6042         },
   6043         {
   6044           "enumerant" : "GlobalLinearId",
   6045           "value" : 34,
   6046           "capabilities" : [ "Kernel" ]
   6047         },
   6048         {
   6049           "enumerant" : "SubgroupSize",
   6050           "value" : 36,
   6051           "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ]
   6052         },
   6053         {
   6054           "enumerant" : "SubgroupMaxSize",
   6055           "value" : 37,
   6056           "capabilities" : [ "Kernel" ]
   6057         },
   6058         {
   6059           "enumerant" : "NumSubgroups",
   6060           "value" : 38,
   6061           "capabilities" : [ "Kernel", "GroupNonUniform" ]
   6062         },
   6063         {
   6064           "enumerant" : "NumEnqueuedSubgroups",
   6065           "value" : 39,
   6066           "capabilities" : [ "Kernel" ]
   6067         },
   6068         {
   6069           "enumerant" : "SubgroupId",
   6070           "value" : 40,
   6071           "capabilities" : [ "Kernel", "GroupNonUniform" ]
   6072         },
   6073         {
   6074           "enumerant" : "SubgroupLocalInvocationId",
   6075           "value" : 41,
   6076           "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ]
   6077         },
   6078         {
   6079           "enumerant" : "VertexIndex",
   6080           "value" : 42,
   6081           "capabilities" : [ "Shader" ]
   6082         },
   6083         {
   6084           "enumerant" : "InstanceIndex",
   6085           "value" : 43,
   6086           "capabilities" : [ "Shader" ]
   6087         },
   6088         {
   6089           "enumerant" : "SubgroupEqMask",
   6090           "value" : 4416,
   6091           "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
   6092           "version" : "1.3"
   6093         },
   6094         {
   6095           "enumerant" : "SubgroupGeMask",
   6096           "value" : 4417,
   6097           "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
   6098           "version" : "1.3"
   6099         },
   6100         {
   6101           "enumerant" : "SubgroupGtMask",
   6102           "value" : 4418,
   6103           "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
   6104           "version" : "1.3"
   6105         },
   6106         {
   6107           "enumerant" : "SubgroupLeMask",
   6108           "value" : 4419,
   6109           "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
   6110           "version" : "1.3"
   6111         },
   6112         {
   6113           "enumerant" : "SubgroupLtMask",
   6114           "value" : 4420,
   6115           "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
   6116           "version" : "1.3"
   6117         },
   6118         {
   6119           "enumerant" : "SubgroupEqMaskKHR",
   6120           "value" : 4416,
   6121           "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
   6122           "extensions" : [ "SPV_KHR_shader_ballot" ],
   6123           "version" : "1.3"
   6124         },
   6125         {
   6126           "enumerant" : "SubgroupGeMaskKHR",
   6127           "value" : 4417,
   6128           "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
   6129           "extensions" : [ "SPV_KHR_shader_ballot" ],
   6130           "version" : "1.3"
   6131         },
   6132         {
   6133           "enumerant" : "SubgroupGtMaskKHR",
   6134           "value" : 4418,
   6135           "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
   6136           "extensions" : [ "SPV_KHR_shader_ballot" ],
   6137           "version" : "1.3"
   6138         },
   6139         {
   6140           "enumerant" : "SubgroupLeMaskKHR",
   6141           "value" : 4419,
   6142           "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
   6143           "extensions" : [ "SPV_KHR_shader_ballot" ],
   6144           "version" : "1.3"
   6145         },
   6146         {
   6147           "enumerant" : "SubgroupLtMaskKHR",
   6148           "value" : 4420,
   6149           "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
   6150           "extensions" : [ "SPV_KHR_shader_ballot" ],
   6151           "version" : "1.3"
   6152         },
   6153         {
   6154           "enumerant" : "BaseVertex",
   6155           "value" : 4424,
   6156           "capabilities" : [ "DrawParameters" ],
   6157           "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
   6158           "version" : "1.3"
   6159         },
   6160         {
   6161           "enumerant" : "BaseInstance",
   6162           "value" : 4425,
   6163           "capabilities" : [ "DrawParameters" ],
   6164           "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
   6165           "version" : "1.3"
   6166         },
   6167         {
   6168           "enumerant" : "DrawIndex",
   6169           "value" : 4426,
   6170           "capabilities" : [ "DrawParameters", "MeshShadingNV" ],
   6171           "extensions" : [ "SPV_KHR_shader_draw_parameters", "SPV_NV_mesh_shader" ],
   6172           "version" : "1.3"
   6173         },
   6174         {
   6175           "enumerant" : "DeviceIndex",
   6176           "value" : 4438,
   6177           "capabilities" : [ "DeviceGroup" ],
   6178           "extensions" : [ "SPV_KHR_device_group" ],
   6179           "version" : "1.3"
   6180         },
   6181         {
   6182           "enumerant" : "ViewIndex",
   6183           "value" : 4440,
   6184           "capabilities" : [ "MultiView" ],
   6185           "extensions" : [ "SPV_KHR_multiview" ],
   6186           "version" : "1.3"
   6187         },
   6188         {
   6189           "enumerant" : "BaryCoordNoPerspAMD",
   6190           "value" : 4992,
   6191           "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
   6192           "version" : "None"
   6193         },
   6194         {
   6195           "enumerant" : "BaryCoordNoPerspCentroidAMD",
   6196           "value" : 4993,
   6197           "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
   6198           "version" : "None"
   6199         },
   6200         {
   6201           "enumerant" : "BaryCoordNoPerspSampleAMD",
   6202           "value" : 4994,
   6203           "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
   6204           "version" : "None"
   6205         },
   6206         {
   6207           "enumerant" : "BaryCoordSmoothAMD",
   6208           "value" : 4995,
   6209           "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
   6210           "version" : "None"
   6211         },
   6212         {
   6213           "enumerant" : "BaryCoordSmoothCentroidAMD",
   6214           "value" : 4996,
   6215           "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
   6216           "version" : "None"
   6217         },
   6218         {
   6219           "enumerant" : "BaryCoordSmoothSampleAMD",
   6220           "value" : 4997,
   6221           "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
   6222           "version" : "None"
   6223         },
   6224         {
   6225           "enumerant" : "BaryCoordPullModelAMD",
   6226           "value" : 4998,
   6227           "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
   6228           "version" : "None"
   6229         },
   6230         {
   6231           "enumerant" : "FragStencilRefEXT",
   6232           "value" : 5014,
   6233           "capabilities" : [ "StencilExportEXT" ],
   6234           "extensions" : [ "SPV_EXT_shader_stencil_export" ],
   6235           "version" : "None"
   6236         },
   6237         {
   6238           "enumerant" : "ViewportMaskNV",
   6239           "value" : 5253,
   6240           "capabilities" : [ "ShaderViewportMaskNV", "MeshShadingNV" ],
   6241           "extensions" : [ "SPV_NV_viewport_array2", "SPV_NV_mesh_shader" ],
   6242           "version" : "None"
   6243         },
   6244         {
   6245           "enumerant" : "SecondaryPositionNV",
   6246           "value" : 5257,
   6247           "capabilities" : [ "ShaderStereoViewNV" ],
   6248           "extensions" : [ "SPV_NV_stereo_view_rendering" ],
   6249           "version" : "None"
   6250         },
   6251         {
   6252           "enumerant" : "SecondaryViewportMaskNV",
   6253           "value" : 5258,
   6254           "capabilities" : [ "ShaderStereoViewNV" ],
   6255           "extensions" : [ "SPV_NV_stereo_view_rendering" ],
   6256           "version" : "None"
   6257         },
   6258         {
   6259           "enumerant" : "PositionPerViewNV",
   6260           "value" : 5261,
   6261           "capabilities" : [ "PerViewAttributesNV", "MeshShadingNV" ],
   6262           "extensions" : [ "SPV_NVX_multiview_per_view_attributes", "SPV_NV_mesh_shader" ],
   6263           "version" : "None"
   6264         },
   6265         {
   6266           "enumerant" : "ViewportMaskPerViewNV",
   6267           "value" : 5262,
   6268           "capabilities" : [ "PerViewAttributesNV", "MeshShadingNV" ],
   6269           "extensions" : [ "SPV_NVX_multiview_per_view_attributes", "SPV_NV_mesh_shader" ],
   6270           "version" : "None"
   6271         },
   6272         {
   6273           "enumerant" : "FullyCoveredEXT",
   6274           "value" : 5264,
   6275           "capabilities" : [ "FragmentFullyCoveredEXT" ],
   6276           "extensions" : [ "SPV_EXT_fragment_fully_covered" ],
   6277           "version" : "None"
   6278         },
   6279         {
   6280           "enumerant" : "TaskCountNV",
   6281           "value" : 5274,
   6282           "capabilities" : [ "MeshShadingNV" ],
   6283           "extensions" : [ "SPV_NV_mesh_shader" ],
   6284           "version" : "None"
   6285         },
   6286         {
   6287           "enumerant" : "PrimitiveCountNV",
   6288           "value" : 5275,
   6289           "capabilities" : [ "MeshShadingNV" ],
   6290           "extensions" : [ "SPV_NV_mesh_shader" ],
   6291           "version" : "None"
   6292         },
   6293         {
   6294           "enumerant" : "PrimitiveIndicesNV",
   6295           "value" : 5276,
   6296           "capabilities" : [ "MeshShadingNV" ],
   6297           "extensions" : [ "SPV_NV_mesh_shader" ],
   6298           "version" : "None"
   6299         },
   6300         {
   6301           "enumerant" : "ClipDistancePerViewNV",
   6302           "value" : 5277,
   6303           "capabilities" : [ "MeshShadingNV" ],
   6304           "extensions" : [ "SPV_NV_mesh_shader" ],
   6305           "version" : "None"
   6306         },
   6307         {
   6308           "enumerant" : "CullDistancePerViewNV",
   6309           "value" : 5278,
   6310           "capabilities" : [ "MeshShadingNV" ],
   6311           "extensions" : [ "SPV_NV_mesh_shader" ],
   6312           "version" : "None"
   6313         },
   6314         {
   6315           "enumerant" : "LayerPerViewNV",
   6316           "value" : 5279,
   6317           "capabilities" : [ "MeshShadingNV" ],
   6318           "extensions" : [ "SPV_NV_mesh_shader" ],
   6319           "version" : "None"
   6320         },
   6321         {
   6322           "enumerant" : "MeshViewCountNV",
   6323           "value" : 5280,
   6324           "capabilities" : [ "MeshShadingNV" ],
   6325           "extensions" : [ "SPV_NV_mesh_shader" ],
   6326           "version" : "None"
   6327         },
   6328         {
   6329           "enumerant" : "MeshViewIndicesNV",
   6330           "value" : 5281,
   6331           "capabilities" : [ "MeshShadingNV" ],
   6332           "extensions" : [ "SPV_NV_mesh_shader" ],
   6333           "version" : "None"
   6334         },
   6335         {
   6336           "enumerant" : "BaryCoordNV",
   6337           "value" : 5286,
   6338           "capabilities" : [ "FragmentBarycentricNV" ],
   6339           "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
   6340           "version" : "None"
   6341         },
   6342         {
   6343           "enumerant" : "BaryCoordNoPerspNV",
   6344           "value" : 5287,
   6345           "capabilities" : [ "FragmentBarycentricNV" ],
   6346           "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
   6347           "version" : "None"
   6348         },
   6349         {
   6350           "enumerant" : "FragmentSizeNV",
   6351           "value" : 5292 ,
   6352           "capabilities" : [ "ShadingRateNV" ],
   6353           "extensions" : [ "SPV_NV_shading_rate" ],
   6354           "version" : "None"
   6355         },
   6356         {
   6357           "enumerant" : "InvocationsPerPixelNV",
   6358           "value" : 5293,
   6359           "capabilities" : [ "ShadingRateNV" ],
   6360           "extensions" : [ "SPV_NV_shading_rate" ],
   6361           "version" : "None"
   6362         },
   6363         {
   6364           "enumerant" : "LaunchIdNVX",
   6365           "value" : 5319,
   6366           "capabilities" : [ "RaytracingNVX" ],
   6367           "extensions" : [ "SPV_NVX_raytracing" ]
   6368         },
   6369         {
   6370           "enumerant" : "LaunchSizeNVX",
   6371           "value" : 5320,
   6372           "capabilities" : [ "RaytracingNVX" ],
   6373           "extensions" : [ "SPV_NVX_raytracing" ]
   6374         },
   6375         {
   6376           "enumerant" : "WorldRayOriginNVX",
   6377           "value" : 5321,
   6378           "capabilities" : [ "RaytracingNVX" ],
   6379           "extensions" : [ "SPV_NVX_raytracing" ]
   6380         },
   6381         {
   6382           "enumerant" : "WorldRayDirectionNVX",
   6383           "value" : 5322,
   6384           "capabilities" : [ "RaytracingNVX" ],
   6385           "extensions" : [ "SPV_NVX_raytracing" ]
   6386         },
   6387         {
   6388           "enumerant" : "ObjectRayOriginNVX",
   6389           "value" : 5323,
   6390           "capabilities" : [ "RaytracingNVX" ],
   6391           "extensions" : [ "SPV_NVX_raytracing" ]
   6392         },
   6393         {
   6394           "enumerant" : "ObjectRayDirectionNVX",
   6395           "value" : 5324,
   6396           "capabilities" : [ "RaytracingNVX" ],
   6397           "extensions" : [ "SPV_NVX_raytracing" ]
   6398         },
   6399         {
   6400           "enumerant" : "RayTminNVX",
   6401           "value" : 5325,
   6402           "capabilities" : [ "RaytracingNVX" ],
   6403           "extensions" : [ "SPV_NVX_raytracing" ]
   6404         },
   6405         {
   6406           "enumerant" : "RayTmaxNVX",
   6407           "value" : 5326,
   6408           "capabilities" : [ "RaytracingNVX" ],
   6409           "extensions" : [ "SPV_NVX_raytracing" ]
   6410         },
   6411         {
   6412           "enumerant" : "InstanceCustomIndexNVX",
   6413           "value" : 5327,
   6414           "capabilities" : [ "RaytracingNVX" ],
   6415           "extensions" : [ "SPV_NVX_raytracing" ]
   6416         },
   6417         {
   6418           "enumerant" : "ObjectToWorldNVX",
   6419           "value" : 5330,
   6420           "capabilities" : [ "RaytracingNVX" ],
   6421           "extensions" : [ "SPV_NVX_raytracing" ]
   6422         },
   6423         {
   6424           "enumerant" : "WorldToObjectNVX",
   6425           "value" : 5331,
   6426           "capabilities" : [ "RaytracingNVX" ],
   6427           "extensions" : [ "SPV_NVX_raytracing" ]
   6428         },
   6429         {
   6430           "enumerant" : "HitTNVX",
   6431           "value" : 5332,
   6432           "capabilities" : [ "RaytracingNVX" ],
   6433           "extensions" : [ "SPV_NVX_raytracing" ]
   6434         },
   6435         {
   6436           "enumerant" : "HitKindNVX",
   6437           "value" : 5333,
   6438           "capabilities" : [ "RaytracingNVX" ],
   6439           "extensions" : [ "SPV_NVX_raytracing" ]
   6440         }
   6441       ]
   6442     },
   6443     {
   6444       "category" : "ValueEnum",
   6445       "kind" : "Scope",
   6446       "enumerants" : [
   6447         {
   6448           "enumerant" : "CrossDevice",
   6449           "value" : 0
   6450         },
   6451         {
   6452           "enumerant" : "Device",
   6453           "value" : 1
   6454         },
   6455         {
   6456           "enumerant" : "Workgroup",
   6457           "value" : 2
   6458         },
   6459         {
   6460           "enumerant" : "Subgroup",
   6461           "value" : 3
   6462         },
   6463         {
   6464           "enumerant" : "Invocation",
   6465           "value" : 4
   6466         },
   6467         {
   6468           "enumerant" : "QueueFamilyKHR",
   6469           "value" : 5,
   6470           "capabilities" : [ "VulkanMemoryModelKHR" ]
   6471         }
   6472       ]
   6473     },
   6474     {
   6475       "category" : "ValueEnum",
   6476       "kind" : "GroupOperation",
   6477       "enumerants" : [
   6478         {
   6479           "enumerant" : "Reduce",
   6480           "value" : 0,
   6481           "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
   6482         },
   6483         {
   6484           "enumerant" : "InclusiveScan",
   6485           "value" : 1,
   6486           "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
   6487         },
   6488         {
   6489           "enumerant" : "ExclusiveScan",
   6490           "value" : 2,
   6491           "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
   6492         },
   6493         {
   6494           "enumerant" : "ClusteredReduce",
   6495           "value" : 3,
   6496           "capabilities" : [ "GroupNonUniformClustered" ],
   6497           "version" : "1.3"
   6498         },
   6499         {
   6500           "enumerant" : "PartitionedReduceNV",
   6501           "value" : 6,
   6502           "capabilities" : [ "GroupNonUniformPartitionedNV" ],
   6503           "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
   6504           "version" : "None"
   6505         },
   6506         {
   6507           "enumerant" : "PartitionedInclusiveScanNV",
   6508           "value" : 7,
   6509           "capabilities" : [ "GroupNonUniformPartitionedNV" ],
   6510           "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
   6511           "version" : "None"
   6512         },
   6513         {
   6514           "enumerant" : "PartitionedExclusiveScanNV",
   6515           "value" : 8,
   6516           "capabilities" : [ "GroupNonUniformPartitionedNV" ],
   6517           "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
   6518           "version" : "None"
   6519         }
   6520       ]
   6521     },
   6522     {
   6523       "category" : "ValueEnum",
   6524       "kind" : "KernelEnqueueFlags",
   6525       "enumerants" : [
   6526         {
   6527           "enumerant" : "NoWait",
   6528           "value" : 0,
   6529           "capabilities" : [ "Kernel" ]
   6530         },
   6531         {
   6532           "enumerant" : "WaitKernel",
   6533           "value" : 1,
   6534           "capabilities" : [ "Kernel" ]
   6535         },
   6536         {
   6537           "enumerant" : "WaitWorkGroup",
   6538           "value" : 2,
   6539           "capabilities" : [ "Kernel" ]
   6540         }
   6541       ]
   6542     },
   6543     {
   6544       "category" : "ValueEnum",
   6545       "kind" : "Capability",
   6546       "enumerants" : [
   6547         {
   6548           "enumerant" : "Matrix",
   6549           "value" : 0
   6550         },
   6551         {
   6552           "enumerant" : "Shader",
   6553           "value" : 1,
   6554           "capabilities" : [ "Matrix" ]
   6555         },
   6556         {
   6557           "enumerant" : "Geometry",
   6558           "value" : 2,
   6559           "capabilities" : [ "Shader" ]
   6560         },
   6561         {
   6562           "enumerant" : "Tessellation",
   6563           "value" : 3,
   6564           "capabilities" : [ "Shader" ]
   6565         },
   6566         {
   6567           "enumerant" : "Addresses",
   6568           "value" : 4
   6569         },
   6570         {
   6571           "enumerant" : "Linkage",
   6572           "value" : 5
   6573         },
   6574         {
   6575           "enumerant" : "Kernel",
   6576           "value" : 6
   6577         },
   6578         {
   6579           "enumerant" : "Vector16",
   6580           "value" : 7,
   6581           "capabilities" : [ "Kernel" ]
   6582         },
   6583         {
   6584           "enumerant" : "Float16Buffer",
   6585           "value" : 8,
   6586           "capabilities" : [ "Kernel" ]
   6587         },
   6588         {
   6589           "enumerant" : "Float16",
   6590           "value" : 9
   6591         },
   6592         {
   6593           "enumerant" : "Float64",
   6594           "value" : 10
   6595         },
   6596         {
   6597           "enumerant" : "Int64",
   6598           "value" : 11
   6599         },
   6600         {
   6601           "enumerant" : "Int64Atomics",
   6602           "value" : 12,
   6603           "capabilities" : [ "Int64" ]
   6604         },
   6605         {
   6606           "enumerant" : "ImageBasic",
   6607           "value" : 13,
   6608           "capabilities" : [ "Kernel" ]
   6609         },
   6610         {
   6611           "enumerant" : "ImageReadWrite",
   6612           "value" : 14,
   6613           "capabilities" : [ "ImageBasic" ]
   6614         },
   6615         {
   6616           "enumerant" : "ImageMipmap",
   6617           "value" : 15,
   6618           "capabilities" : [ "ImageBasic" ]
   6619         },
   6620         {
   6621           "enumerant" : "Pipes",
   6622           "value" : 17,
   6623           "capabilities" : [ "Kernel" ]
   6624         },
   6625         {
   6626           "enumerant" : "Groups",
   6627           "value" : 18
   6628         },
   6629         {
   6630           "enumerant" : "DeviceEnqueue",
   6631           "value" : 19,
   6632           "capabilities" : [ "Kernel" ]
   6633         },
   6634         {
   6635           "enumerant" : "LiteralSampler",
   6636           "value" : 20,
   6637           "capabilities" : [ "Kernel" ]
   6638         },
   6639         {
   6640           "enumerant" : "AtomicStorage",
   6641           "value" : 21,
   6642           "capabilities" : [ "Shader" ]
   6643         },
   6644         {
   6645           "enumerant" : "Int16",
   6646           "value" : 22
   6647         },
   6648         {
   6649           "enumerant" : "TessellationPointSize",
   6650           "value" : 23,
   6651           "capabilities" : [ "Tessellation" ]
   6652         },
   6653         {
   6654           "enumerant" : "GeometryPointSize",
   6655           "value" : 24,
   6656           "capabilities" : [ "Geometry" ]
   6657         },
   6658         {
   6659           "enumerant" : "ImageGatherExtended",
   6660           "value" : 25,
   6661           "capabilities" : [ "Shader" ]
   6662         },
   6663         {
   6664           "enumerant" : "StorageImageMultisample",
   6665           "value" : 27,
   6666           "capabilities" : [ "Shader" ]
   6667         },
   6668         {
   6669           "enumerant" : "UniformBufferArrayDynamicIndexing",
   6670           "value" : 28,
   6671           "capabilities" : [ "Shader" ]
   6672         },
   6673         {
   6674           "enumerant" : "SampledImageArrayDynamicIndexing",
   6675           "value" : 29,
   6676           "capabilities" : [ "Shader" ]
   6677         },
   6678         {
   6679           "enumerant" : "StorageBufferArrayDynamicIndexing",
   6680           "value" : 30,
   6681           "capabilities" : [ "Shader" ]
   6682         },
   6683         {
   6684           "enumerant" : "StorageImageArrayDynamicIndexing",
   6685           "value" : 31,
   6686           "capabilities" : [ "Shader" ]
   6687         },
   6688         {
   6689           "enumerant" : "ClipDistance",
   6690           "value" : 32,
   6691           "capabilities" : [ "Shader" ]
   6692         },
   6693         {
   6694           "enumerant" : "CullDistance",
   6695           "value" : 33,
   6696           "capabilities" : [ "Shader" ]
   6697         },
   6698         {
   6699           "enumerant" : "ImageCubeArray",
   6700           "value" : 34,
   6701           "capabilities" : [ "SampledCubeArray" ]
   6702         },
   6703         {
   6704           "enumerant" : "SampleRateShading",
   6705           "value" : 35,
   6706           "capabilities" : [ "Shader" ]
   6707         },
   6708         {
   6709           "enumerant" : "ImageRect",
   6710           "value" : 36,
   6711           "capabilities" : [ "SampledRect" ]
   6712         },
   6713         {
   6714           "enumerant" : "SampledRect",
   6715           "value" : 37,
   6716           "capabilities" : [ "Shader" ]
   6717         },
   6718         {
   6719           "enumerant" : "GenericPointer",
   6720           "value" : 38,
   6721           "capabilities" : [ "Addresses" ]
   6722         },
   6723         {
   6724           "enumerant" : "Int8",
   6725           "value" : 39
   6726         },
   6727         {
   6728           "enumerant" : "InputAttachment",
   6729           "value" : 40,
   6730           "capabilities" : [ "Shader" ]
   6731         },
   6732         {
   6733           "enumerant" : "SparseResidency",
   6734           "value" : 41,
   6735           "capabilities" : [ "Shader" ]
   6736         },
   6737         {
   6738           "enumerant" : "MinLod",
   6739           "value" : 42,
   6740           "capabilities" : [ "Shader" ]
   6741         },
   6742         {
   6743           "enumerant" : "Sampled1D",
   6744           "value" : 43
   6745         },
   6746         {
   6747           "enumerant" : "Image1D",
   6748           "value" : 44,
   6749           "capabilities" : [ "Sampled1D" ]
   6750         },
   6751         {
   6752           "enumerant" : "SampledCubeArray",
   6753           "value" : 45,
   6754           "capabilities" : [ "Shader" ]
   6755         },
   6756         {
   6757           "enumerant" : "SampledBuffer",
   6758           "value" : 46
   6759         },
   6760         {
   6761           "enumerant" : "ImageBuffer",
   6762           "value" : 47,
   6763           "capabilities" : [ "SampledBuffer" ]
   6764         },
   6765         {
   6766           "enumerant" : "ImageMSArray",
   6767           "value" : 48,
   6768           "capabilities" : [ "Shader" ]
   6769         },
   6770         {
   6771           "enumerant" : "StorageImageExtendedFormats",
   6772           "value" : 49,
   6773           "capabilities" : [ "Shader" ]
   6774         },
   6775         {
   6776           "enumerant" : "ImageQuery",
   6777           "value" : 50,
   6778           "capabilities" : [ "Shader" ]
   6779         },
   6780         {
   6781           "enumerant" : "DerivativeControl",
   6782           "value" : 51,
   6783           "capabilities" : [ "Shader" ]
   6784         },
   6785         {
   6786           "enumerant" : "InterpolationFunction",
   6787           "value" : 52,
   6788           "capabilities" : [ "Shader" ]
   6789         },
   6790         {
   6791           "enumerant" : "TransformFeedback",
   6792           "value" : 53,
   6793           "capabilities" : [ "Shader" ]
   6794         },
   6795         {
   6796           "enumerant" : "GeometryStreams",
   6797           "value" : 54,
   6798           "capabilities" : [ "Geometry" ]
   6799         },
   6800         {
   6801           "enumerant" : "StorageImageReadWithoutFormat",
   6802           "value" : 55,
   6803           "capabilities" : [ "Shader" ]
   6804         },
   6805         {
   6806           "enumerant" : "StorageImageWriteWithoutFormat",
   6807           "value" : 56,
   6808           "capabilities" : [ "Shader" ]
   6809         },
   6810         {
   6811           "enumerant" : "MultiViewport",
   6812           "value" : 57,
   6813           "capabilities" : [ "Geometry" ]
   6814         },
   6815         {
   6816           "enumerant" : "SubgroupDispatch",
   6817           "value" : 58,
   6818           "capabilities" : [ "DeviceEnqueue" ],
   6819           "version" : "1.1"
   6820         },
   6821         {
   6822           "enumerant" : "NamedBarrier",
   6823           "value" : 59,
   6824           "capabilities" : [ "Kernel" ],
   6825           "version" : "1.1"
   6826         },
   6827         {
   6828           "enumerant" : "PipeStorage",
   6829           "value" : 60,
   6830           "capabilities" : [ "Pipes" ],
   6831           "version" : "1.1"
   6832         },
   6833         {
   6834           "enumerant" : "GroupNonUniform",
   6835           "value" : 61,
   6836           "version" : "1.3"
   6837         },
   6838         {
   6839           "enumerant" : "GroupNonUniformVote",
   6840           "value" : 62,
   6841           "capabilities" : [ "GroupNonUniform" ],
   6842           "version" : "1.3"
   6843         },
   6844         {
   6845           "enumerant" : "GroupNonUniformArithmetic",
   6846           "value" : 63,
   6847           "capabilities" : [ "GroupNonUniform" ],
   6848           "version" : "1.3"
   6849         },
   6850         {
   6851           "enumerant" : "GroupNonUniformBallot",
   6852           "value" : 64,
   6853           "capabilities" : [ "GroupNonUniform" ],
   6854           "version" : "1.3"
   6855         },
   6856         {
   6857           "enumerant" : "GroupNonUniformShuffle",
   6858           "value" : 65,
   6859           "capabilities" : [ "GroupNonUniform" ],
   6860           "version" : "1.3"
   6861         },
   6862         {
   6863           "enumerant" : "GroupNonUniformShuffleRelative",
   6864           "value" : 66,
   6865           "capabilities" : [ "GroupNonUniform" ],
   6866           "version" : "1.3"
   6867         },
   6868         {
   6869           "enumerant" : "GroupNonUniformClustered",
   6870           "value" : 67,
   6871           "capabilities" : [ "GroupNonUniform" ],
   6872           "version" : "1.3"
   6873         },
   6874         {
   6875           "enumerant" : "GroupNonUniformQuad",
   6876           "value" : 68,
   6877           "capabilities" : [ "GroupNonUniform" ],
   6878           "version" : "1.3"
   6879         },
   6880         {
   6881           "enumerant" : "SubgroupBallotKHR",
   6882           "value" : 4423,
   6883           "extensions" : [ "SPV_KHR_shader_ballot" ],
   6884           "version" : "None"
   6885         },
   6886         {
   6887           "enumerant" : "DrawParameters",
   6888           "value" : 4427,
   6889           "capabilities" : [ "Shader" ],
   6890           "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
   6891           "version" : "1.3"
   6892         },
   6893         {
   6894           "enumerant" : "SubgroupVoteKHR",
   6895           "value" : 4431,
   6896           "extensions" : [ "SPV_KHR_subgroup_vote" ],
   6897           "version" : "None"
   6898         },
   6899         {
   6900           "enumerant" : "StorageBuffer16BitAccess",
   6901           "value" : 4433,
   6902           "extensions" : [ "SPV_KHR_16bit_storage" ],
   6903           "version" : "1.3"
   6904         },
   6905         {
   6906           "enumerant" : "StorageUniformBufferBlock16",
   6907           "value" : 4433,
   6908           "extensions" : [ "SPV_KHR_16bit_storage" ],
   6909           "version" : "1.3"
   6910         },
   6911         {
   6912           "enumerant" : "UniformAndStorageBuffer16BitAccess",
   6913           "value" : 4434,
   6914           "capabilities" : [
   6915             "StorageBuffer16BitAccess",
   6916             "StorageUniformBufferBlock16"
   6917           ],
   6918           "extensions" : [ "SPV_KHR_16bit_storage" ],
   6919           "version" : "1.3"
   6920         },
   6921         {
   6922           "enumerant" : "StorageUniform16",
   6923           "value" : 4434,
   6924           "capabilities" : [
   6925             "StorageBuffer16BitAccess",
   6926             "StorageUniformBufferBlock16"
   6927           ],
   6928           "extensions" : [ "SPV_KHR_16bit_storage" ],
   6929           "version" : "1.3"
   6930         },
   6931         {
   6932           "enumerant" : "StoragePushConstant16",
   6933           "value" : 4435,
   6934           "extensions" : [ "SPV_KHR_16bit_storage" ],
   6935           "version" : "1.3"
   6936         },
   6937         {
   6938           "enumerant" : "StorageInputOutput16",
   6939           "value" : 4436,
   6940           "extensions" : [ "SPV_KHR_16bit_storage" ],
   6941           "version" : "1.3"
   6942         },
   6943         {
   6944           "enumerant" : "DeviceGroup",
   6945           "value" : 4437,
   6946           "extensions" : [ "SPV_KHR_device_group" ],
   6947           "version" : "1.3"
   6948         },
   6949         {
   6950           "enumerant" : "MultiView",
   6951           "value" : 4439,
   6952           "capabilities" : [ "Shader" ],
   6953           "extensions" : [ "SPV_KHR_multiview" ],
   6954           "version" : "1.3"
   6955         },
   6956         {
   6957           "enumerant" : "VariablePointersStorageBuffer",
   6958           "value" : 4441,
   6959           "capabilities" : [ "Shader" ],
   6960           "extensions" : [ "SPV_KHR_variable_pointers" ],
   6961           "version" : "1.3"
   6962         },
   6963         {
   6964           "enumerant" : "VariablePointers",
   6965           "value" : 4442,
   6966           "capabilities" : [ "VariablePointersStorageBuffer" ],
   6967           "extensions" : [ "SPV_KHR_variable_pointers" ],
   6968           "version" : "1.3"
   6969         },
   6970         {
   6971           "enumerant" : "AtomicStorageOps",
   6972           "value" : 4445,
   6973           "extensions" : [ "SPV_KHR_shader_atomic_counter_ops" ],
   6974           "version" : "None"
   6975         },
   6976         {
   6977           "enumerant" : "SampleMaskPostDepthCoverage",
   6978           "value" : 4447,
   6979           "extensions" : [ "SPV_KHR_post_depth_coverage" ],
   6980           "version" : "None"
   6981         },
   6982         {
   6983           "enumerant" : "StorageBuffer8BitAccess",
   6984           "value" : 4448,
   6985           "extensions" : [ "SPV_KHR_8bit_storage" ],
   6986           "version" : "None"
   6987         },
   6988         {
   6989           "enumerant" : "UniformAndStorageBuffer8BitAccess",
   6990           "value" : 4449,
   6991           "capabilities" : [ "StorageBuffer8BitAccess" ],
   6992           "extensions" : [ "SPV_KHR_8bit_storage" ],
   6993           "version" : "None"
   6994         },
   6995         {
   6996           "enumerant" : "StoragePushConstant8",
   6997           "value" : 4450,
   6998           "extensions" : [ "SPV_KHR_8bit_storage" ],
   6999           "version" : "None"
   7000         },
   7001         {
   7002           "enumerant" : "Float16ImageAMD",
   7003           "value" : 5008,
   7004           "capabilities" : [ "Shader" ],
   7005           "extensions" : [ "SPV_AMD_gpu_shader_half_float_fetch" ],
   7006           "version" : "None"
   7007         },
   7008         {
   7009           "enumerant" : "ImageGatherBiasLodAMD",
   7010           "value" : 5009,
   7011           "capabilities" : [ "Shader" ],
   7012           "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ],
   7013           "version" : "None"
   7014         },
   7015         {
   7016           "enumerant" : "FragmentMaskAMD",
   7017           "value" : 5010,
   7018           "capabilities" : [ "Shader" ],
   7019           "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
   7020           "version" : "None"
   7021         },
   7022         {
   7023           "enumerant" : "StencilExportEXT",
   7024           "value" : 5013,
   7025           "capabilities" : [ "Shader" ],
   7026           "extensions" : [ "SPV_EXT_shader_stencil_export" ],
   7027           "version" : "None"
   7028         },
   7029         {
   7030           "enumerant" : "ImageReadWriteLodAMD",
   7031           "value" : 5015,
   7032           "capabilities" : [ "Shader" ],
   7033           "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ],
   7034           "version" : "None"
   7035         },
   7036         {
   7037           "enumerant" : "SampleMaskOverrideCoverageNV",
   7038           "value" : 5249,
   7039           "capabilities" : [ "SampleRateShading" ],
   7040           "extensions" : [ "SPV_NV_sample_mask_override_coverage" ],
   7041           "version" : "None"
   7042         },
   7043         {
   7044           "enumerant" : "GeometryShaderPassthroughNV",
   7045           "value" : 5251,
   7046           "capabilities" : [ "Geometry" ],
   7047           "extensions" : [ "SPV_NV_geometry_shader_passthrough" ],
   7048           "version" : "None"
   7049         },
   7050         {
   7051           "enumerant" : "ShaderViewportIndexLayerEXT",
   7052           "value" : 5254,
   7053           "capabilities" : [ "MultiViewport" ],
   7054           "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ],
   7055           "version" : "None"
   7056         },
   7057         {
   7058           "enumerant" : "ShaderViewportIndexLayerNV",
   7059           "value" : 5254,
   7060           "capabilities" : [ "MultiViewport" ],
   7061           "extensions" : [ "SPV_NV_viewport_array2" ],
   7062           "version" : "None"
   7063         },
   7064         {
   7065           "enumerant" : "ShaderViewportMaskNV",
   7066           "value" : 5255,
   7067           "capabilities" : [ "ShaderViewportIndexLayerNV" ],
   7068           "extensions" : [ "SPV_NV_viewport_array2" ],
   7069           "version" : "None"
   7070         },
   7071         {
   7072           "enumerant" : "ShaderStereoViewNV",
   7073           "value" : 5259,
   7074           "capabilities" : [ "ShaderViewportMaskNV" ],
   7075           "extensions" : [ "SPV_NV_stereo_view_rendering" ],
   7076           "version" : "None"
   7077         },
   7078         {
   7079           "enumerant" : "PerViewAttributesNV",
   7080           "value" : 5260,
   7081           "capabilities" : [ "MultiView" ],
   7082           "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ],
   7083           "version" : "None"
   7084         },
   7085         {
   7086           "enumerant" : "FragmentFullyCoveredEXT",
   7087           "value" : 5265,
   7088           "capabilities" : [ "Shader" ],
   7089           "extensions" : [ "SPV_EXT_fragment_fully_covered" ],
   7090           "version" : "None"
   7091         },
   7092         {
   7093           "enumerant" : "MeshShadingNV",
   7094           "value" : 5266,
   7095           "capabilities" : [ "Shader" ],
   7096           "extensions" : [ "SPV_NV_mesh_shader" ],
   7097           "version" : "None"
   7098         },
   7099         {
   7100           "enumerant" : "ShaderNonUniformEXT",
   7101           "value" : 5301,
   7102           "capabilities" : [ "Shader" ],
   7103           "extensions" : [ "SPV_EXT_descriptor_indexing" ],
   7104           "version" : "None"
   7105         },
   7106         {
   7107           "enumerant" : "RuntimeDescriptorArrayEXT",
   7108           "value" : 5302,
   7109           "capabilities" : [ "Shader" ],
   7110           "extensions" : [ "SPV_EXT_descriptor_indexing" ],
   7111           "version" : "None"
   7112         },
   7113         {
   7114           "enumerant" : "InputAttachmentArrayDynamicIndexingEXT",
   7115           "value" : 5303,
   7116           "capabilities" : [ "InputAttachment" ],
   7117           "extensions" : [ "SPV_EXT_descriptor_indexing" ],
   7118           "version" : "None"
   7119         },
   7120         {
   7121           "enumerant" : "UniformTexelBufferArrayDynamicIndexingEXT",
   7122           "value" : 5304,
   7123           "capabilities" : [ "SampledBuffer" ],
   7124           "extensions" : [ "SPV_EXT_descriptor_indexing" ],
   7125           "version" : "None"
   7126         },
   7127         {
   7128           "enumerant" : "StorageTexelBufferArrayDynamicIndexingEXT",
   7129           "value" : 5305,
   7130           "capabilities" : [ "ImageBuffer" ],
   7131           "extensions" : [ "SPV_EXT_descriptor_indexing" ],
   7132           "version" : "None"
   7133         },
   7134         {
   7135           "enumerant" : "UniformBufferArrayNonUniformIndexingEXT",
   7136           "value" : 5306,
   7137           "capabilities" : [ "ShaderNonUniformEXT" ],
   7138           "extensions" : [ "SPV_EXT_descriptor_indexing" ],
   7139           "version" : "None"
   7140         },
   7141         {
   7142           "enumerant" : "SampledImageArrayNonUniformIndexingEXT",
   7143           "value" : 5307,
   7144           "capabilities" : [ "ShaderNonUniformEXT" ],
   7145           "extensions" : [ "SPV_EXT_descriptor_indexing" ],
   7146           "version" : "None"
   7147         },
   7148         {
   7149           "enumerant" : "StorageBufferArrayNonUniformIndexingEXT",
   7150           "value" : 5308,
   7151           "capabilities" : [ "ShaderNonUniformEXT" ],
   7152           "extensions" : [ "SPV_EXT_descriptor_indexing" ],
   7153           "version" : "None"
   7154         },
   7155         {
   7156           "enumerant" : "StorageImageArrayNonUniformIndexingEXT",
   7157           "value" : 5309,
   7158           "capabilities" : [ "ShaderNonUniformEXT" ],
   7159           "extensions" : [ "SPV_EXT_descriptor_indexing" ],
   7160           "version" : "None"
   7161         },
   7162         {
   7163           "enumerant" : "InputAttachmentArrayNonUniformIndexingEXT",
   7164           "value" : 5310,
   7165           "capabilities" : [ "InputAttachment", "ShaderNonUniformEXT" ],
   7166           "extensions" : [ "SPV_EXT_descriptor_indexing" ],
   7167           "version" : "None"
   7168         },
   7169         {
   7170           "enumerant" : "UniformTexelBufferArrayNonUniformIndexingEXT",
   7171           "value" : 5311,
   7172           "capabilities" : [ "SampledBuffer", "ShaderNonUniformEXT" ],
   7173           "extensions" : [ "SPV_EXT_descriptor_indexing" ],
   7174           "version" : "None"
   7175         },
   7176         {
   7177           "enumerant" : "StorageTexelBufferArrayNonUniformIndexingEXT",
   7178           "value" : 5312,
   7179           "capabilities" : [ "ImageBuffer", "ShaderNonUniformEXT" ],
   7180           "extensions" : [ "SPV_EXT_descriptor_indexing" ],
   7181           "version" : "None"
   7182         },
   7183         {
   7184           "enumerant" : "RaytracingNVX",
   7185           "value" : 5340,
   7186           "capabilities" : [ "Shader" ],
   7187           "extensions" : [ "SPV_NVX_raytracing" ],
   7188           "version" : "None"
   7189         },
   7190         {
   7191           "enumerant" : "SubgroupShuffleINTEL",
   7192           "value" : 5568,
   7193           "extensions" : [ "SPV_INTEL_subgroups" ],
   7194           "version" : "None"
   7195         },
   7196         {
   7197           "enumerant" : "SubgroupBufferBlockIOINTEL",
   7198           "value" : 5569,
   7199           "extensions" : [ "SPV_INTEL_subgroups" ],
   7200           "version" : "None"
   7201         },
   7202         {
   7203           "enumerant" : "SubgroupImageBlockIOINTEL",
   7204           "value" : 5570,
   7205           "extensions" : [ "SPV_INTEL_subgroups" ],
   7206           "version" : "None"
   7207         },
   7208         {
   7209           "enumerant" : "GroupNonUniformPartitionedNV",
   7210           "value" : 5297,
   7211           "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
   7212           "version" : "None"
   7213         },
   7214         {
   7215           "enumerant" : "VulkanMemoryModelKHR",
   7216           "value" : 5345,
   7217           "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
   7218           "version" : "None"
   7219         },
   7220         {
   7221           "enumerant" : "VulkanMemoryModelDeviceScopeKHR",
   7222           "value" : 5346,
   7223           "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
   7224           "version" : "None"
   7225         },
   7226         {
   7227           "enumerant" : "ImageFootprintNV",
   7228           "value" : 5282,
   7229           "extensions" : [ "SPV_NV_shader_image_footprint" ],
   7230           "version" : "None"
   7231         },
   7232         {
   7233           "enumerant" : "FragmentBarycentricNV",
   7234           "value" : 5284,
   7235           "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
   7236           "version" : "None"
   7237         },
   7238         {
   7239           "enumerant" : "ComputeDerivativeGroupQuadsNV",
   7240           "value" : 5288,
   7241           "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
   7242           "version" : "None"
   7243         },
   7244         {
   7245           "enumerant" : "ComputeDerivativeGroupLinearNV",
   7246           "value" : 5350,
   7247           "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
   7248           "version" : "None"
   7249         },
   7250         {
   7251           "enumerant" : "ShadingRateNV",
   7252           "value" : 5291,
   7253           "capabilities" : [ "Shader" ],
   7254           "extensions" : [ "SPV_NV_shading_rate" ],
   7255           "version" : "None"
   7256         }
   7257       ]
   7258     },
   7259     {
   7260       "category" : "Id",
   7261       "kind" : "IdResultType",
   7262       "doc" : "Reference to an <id> representing the result's type of the enclosing instruction"
   7263     },
   7264     {
   7265       "category" : "Id",
   7266       "kind" : "IdResult",
   7267       "doc" : "Definition of an <id> representing the result of the enclosing instruction"
   7268     },
   7269     {
   7270       "category" : "Id",
   7271       "kind" : "IdMemorySemantics",
   7272       "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the MemorySemantics operand kind"
   7273     },
   7274     {
   7275       "category" : "Id",
   7276       "kind" : "IdScope",
   7277       "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the Scope operand kind"
   7278     },
   7279     {
   7280       "category" : "Id",
   7281       "kind" : "IdRef",
   7282       "doc" : "Reference to an <id>"
   7283     },
   7284     {
   7285       "category" : "Literal",
   7286       "kind" : "LiteralInteger",
   7287       "doc" : "An integer consuming one or more words"
   7288     },
   7289     {
   7290       "category" : "Literal",
   7291       "kind" : "LiteralString",
   7292       "doc" : "A null-terminated stream of characters consuming an integral number of words"
   7293     },
   7294     {
   7295       "category" : "Literal",
   7296       "kind" : "LiteralContextDependentNumber",
   7297       "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction"
   7298     },
   7299     {
   7300       "category" : "Literal",
   7301       "kind" : "LiteralExtInstInteger",
   7302       "doc" : "A 32-bit unsigned integer indicating which instruction to use and determining the layout of following operands (for OpExtInst)"
   7303     },
   7304     {
   7305       "category" : "Literal",
   7306       "kind" : "LiteralSpecConstantOpInteger",
   7307       "doc" : "An opcode indicating the operation to be performed and determining the layout of following operands (for OpSpecConstantOp)"
   7308     },
   7309     {
   7310       "category" : "Composite",
   7311       "kind" : "PairLiteralIntegerIdRef",
   7312       "bases" : [ "LiteralInteger", "IdRef" ]
   7313     },
   7314     {
   7315       "category" : "Composite",
   7316       "kind" : "PairIdRefLiteralInteger",
   7317       "bases" : [ "IdRef", "LiteralInteger" ]
   7318     },
   7319     {
   7320       "category" : "Composite",
   7321       "kind" : "PairIdRefIdRef",
   7322       "bases" : [ "IdRef", "IdRef" ]
   7323     }
   7324   ]
   7325 }
   7326