• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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" : "OpReportIntersectionNV",
3829      "opcode" : 5334,
3830      "operands" : [
3831        { "kind" : "IdResultType" },
3832        { "kind" : "IdResult" },
3833        { "kind" : "IdRef", "name" : "'Hit'" },
3834        { "kind" : "IdRef", "name" : "'HitKind'" }
3835      ],
3836      "capabilities" : [ "RayTracingNV" ],
3837      "extensions" : [ "SPV_NV_ray_tracing" ]
3838    },
3839    {
3840      "opname" : "OpIgnoreIntersectionNV",
3841      "opcode" : 5335,
3842
3843      "capabilities" : [ "RayTracingNV" ],
3844      "extensions" : [ "SPV_NV_ray_tracing" ]
3845    },
3846    {
3847      "opname" : "OpTerminateRayNV",
3848      "opcode" : 5336,
3849
3850      "capabilities" : [ "RayTracingNV" ],
3851      "extensions" : [ "SPV_NV_ray_tracing" ]
3852    },
3853    {
3854      "opname" : "OpTraceNV",
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" : [ "RayTracingNV" ],
3871      "extensions" : [ "SPV_NV_ray_tracing" ]
3872    },
3873    {
3874      "opname" : "OpTypeAccelerationStructureNV",
3875      "opcode" : 5341,
3876      "operands" : [
3877        { "kind" : "IdResult" }
3878      ],
3879      "capabilities" : [ "RayTracingNV" ],
3880      "extensions" : [ "SPV_NV_ray_tracing" ]
3881    },
3882    {
3883      "opname" : "OpExecuteCallableNV",
3884      "opcode" : 5344,
3885      "operands" : [
3886
3887        { "kind" : "IdRef", "name" : "'SBT Index'" },
3888        { "kind" : "IdRef", "name" : "'Callable DataId'" }
3889      ],
3890      "capabilities" : [ "RayTracingNV" ],
3891      "extensions" : [ "SPV_NV_ray_tracing" ]
3892    },
3893    {
3894      "opname" : "OpSubgroupShuffleINTEL",
3895      "opcode" : 5571,
3896      "operands" : [
3897        { "kind" : "IdResultType" },
3898        { "kind" : "IdResult" },
3899        { "kind" : "IdRef", "name" : "'Data'" },
3900        { "kind" : "IdRef", "name" : "'InvocationId'" }
3901      ],
3902      "capabilities" : [ "SubgroupShuffleINTEL" ],
3903      "version" : "None"
3904    },
3905    {
3906      "opname" : "OpSubgroupShuffleDownINTEL",
3907      "opcode" : 5572,
3908      "operands" : [
3909        { "kind" : "IdResultType" },
3910        { "kind" : "IdResult" },
3911        { "kind" : "IdRef", "name" : "'Current'" },
3912        { "kind" : "IdRef", "name" : "'Next'" },
3913        { "kind" : "IdRef", "name" : "'Delta'" }
3914      ],
3915      "capabilities" : [ "SubgroupShuffleINTEL" ],
3916      "version" : "None"
3917    },
3918    {
3919      "opname" : "OpSubgroupShuffleUpINTEL",
3920      "opcode" : 5573,
3921      "operands" : [
3922        { "kind" : "IdResultType" },
3923        { "kind" : "IdResult" },
3924        { "kind" : "IdRef", "name" : "'Previous'" },
3925        { "kind" : "IdRef", "name" : "'Current'" },
3926        { "kind" : "IdRef", "name" : "'Delta'" }
3927      ],
3928      "capabilities" : [ "SubgroupShuffleINTEL" ],
3929      "version" : "None"
3930    },
3931    {
3932      "opname" : "OpSubgroupShuffleXorINTEL",
3933      "opcode" : 5574,
3934      "operands" : [
3935        { "kind" : "IdResultType" },
3936        { "kind" : "IdResult" },
3937        { "kind" : "IdRef", "name" : "'Data'" },
3938        { "kind" : "IdRef", "name" : "'Value'" }
3939      ],
3940      "capabilities" : [ "SubgroupShuffleINTEL" ],
3941      "version" : "None"
3942    },
3943    {
3944      "opname" : "OpSubgroupBlockReadINTEL",
3945      "opcode" : 5575,
3946      "operands" : [
3947        { "kind" : "IdResultType" },
3948        { "kind" : "IdResult" },
3949        { "kind" : "IdRef", "name" : "'Ptr'" }
3950      ],
3951      "capabilities" : [ "SubgroupBufferBlockIOINTEL" ],
3952      "version" : "None"
3953    },
3954    {
3955      "opname" : "OpSubgroupBlockWriteINTEL",
3956      "opcode" : 5576,
3957      "operands" : [
3958        { "kind" : "IdRef", "name" : "'Ptr'" },
3959        { "kind" : "IdRef", "name" : "'Data'" }
3960      ],
3961      "capabilities" : [ "SubgroupBufferBlockIOINTEL" ],
3962      "version" : "None"
3963    },
3964    {
3965      "opname" : "OpSubgroupImageBlockReadINTEL",
3966      "opcode" : 5577,
3967      "operands" : [
3968        { "kind" : "IdResultType" },
3969        { "kind" : "IdResult" },
3970        { "kind" : "IdRef", "name" : "'Image'" },
3971        { "kind" : "IdRef", "name" : "'Coordinate'" }
3972      ],
3973      "capabilities" : [ "SubgroupImageBlockIOINTEL" ],
3974      "version" : "None"
3975    },
3976    {
3977      "opname" : "OpSubgroupImageBlockWriteINTEL",
3978      "opcode" : 5578,
3979      "operands" : [
3980        { "kind" : "IdRef", "name" : "'Image'" },
3981        { "kind" : "IdRef", "name" : "'Coordinate'" },
3982        { "kind" : "IdRef", "name" : "'Data'" }
3983      ],
3984      "capabilities" : [ "SubgroupImageBlockIOINTEL" ],
3985      "version" : "None"
3986    },
3987    {
3988      "opname" : "OpDecorateStringGOOGLE",
3989      "opcode" : 5632,
3990      "operands" : [
3991        { "kind" : "IdRef",         "name" : "'Target'" },
3992        { "kind" : "Decoration" }
3993      ],
3994      "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ],
3995      "version" : "None"
3996    },
3997    {
3998      "opname" : "OpMemberDecorateStringGOOGLE",
3999      "opcode" : 5633,
4000      "operands" : [
4001        { "kind" : "IdRef",          "name" : "'Struct Type'" },
4002        { "kind" : "LiteralInteger", "name" : "'Member'" },
4003        { "kind" : "Decoration" }
4004      ],
4005      "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ],
4006      "version" : "None"
4007    },
4008    {
4009      "opname" : "OpGroupNonUniformPartitionNV",
4010      "opcode" : 5296,
4011      "operands" : [
4012        { "kind" : "IdResultType" },
4013        { "kind" : "IdResult" },
4014        { "kind" : "IdRef", "name" : "'Value'" }
4015      ],
4016      "capabilities" : [ "GroupNonUniformPartitionedNV" ],
4017      "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
4018      "version" : "None"
4019    },
4020	{
4021      "opname" : "OpImageSampleFootprintNV",
4022      "opcode" : 5283,
4023      "operands" : [
4024        { "kind" : "IdResultType" },
4025        { "kind" : "IdResult" },
4026        { "kind" : "IdRef", "name" : "'Sampled Image'" },
4027        { "kind" : "IdRef", "name" : "'Coordinate'" },
4028        { "kind" : "IdRef", "name" : "'Granularity'" },
4029        { "kind" : "IdRef", "name" : "'Coarse'" },
4030        { "kind" : "ImageOperands", "quantifier" : "?" }
4031      ],
4032      "capabilities" : [ "ImageFootprintNV" ],
4033      "extensions" : [ "SPV_NV_shader_image_footprint" ],
4034      "version" : "None"
4035    }
4036  ],
4037  "operand_kinds" : [
4038    {
4039      "category" : "BitEnum",
4040      "kind" : "ImageOperands",
4041      "enumerants" : [
4042        {
4043          "enumerant" : "None",
4044          "value" : "0x0000"
4045        },
4046        {
4047          "enumerant" : "Bias",
4048          "value" : "0x0001",
4049          "capabilities" : [ "Shader" ],
4050          "parameters" : [
4051            { "kind" : "IdRef" }
4052          ]
4053        },
4054        {
4055          "enumerant" : "Lod",
4056          "value" : "0x0002",
4057          "parameters" : [
4058            { "kind" : "IdRef" }
4059          ]
4060        },
4061        {
4062          "enumerant" : "Grad",
4063          "value" : "0x0004",
4064          "parameters" : [
4065            { "kind" : "IdRef" },
4066            { "kind" : "IdRef" }
4067          ]
4068        },
4069        {
4070          "enumerant" : "ConstOffset",
4071          "value" : "0x0008",
4072          "parameters" : [
4073            { "kind" : "IdRef" }
4074          ]
4075        },
4076        {
4077          "enumerant" : "Offset",
4078          "value" : "0x0010",
4079          "capabilities" : [ "ImageGatherExtended" ],
4080          "parameters" : [
4081            { "kind" : "IdRef" }
4082          ]
4083        },
4084        {
4085          "enumerant" : "ConstOffsets",
4086          "value" : "0x0020",
4087          "capabilities" : [ "ImageGatherExtended" ],
4088          "parameters" : [
4089            { "kind" : "IdRef" }
4090          ]
4091        },
4092        {
4093          "enumerant" : "Sample",
4094          "value" : "0x0040",
4095          "parameters" : [
4096            { "kind" : "IdRef" }
4097          ]
4098        },
4099        {
4100          "enumerant" : "MinLod",
4101          "value" : "0x0080",
4102          "capabilities" : [ "MinLod" ],
4103          "parameters" : [
4104            { "kind" : "IdRef" }
4105          ]
4106        },
4107        {
4108          "enumerant" : "MakeTexelAvailableKHR",
4109          "value" : "0x0100",
4110          "capabilities" : [ "VulkanMemoryModelKHR" ],
4111          "parameters" : [
4112            { "kind" : "IdScope" }
4113          ]
4114        },
4115        {
4116          "enumerant" : "MakeTexelVisibleKHR",
4117          "value" : "0x0200",
4118          "capabilities" : [ "VulkanMemoryModelKHR" ],
4119          "parameters" : [
4120            { "kind" : "IdScope" }
4121          ]
4122        },
4123        {
4124          "enumerant" : "NonPrivateTexelKHR",
4125          "value" : "0x0400",
4126          "capabilities" : [ "VulkanMemoryModelKHR" ]
4127        },
4128        {
4129          "enumerant" : "VolatileTexelKHR",
4130          "value" : "0x0800",
4131          "capabilities" : [ "VulkanMemoryModelKHR" ]
4132        }
4133      ]
4134    },
4135    {
4136      "category" : "BitEnum",
4137      "kind" : "FPFastMathMode",
4138      "enumerants" : [
4139        {
4140          "enumerant" : "None",
4141          "value" : "0x0000"
4142        },
4143        {
4144          "enumerant" : "NotNaN",
4145          "value" : "0x0001",
4146          "capabilities" : [ "Kernel" ]
4147        },
4148        {
4149          "enumerant" : "NotInf",
4150          "value" : "0x0002",
4151          "capabilities" : [ "Kernel" ]
4152        },
4153        {
4154          "enumerant" : "NSZ",
4155          "value" : "0x0004",
4156          "capabilities" : [ "Kernel" ]
4157        },
4158        {
4159          "enumerant" : "AllowRecip",
4160          "value" : "0x0008",
4161          "capabilities" : [ "Kernel" ]
4162        },
4163        {
4164          "enumerant" : "Fast",
4165          "value" : "0x0010",
4166          "capabilities" : [ "Kernel" ]
4167        }
4168      ]
4169    },
4170    {
4171      "category" : "BitEnum",
4172      "kind" : "SelectionControl",
4173      "enumerants" : [
4174        {
4175          "enumerant" : "None",
4176          "value" : "0x0000"
4177        },
4178        {
4179          "enumerant" : "Flatten",
4180          "value" : "0x0001"
4181        },
4182        {
4183          "enumerant" : "DontFlatten",
4184          "value" : "0x0002"
4185        }
4186      ]
4187    },
4188    {
4189      "category" : "BitEnum",
4190      "kind" : "LoopControl",
4191      "enumerants" : [
4192        {
4193          "enumerant" : "None",
4194          "value" : "0x0000"
4195        },
4196        {
4197          "enumerant" : "Unroll",
4198          "value" : "0x0001"
4199        },
4200        {
4201          "enumerant" : "DontUnroll",
4202          "value" : "0x0002"
4203        },
4204        {
4205          "enumerant" : "DependencyInfinite",
4206          "value" : "0x0004",
4207          "version" : "1.1"
4208        },
4209        {
4210          "enumerant" : "DependencyLength",
4211          "value" : "0x0008",
4212          "parameters" : [
4213            { "kind" : "LiteralInteger" }
4214          ],
4215          "version" : "1.1"
4216        }
4217      ]
4218    },
4219    {
4220      "category" : "BitEnum",
4221      "kind" : "FunctionControl",
4222      "enumerants" : [
4223        {
4224          "enumerant" : "None",
4225          "value" : "0x0000"
4226        },
4227        {
4228          "enumerant" : "Inline",
4229          "value" : "0x0001"
4230        },
4231        {
4232          "enumerant" : "DontInline",
4233          "value" : "0x0002"
4234        },
4235        {
4236          "enumerant" : "Pure",
4237          "value" : "0x0004"
4238        },
4239        {
4240          "enumerant" : "Const",
4241          "value" : "0x0008"
4242        }
4243      ]
4244    },
4245    {
4246      "category" : "BitEnum",
4247      "kind" : "MemorySemantics",
4248      "enumerants" : [
4249        {
4250          "enumerant" : "Relaxed",
4251          "value" : "0x0000"
4252        },
4253        {
4254          "enumerant" : "None",
4255          "value" : "0x0000"
4256        },
4257        {
4258          "enumerant" : "Acquire",
4259          "value" : "0x0002"
4260        },
4261        {
4262          "enumerant" : "Release",
4263          "value" : "0x0004"
4264        },
4265        {
4266          "enumerant" : "AcquireRelease",
4267          "value" : "0x0008"
4268        },
4269        {
4270          "enumerant" : "SequentiallyConsistent",
4271          "value" : "0x0010"
4272        },
4273        {
4274          "enumerant" : "UniformMemory",
4275          "value" : "0x0040",
4276          "capabilities" : [ "Shader" ]
4277        },
4278        {
4279          "enumerant" : "SubgroupMemory",
4280          "value" : "0x0080"
4281        },
4282        {
4283          "enumerant" : "WorkgroupMemory",
4284          "value" : "0x0100"
4285        },
4286        {
4287          "enumerant" : "CrossWorkgroupMemory",
4288          "value" : "0x0200"
4289        },
4290        {
4291          "enumerant" : "AtomicCounterMemory",
4292          "value" : "0x0400",
4293          "capabilities" : [ "AtomicStorage" ]
4294        },
4295        {
4296          "enumerant" : "ImageMemory",
4297          "value" : "0x0800"
4298        },
4299        {
4300          "enumerant" : "OutputMemoryKHR",
4301          "value" : "0x1000",
4302          "capabilities" : [ "VulkanMemoryModelKHR" ]
4303        },
4304        {
4305          "enumerant" : "MakeAvailableKHR",
4306          "value" : "0x2000",
4307          "capabilities" : [ "VulkanMemoryModelKHR" ]
4308        },
4309        {
4310          "enumerant" : "MakeVisibleKHR",
4311          "value" : "0x4000",
4312          "capabilities" : [ "VulkanMemoryModelKHR" ]
4313        }
4314      ]
4315    },
4316    {
4317      "category" : "BitEnum",
4318      "kind" : "MemoryAccess",
4319      "enumerants" : [
4320        {
4321          "enumerant" : "None",
4322          "value" : "0x0000"
4323        },
4324        {
4325          "enumerant" : "Volatile",
4326          "value" : "0x0001"
4327        },
4328        {
4329          "enumerant" : "Aligned",
4330          "value" : "0x0002",
4331          "parameters" : [
4332            { "kind" : "LiteralInteger" }
4333          ]
4334        },
4335        {
4336          "enumerant" : "Nontemporal",
4337          "value" : "0x0004"
4338        },
4339        {
4340          "enumerant" : "MakePointerAvailableKHR",
4341          "value" : "0x0008",
4342          "parameters" : [
4343            { "kind" : "IdScope" }
4344          ],
4345          "capabilities" : [ "VulkanMemoryModelKHR" ]
4346        },
4347        {
4348          "enumerant" : "MakePointerVisibleKHR",
4349          "value" : "0x0010",
4350          "parameters" : [
4351            { "kind" : "IdScope" }
4352          ],
4353          "capabilities" : [ "VulkanMemoryModelKHR" ]
4354        },
4355        {
4356          "enumerant" : "NonPrivatePointerKHR",
4357          "value" : "0x0020",
4358          "capabilities" : [ "VulkanMemoryModelKHR" ]
4359        }
4360      ]
4361    },
4362    {
4363      "category" : "BitEnum",
4364      "kind" : "KernelProfilingInfo",
4365      "enumerants" : [
4366        {
4367          "enumerant" : "None",
4368          "value" : "0x0000"
4369        },
4370        {
4371          "enumerant" : "CmdExecTime",
4372          "value" : "0x0001",
4373          "capabilities" : [ "Kernel" ]
4374        }
4375      ]
4376    },
4377    {
4378      "category" : "ValueEnum",
4379      "kind" : "SourceLanguage",
4380      "enumerants" : [
4381        {
4382          "enumerant" : "Unknown",
4383          "value" : 0
4384        },
4385        {
4386          "enumerant" : "ESSL",
4387          "value" : 1
4388        },
4389        {
4390          "enumerant" : "GLSL",
4391          "value" : 2
4392        },
4393        {
4394          "enumerant" : "OpenCL_C",
4395          "value" : 3
4396        },
4397        {
4398          "enumerant" : "OpenCL_CPP",
4399          "value" : 4
4400        },
4401        {
4402          "enumerant" : "HLSL",
4403          "value" : 5
4404        }
4405      ]
4406    },
4407    {
4408      "category" : "ValueEnum",
4409      "kind" : "ExecutionModel",
4410      "enumerants" : [
4411        {
4412          "enumerant" : "Vertex",
4413          "value" : 0,
4414          "capabilities" : [ "Shader" ]
4415        },
4416        {
4417          "enumerant" : "TessellationControl",
4418          "value" : 1,
4419          "capabilities" : [ "Tessellation" ]
4420        },
4421        {
4422          "enumerant" : "TessellationEvaluation",
4423          "value" : 2,
4424          "capabilities" : [ "Tessellation" ]
4425        },
4426        {
4427          "enumerant" : "Geometry",
4428          "value" : 3,
4429          "capabilities" : [ "Geometry" ]
4430        },
4431        {
4432          "enumerant" : "Fragment",
4433          "value" : 4,
4434          "capabilities" : [ "Shader" ]
4435        },
4436        {
4437          "enumerant" : "GLCompute",
4438          "value" : 5,
4439          "capabilities" : [ "Shader" ]
4440        },
4441        {
4442          "enumerant" : "Kernel",
4443          "value" : 6,
4444          "capabilities" : [ "Kernel" ]
4445        },
4446        {
4447          "enumerant" : "TaskNV",
4448          "value" : 5267,
4449          "capabilities" : [ "MeshShadingNV" ]
4450        },
4451        {
4452          "enumerant" : "MeshNV",
4453          "value" : 5268,
4454          "capabilities" : [ "MeshShadingNV" ]
4455        },
4456        {
4457          "enumerant" : "RayGenerationNV",
4458          "value" : 5313,
4459          "capabilities" : [ "RayTracingNV" ]
4460        },
4461        {
4462          "enumerant" : "IntersectionNV",
4463          "value" : 5314,
4464          "capabilities" : [ "RayTracingNV" ]
4465        },
4466        {
4467          "enumerant" : "AnyHitNV",
4468          "value" : 5315,
4469          "capabilities" : [ "RayTracingNV" ]
4470        },
4471        {
4472          "enumerant" : "ClosestHitNV",
4473          "value" : 5316,
4474          "capabilities" : [ "RayTracingNV" ]
4475        },
4476        {
4477          "enumerant" : "MissNV",
4478          "value" : 5317,
4479          "capabilities" : [ "RayTracingNV" ]
4480        },
4481        {
4482          "enumerant" : "CallableNV",
4483          "value" : 5318,
4484          "capabilities" : [ "RayTracingNV" ]
4485        }
4486      ]
4487    },
4488    {
4489      "category" : "ValueEnum",
4490      "kind" : "AddressingModel",
4491      "enumerants" : [
4492        {
4493          "enumerant" : "Logical",
4494          "value" : 0
4495        },
4496        {
4497          "enumerant" : "Physical32",
4498          "value" : 1,
4499          "capabilities" : [ "Addresses" ]
4500        },
4501        {
4502          "enumerant" : "Physical64",
4503          "value" : 2,
4504          "capabilities" : [ "Addresses" ]
4505        }
4506      ]
4507    },
4508    {
4509      "category" : "ValueEnum",
4510      "kind" : "MemoryModel",
4511      "enumerants" : [
4512        {
4513          "enumerant" : "Simple",
4514          "value" : 0,
4515          "capabilities" : [ "Shader" ]
4516        },
4517        {
4518          "enumerant" : "GLSL450",
4519          "value" : 1,
4520          "capabilities" : [ "Shader" ]
4521        },
4522        {
4523          "enumerant" : "OpenCL",
4524          "value" : 2,
4525          "capabilities" : [ "Kernel" ]
4526        },
4527        {
4528          "enumerant" : "VulkanKHR",
4529          "value" : 3,
4530          "capabilities" : [ "VulkanMemoryModelKHR" ]
4531        }
4532      ]
4533    },
4534    {
4535      "category" : "ValueEnum",
4536      "kind" : "ExecutionMode",
4537      "enumerants" : [
4538        {
4539          "enumerant" : "Invocations",
4540          "value" : 0,
4541          "capabilities" : [ "Geometry" ],
4542          "parameters" : [
4543            { "kind" : "LiteralInteger", "name" : "'Number of <<Invocation,invocations>>'" }
4544          ]
4545        },
4546        {
4547          "enumerant" : "SpacingEqual",
4548          "value" : 1,
4549          "capabilities" : [ "Tessellation" ]
4550        },
4551        {
4552          "enumerant" : "SpacingFractionalEven",
4553          "value" : 2,
4554          "capabilities" : [ "Tessellation" ]
4555        },
4556        {
4557          "enumerant" : "SpacingFractionalOdd",
4558          "value" : 3,
4559          "capabilities" : [ "Tessellation" ]
4560        },
4561        {
4562          "enumerant" : "VertexOrderCw",
4563          "value" : 4,
4564          "capabilities" : [ "Tessellation" ]
4565        },
4566        {
4567          "enumerant" : "VertexOrderCcw",
4568          "value" : 5,
4569          "capabilities" : [ "Tessellation" ]
4570        },
4571        {
4572          "enumerant" : "PixelCenterInteger",
4573          "value" : 6,
4574          "capabilities" : [ "Shader" ]
4575        },
4576        {
4577          "enumerant" : "OriginUpperLeft",
4578          "value" : 7,
4579          "capabilities" : [ "Shader" ]
4580        },
4581        {
4582          "enumerant" : "OriginLowerLeft",
4583          "value" : 8,
4584          "capabilities" : [ "Shader" ]
4585        },
4586        {
4587          "enumerant" : "EarlyFragmentTests",
4588          "value" : 9,
4589          "capabilities" : [ "Shader" ]
4590        },
4591        {
4592          "enumerant" : "PointMode",
4593          "value" : 10,
4594          "capabilities" : [ "Tessellation" ]
4595        },
4596        {
4597          "enumerant" : "Xfb",
4598          "value" : 11,
4599          "capabilities" : [ "TransformFeedback" ]
4600        },
4601        {
4602          "enumerant" : "DepthReplacing",
4603          "value" : 12,
4604          "capabilities" : [ "Shader" ]
4605        },
4606        {
4607          "enumerant" : "DepthGreater",
4608          "value" : 14,
4609          "capabilities" : [ "Shader" ]
4610        },
4611        {
4612          "enumerant" : "DepthLess",
4613          "value" : 15,
4614          "capabilities" : [ "Shader" ]
4615        },
4616        {
4617          "enumerant" : "DepthUnchanged",
4618          "value" : 16,
4619          "capabilities" : [ "Shader" ]
4620        },
4621        {
4622          "enumerant" : "LocalSize",
4623          "value" : 17,
4624          "parameters" : [
4625            { "kind" : "LiteralInteger", "name" : "'x size'" },
4626            { "kind" : "LiteralInteger", "name" : "'y size'" },
4627            { "kind" : "LiteralInteger", "name" : "'z size'" }
4628          ]
4629        },
4630        {
4631          "enumerant" : "LocalSizeHint",
4632          "value" : 18,
4633          "capabilities" : [ "Kernel" ],
4634          "parameters" : [
4635            { "kind" : "LiteralInteger", "name" : "'x size'" },
4636            { "kind" : "LiteralInteger", "name" : "'y size'" },
4637            { "kind" : "LiteralInteger", "name" : "'z size'" }
4638          ]
4639        },
4640        {
4641          "enumerant" : "InputPoints",
4642          "value" : 19,
4643          "capabilities" : [ "Geometry" ]
4644        },
4645        {
4646          "enumerant" : "InputLines",
4647          "value" : 20,
4648          "capabilities" : [ "Geometry" ]
4649        },
4650        {
4651          "enumerant" : "InputLinesAdjacency",
4652          "value" : 21,
4653          "capabilities" : [ "Geometry" ]
4654        },
4655        {
4656          "enumerant" : "Triangles",
4657          "value" : 22,
4658          "capabilities" : [ "Geometry", "Tessellation" ]
4659        },
4660        {
4661          "enumerant" : "InputTrianglesAdjacency",
4662          "value" : 23,
4663          "capabilities" : [ "Geometry" ]
4664        },
4665        {
4666          "enumerant" : "Quads",
4667          "value" : 24,
4668          "capabilities" : [ "Tessellation" ]
4669        },
4670        {
4671          "enumerant" : "Isolines",
4672          "value" : 25,
4673          "capabilities" : [ "Tessellation" ]
4674        },
4675        {
4676          "enumerant" : "OutputVertices",
4677          "value" : 26,
4678          "capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV" ],
4679          "parameters" : [
4680            { "kind" : "LiteralInteger", "name" : "'Vertex count'" }
4681          ]
4682        },
4683        {
4684          "enumerant" : "OutputPoints",
4685          "value" : 27,
4686          "capabilities" : [ "Geometry", "MeshShadingNV" ]
4687        },
4688        {
4689          "enumerant" : "OutputLineStrip",
4690          "value" : 28,
4691          "capabilities" : [ "Geometry" ]
4692        },
4693        {
4694          "enumerant" : "OutputTriangleStrip",
4695          "value" : 29,
4696          "capabilities" : [ "Geometry" ]
4697        },
4698        {
4699          "enumerant" : "VecTypeHint",
4700          "value" : 30,
4701          "capabilities" : [ "Kernel" ],
4702          "parameters" : [
4703            { "kind" : "LiteralInteger", "name" : "'Vector type'" }
4704          ]
4705        },
4706        {
4707          "enumerant" : "ContractionOff",
4708          "value" : 31,
4709          "capabilities" : [ "Kernel" ]
4710        },
4711        {
4712          "enumerant" : "Initializer",
4713          "value" : 33,
4714          "capabilities" : [ "Kernel" ],
4715          "version" : "1.1"
4716        },
4717        {
4718          "enumerant" : "Finalizer",
4719          "value" : 34,
4720          "capabilities" : [ "Kernel" ],
4721          "version" : "1.1"
4722        },
4723        {
4724          "enumerant" : "SubgroupSize",
4725          "value" : 35,
4726          "capabilities" : [ "SubgroupDispatch" ],
4727          "parameters" : [
4728            { "kind" : "LiteralInteger", "name" : "'Subgroup Size'" }
4729          ],
4730          "version" : "1.1"
4731        },
4732        {
4733          "enumerant" : "SubgroupsPerWorkgroup",
4734          "value" : 36,
4735          "capabilities" : [ "SubgroupDispatch" ],
4736          "parameters" : [
4737            { "kind" : "LiteralInteger", "name" : "'Subgroups Per Workgroup'" }
4738          ],
4739          "version" : "1.1"
4740        },
4741        {
4742          "enumerant" : "SubgroupsPerWorkgroupId",
4743          "value" : 37,
4744          "capabilities" : [ "SubgroupDispatch" ],
4745          "parameters" : [
4746            { "kind" : "IdRef", "name" : "'Subgroups Per Workgroup'" }
4747          ],
4748          "version" : "1.2"
4749        },
4750        {
4751          "enumerant" : "LocalSizeId",
4752          "value" : 38,
4753          "parameters" : [
4754            { "kind" : "IdRef", "name" : "'x size'" },
4755            { "kind" : "IdRef", "name" : "'y size'" },
4756            { "kind" : "IdRef", "name" : "'z size'" }
4757          ],
4758          "version" : "1.2"
4759        },
4760        {
4761          "enumerant" : "LocalSizeHintId",
4762          "value" : 39,
4763          "capabilities" : [ "Kernel" ],
4764          "parameters" : [
4765            { "kind" : "IdRef", "name" : "'Local Size Hint'" }
4766          ],
4767          "version" : "1.2"
4768        },
4769        {
4770          "enumerant" : "PostDepthCoverage",
4771          "value" : 4446,
4772          "capabilities" : [ "SampleMaskPostDepthCoverage" ],
4773          "extensions" : [ "SPV_KHR_post_depth_coverage" ],
4774          "version" : "None"
4775        },
4776{
4777          "enumerant" : "DenormPreserve",
4778          "value" : 4459,
4779          "capabilities" : [ "DenormPreserve"],
4780          "extensions" : [ "SPV_KHR_float_controls" ],
4781          "parameters" : [
4782            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
4783          ],
4784          "version" : "None"
4785        },
4786        {
4787          "enumerant" : "DenormFlushToZero",
4788          "value" : 4460,
4789          "capabilities" : [ "DenormFlushToZero"],
4790          "extensions" : [ "SPV_KHR_float_controls" ],
4791          "parameters" : [
4792            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
4793          ],
4794          "version" : "None"
4795        },
4796        {
4797          "enumerant" : "SignedZeroInfNanPreserve",
4798          "value" : 4461,
4799          "capabilities" : [ "SignedZeroInfNanPreserve"],
4800          "extensions" : [ "SPV_KHR_float_controls" ],
4801          "parameters" : [
4802            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
4803          ],
4804          "version" : "None"
4805        },
4806        {
4807          "enumerant" : "RoundingModeRTE",
4808          "value" : 4462,
4809          "capabilities" : [ "RoundingModeRTE"],
4810          "extensions" : [ "SPV_KHR_float_controls" ],
4811          "parameters" : [
4812            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
4813          ],
4814          "version" : "None"
4815        },
4816        {
4817          "enumerant" : "RoundingModeRTZ",
4818          "value" : 4463,
4819          "capabilities" : [ "RoundingModeRTZ"],
4820          "extensions" : [ "SPV_KHR_float_controls" ],
4821          "parameters" : [
4822            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
4823          ],
4824          "version" : "None"
4825        },
4826        {
4827          "enumerant" : "StencilRefReplacingEXT",
4828          "value" : 5027,
4829          "capabilities" : [ "StencilExportEXT" ],
4830          "extensions" : [ "SPV_EXT_shader_stencil_export" ],
4831          "version" : "None"
4832        },
4833        {
4834          "enumerant" : "OutputLinesNV",
4835          "value" : 5269,
4836          "capabilities" : [ "MeshShadingNV" ],
4837          "extensions" : [ "SPV_NV_mesh_shader" ],
4838          "version" : "None"
4839        },
4840        {
4841          "enumerant" : "OutputPrimitivesNV",
4842          "value" : 5270,
4843          "capabilities" : [ "MeshShadingNV" ],
4844          "parameters" : [
4845            { "kind" : "LiteralInteger", "name" : "'Primitive count'" }
4846          ],
4847          "extensions" : [ "SPV_NV_mesh_shader" ],
4848          "version" : "None"
4849        },
4850        {
4851          "enumerant" : "DerivativeGroupQuadsNV",
4852          "value" : 5289,
4853          "capabilities" : [ "ComputeDerivativeGroupQuadsNV" ],
4854          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
4855          "version" : "None"
4856        },
4857        {
4858          "enumerant" : "DerivativeGroupLinearNV",
4859          "value" : 5290,
4860          "capabilities" : [ "ComputeDerivativeGroupLinearNV" ],
4861          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
4862          "version" : "None"
4863        },
4864        {
4865          "enumerant" : "OutputTrianglesNV",
4866          "value" : 5298,
4867          "capabilities" : [ "MeshShadingNV" ],
4868          "extensions" : [ "SPV_NV_mesh_shader" ],
4869          "version" : "None"
4870        }
4871      ]
4872    },
4873    {
4874      "category" : "ValueEnum",
4875      "kind" : "StorageClass",
4876      "enumerants" : [
4877        {
4878          "enumerant" : "UniformConstant",
4879          "value" : 0
4880        },
4881        {
4882          "enumerant" : "Input",
4883          "value" : 1
4884        },
4885        {
4886          "enumerant" : "Uniform",
4887          "value" : 2,
4888          "capabilities" : [ "Shader" ]
4889        },
4890        {
4891          "enumerant" : "Output",
4892          "value" : 3,
4893          "capabilities" : [ "Shader" ]
4894        },
4895        {
4896          "enumerant" : "Workgroup",
4897          "value" : 4
4898        },
4899        {
4900          "enumerant" : "CrossWorkgroup",
4901          "value" : 5
4902        },
4903        {
4904          "enumerant" : "Private",
4905          "value" : 6,
4906          "capabilities" : [ "Shader" ]
4907        },
4908        {
4909          "enumerant" : "Function",
4910          "value" : 7
4911        },
4912        {
4913          "enumerant" : "Generic",
4914          "value" : 8,
4915          "capabilities" : [ "GenericPointer" ]
4916        },
4917        {
4918          "enumerant" : "PushConstant",
4919          "value" : 9,
4920          "capabilities" : [ "Shader" ]
4921        },
4922        {
4923          "enumerant" : "AtomicCounter",
4924          "value" : 10,
4925          "capabilities" : [ "AtomicStorage" ]
4926        },
4927        {
4928          "enumerant" : "Image",
4929          "value" : 11
4930        },
4931        {
4932          "enumerant" : "StorageBuffer",
4933          "value" : 12,
4934          "extensions" : [
4935            "SPV_KHR_storage_buffer_storage_class",
4936            "SPV_KHR_variable_pointers"
4937          ],
4938          "capabilities" : [ "Shader" ],
4939          "version" : "1.3"
4940        },
4941        {
4942          "enumerant" : "CallableDataNV",
4943          "value" : 5328,
4944          "extensions" : [ "SPV_NV_ray_tracing" ],
4945          "capabilities" : [ "RayTracingNV" ]
4946        },
4947        {
4948          "enumerant" : "IncomingCallableDataNV",
4949          "value" : 5329,
4950          "extensions" : [ "SPV_NV_ray_tracing" ],
4951          "capabilities" : [ "RayTracingNV" ]
4952        },
4953        {
4954          "enumerant" : "RayPayloadNV",
4955          "value" : 5338,
4956          "extensions" : [ "SPV_NV_ray_tracing" ],
4957          "capabilities" : [ "RayTracingNV" ]
4958        },
4959        {
4960          "enumerant" : "HitAttributeNV",
4961          "value" : 5339,
4962          "extensions" : [ "SPV_NV_ray_tracing" ],
4963          "capabilities" : [ "RayTracingNV" ]
4964        },
4965        {
4966          "enumerant" : "IncomingRayPayloadNV",
4967          "value" : 5342,
4968          "extensions" : [ "SPV_NV_ray_tracing" ],
4969          "capabilities" : [ "RayTracingNV" ]
4970        },
4971        {
4972          "enumerant" : "ShaderRecordBufferNV",
4973          "value" : 5343,
4974          "extensions" : [ "SPV_NV_ray_tracing" ],
4975          "capabilities" : [ "RayTracingNV" ]
4976        }
4977      ]
4978    },
4979    {
4980      "category" : "ValueEnum",
4981      "kind" : "Dim",
4982      "enumerants" : [
4983        {
4984          "enumerant" : "1D",
4985          "value" : 0,
4986          "capabilities" : [ "Sampled1D", "Image1D" ]
4987        },
4988        {
4989          "enumerant" : "2D",
4990          "value" : 1,
4991          "capabilities" : [ "Shader", "Kernel", "ImageMSArray" ]
4992        },
4993        {
4994          "enumerant" : "3D",
4995          "value" : 2
4996        },
4997        {
4998          "enumerant" : "Cube",
4999          "value" : 3,
5000          "capabilities" : [ "Shader", "ImageCubeArray" ]
5001        },
5002        {
5003          "enumerant" : "Rect",
5004          "value" : 4,
5005          "capabilities" : [ "SampledRect", "ImageRect" ]
5006        },
5007        {
5008          "enumerant" : "Buffer",
5009          "value" : 5,
5010          "capabilities" : [ "SampledBuffer", "ImageBuffer" ]
5011        },
5012        {
5013          "enumerant" : "SubpassData",
5014          "value" : 6,
5015          "capabilities" : [ "InputAttachment" ]
5016        }
5017      ]
5018    },
5019    {
5020      "category" : "ValueEnum",
5021      "kind" : "SamplerAddressingMode",
5022      "enumerants" : [
5023        {
5024          "enumerant" : "None",
5025          "value" : 0,
5026          "capabilities" : [ "Kernel" ]
5027        },
5028        {
5029          "enumerant" : "ClampToEdge",
5030          "value" : 1,
5031          "capabilities" : [ "Kernel" ]
5032        },
5033        {
5034          "enumerant" : "Clamp",
5035          "value" : 2,
5036          "capabilities" : [ "Kernel" ]
5037        },
5038        {
5039          "enumerant" : "Repeat",
5040          "value" : 3,
5041          "capabilities" : [ "Kernel" ]
5042        },
5043        {
5044          "enumerant" : "RepeatMirrored",
5045          "value" : 4,
5046          "capabilities" : [ "Kernel" ]
5047        }
5048      ]
5049    },
5050    {
5051      "category" : "ValueEnum",
5052      "kind" : "SamplerFilterMode",
5053      "enumerants" : [
5054        {
5055          "enumerant" : "Nearest",
5056          "value" : 0,
5057          "capabilities" : [ "Kernel" ]
5058        },
5059        {
5060          "enumerant" : "Linear",
5061          "value" : 1,
5062          "capabilities" : [ "Kernel" ]
5063        }
5064      ]
5065    },
5066    {
5067      "category" : "ValueEnum",
5068      "kind" : "ImageFormat",
5069      "enumerants" : [
5070        {
5071          "enumerant" : "Unknown",
5072          "value" : 0
5073        },
5074        {
5075          "enumerant" : "Rgba32f",
5076          "value" : 1,
5077          "capabilities" : [ "Shader" ]
5078        },
5079        {
5080          "enumerant" : "Rgba16f",
5081          "value" : 2,
5082          "capabilities" : [ "Shader" ]
5083        },
5084        {
5085          "enumerant" : "R32f",
5086          "value" : 3,
5087          "capabilities" : [ "Shader" ]
5088        },
5089        {
5090          "enumerant" : "Rgba8",
5091          "value" : 4,
5092          "capabilities" : [ "Shader" ]
5093        },
5094        {
5095          "enumerant" : "Rgba8Snorm",
5096          "value" : 5,
5097          "capabilities" : [ "Shader" ]
5098        },
5099        {
5100          "enumerant" : "Rg32f",
5101          "value" : 6,
5102          "capabilities" : [ "StorageImageExtendedFormats" ]
5103        },
5104        {
5105          "enumerant" : "Rg16f",
5106          "value" : 7,
5107          "capabilities" : [ "StorageImageExtendedFormats" ]
5108        },
5109        {
5110          "enumerant" : "R11fG11fB10f",
5111          "value" : 8,
5112          "capabilities" : [ "StorageImageExtendedFormats" ]
5113        },
5114        {
5115          "enumerant" : "R16f",
5116          "value" : 9,
5117          "capabilities" : [ "StorageImageExtendedFormats" ]
5118        },
5119        {
5120          "enumerant" : "Rgba16",
5121          "value" : 10,
5122          "capabilities" : [ "StorageImageExtendedFormats" ]
5123        },
5124        {
5125          "enumerant" : "Rgb10A2",
5126          "value" : 11,
5127          "capabilities" : [ "StorageImageExtendedFormats" ]
5128        },
5129        {
5130          "enumerant" : "Rg16",
5131          "value" : 12,
5132          "capabilities" : [ "StorageImageExtendedFormats" ]
5133        },
5134        {
5135          "enumerant" : "Rg8",
5136          "value" : 13,
5137          "capabilities" : [ "StorageImageExtendedFormats" ]
5138        },
5139        {
5140          "enumerant" : "R16",
5141          "value" : 14,
5142          "capabilities" : [ "StorageImageExtendedFormats" ]
5143        },
5144        {
5145          "enumerant" : "R8",
5146          "value" : 15,
5147          "capabilities" : [ "StorageImageExtendedFormats" ]
5148        },
5149        {
5150          "enumerant" : "Rgba16Snorm",
5151          "value" : 16,
5152          "capabilities" : [ "StorageImageExtendedFormats" ]
5153        },
5154        {
5155          "enumerant" : "Rg16Snorm",
5156          "value" : 17,
5157          "capabilities" : [ "StorageImageExtendedFormats" ]
5158        },
5159        {
5160          "enumerant" : "Rg8Snorm",
5161          "value" : 18,
5162          "capabilities" : [ "StorageImageExtendedFormats" ]
5163        },
5164        {
5165          "enumerant" : "R16Snorm",
5166          "value" : 19,
5167          "capabilities" : [ "StorageImageExtendedFormats" ]
5168        },
5169        {
5170          "enumerant" : "R8Snorm",
5171          "value" : 20,
5172          "capabilities" : [ "StorageImageExtendedFormats" ]
5173        },
5174        {
5175          "enumerant" : "Rgba32i",
5176          "value" : 21,
5177          "capabilities" : [ "Shader" ]
5178        },
5179        {
5180          "enumerant" : "Rgba16i",
5181          "value" : 22,
5182          "capabilities" : [ "Shader" ]
5183        },
5184        {
5185          "enumerant" : "Rgba8i",
5186          "value" : 23,
5187          "capabilities" : [ "Shader" ]
5188        },
5189        {
5190          "enumerant" : "R32i",
5191          "value" : 24,
5192          "capabilities" : [ "Shader" ]
5193        },
5194        {
5195          "enumerant" : "Rg32i",
5196          "value" : 25,
5197          "capabilities" : [ "StorageImageExtendedFormats" ]
5198        },
5199        {
5200          "enumerant" : "Rg16i",
5201          "value" : 26,
5202          "capabilities" : [ "StorageImageExtendedFormats" ]
5203        },
5204        {
5205          "enumerant" : "Rg8i",
5206          "value" : 27,
5207          "capabilities" : [ "StorageImageExtendedFormats" ]
5208        },
5209        {
5210          "enumerant" : "R16i",
5211          "value" : 28,
5212          "capabilities" : [ "StorageImageExtendedFormats" ]
5213        },
5214        {
5215          "enumerant" : "R8i",
5216          "value" : 29,
5217          "capabilities" : [ "StorageImageExtendedFormats" ]
5218        },
5219        {
5220          "enumerant" : "Rgba32ui",
5221          "value" : 30,
5222          "capabilities" : [ "Shader" ]
5223        },
5224        {
5225          "enumerant" : "Rgba16ui",
5226          "value" : 31,
5227          "capabilities" : [ "Shader" ]
5228        },
5229        {
5230          "enumerant" : "Rgba8ui",
5231          "value" : 32,
5232          "capabilities" : [ "Shader" ]
5233        },
5234        {
5235          "enumerant" : "R32ui",
5236          "value" : 33,
5237          "capabilities" : [ "Shader" ]
5238        },
5239        {
5240          "enumerant" : "Rgb10a2ui",
5241          "value" : 34,
5242          "capabilities" : [ "StorageImageExtendedFormats" ]
5243        },
5244        {
5245          "enumerant" : "Rg32ui",
5246          "value" : 35,
5247          "capabilities" : [ "StorageImageExtendedFormats" ]
5248        },
5249        {
5250          "enumerant" : "Rg16ui",
5251          "value" : 36,
5252          "capabilities" : [ "StorageImageExtendedFormats" ]
5253        },
5254        {
5255          "enumerant" : "Rg8ui",
5256          "value" : 37,
5257          "capabilities" : [ "StorageImageExtendedFormats" ]
5258        },
5259        {
5260          "enumerant" : "R16ui",
5261          "value" : 38,
5262          "capabilities" : [ "StorageImageExtendedFormats" ]
5263        },
5264        {
5265          "enumerant" : "R8ui",
5266          "value" : 39,
5267          "capabilities" : [ "StorageImageExtendedFormats" ]
5268        }
5269      ]
5270    },
5271    {
5272      "category" : "ValueEnum",
5273      "kind" : "ImageChannelOrder",
5274      "enumerants" : [
5275        {
5276          "enumerant" : "R",
5277          "value" : 0,
5278          "capabilities" : [ "Kernel" ]
5279        },
5280        {
5281          "enumerant" : "A",
5282          "value" : 1,
5283          "capabilities" : [ "Kernel" ]
5284        },
5285        {
5286          "enumerant" : "RG",
5287          "value" : 2,
5288          "capabilities" : [ "Kernel" ]
5289        },
5290        {
5291          "enumerant" : "RA",
5292          "value" : 3,
5293          "capabilities" : [ "Kernel" ]
5294        },
5295        {
5296          "enumerant" : "RGB",
5297          "value" : 4,
5298          "capabilities" : [ "Kernel" ]
5299        },
5300        {
5301          "enumerant" : "RGBA",
5302          "value" : 5,
5303          "capabilities" : [ "Kernel" ]
5304        },
5305        {
5306          "enumerant" : "BGRA",
5307          "value" : 6,
5308          "capabilities" : [ "Kernel" ]
5309        },
5310        {
5311          "enumerant" : "ARGB",
5312          "value" : 7,
5313          "capabilities" : [ "Kernel" ]
5314        },
5315        {
5316          "enumerant" : "Intensity",
5317          "value" : 8,
5318          "capabilities" : [ "Kernel" ]
5319        },
5320        {
5321          "enumerant" : "Luminance",
5322          "value" : 9,
5323          "capabilities" : [ "Kernel" ]
5324        },
5325        {
5326          "enumerant" : "Rx",
5327          "value" : 10,
5328          "capabilities" : [ "Kernel" ]
5329        },
5330        {
5331          "enumerant" : "RGx",
5332          "value" : 11,
5333          "capabilities" : [ "Kernel" ]
5334        },
5335        {
5336          "enumerant" : "RGBx",
5337          "value" : 12,
5338          "capabilities" : [ "Kernel" ]
5339        },
5340        {
5341          "enumerant" : "Depth",
5342          "value" : 13,
5343          "capabilities" : [ "Kernel" ]
5344        },
5345        {
5346          "enumerant" : "DepthStencil",
5347          "value" : 14,
5348          "capabilities" : [ "Kernel" ]
5349        },
5350        {
5351          "enumerant" : "sRGB",
5352          "value" : 15,
5353          "capabilities" : [ "Kernel" ]
5354        },
5355        {
5356          "enumerant" : "sRGBx",
5357          "value" : 16,
5358          "capabilities" : [ "Kernel" ]
5359        },
5360        {
5361          "enumerant" : "sRGBA",
5362          "value" : 17,
5363          "capabilities" : [ "Kernel" ]
5364        },
5365        {
5366          "enumerant" : "sBGRA",
5367          "value" : 18,
5368          "capabilities" : [ "Kernel" ]
5369        },
5370        {
5371          "enumerant" : "ABGR",
5372          "value" : 19,
5373          "capabilities" : [ "Kernel" ]
5374        }
5375      ]
5376    },
5377    {
5378      "category" : "ValueEnum",
5379      "kind" : "ImageChannelDataType",
5380      "enumerants" : [
5381        {
5382          "enumerant" : "SnormInt8",
5383          "value" : 0,
5384          "capabilities" : [ "Kernel" ]
5385        },
5386        {
5387          "enumerant" : "SnormInt16",
5388          "value" : 1,
5389          "capabilities" : [ "Kernel" ]
5390        },
5391        {
5392          "enumerant" : "UnormInt8",
5393          "value" : 2,
5394          "capabilities" : [ "Kernel" ]
5395        },
5396        {
5397          "enumerant" : "UnormInt16",
5398          "value" : 3,
5399          "capabilities" : [ "Kernel" ]
5400        },
5401        {
5402          "enumerant" : "UnormShort565",
5403          "value" : 4,
5404          "capabilities" : [ "Kernel" ]
5405        },
5406        {
5407          "enumerant" : "UnormShort555",
5408          "value" : 5,
5409          "capabilities" : [ "Kernel" ]
5410        },
5411        {
5412          "enumerant" : "UnormInt101010",
5413          "value" : 6,
5414          "capabilities" : [ "Kernel" ]
5415        },
5416        {
5417          "enumerant" : "SignedInt8",
5418          "value" : 7,
5419          "capabilities" : [ "Kernel" ]
5420        },
5421        {
5422          "enumerant" : "SignedInt16",
5423          "value" : 8,
5424          "capabilities" : [ "Kernel" ]
5425        },
5426        {
5427          "enumerant" : "SignedInt32",
5428          "value" : 9,
5429          "capabilities" : [ "Kernel" ]
5430        },
5431        {
5432          "enumerant" : "UnsignedInt8",
5433          "value" : 10,
5434          "capabilities" : [ "Kernel" ]
5435        },
5436        {
5437          "enumerant" : "UnsignedInt16",
5438          "value" : 11,
5439          "capabilities" : [ "Kernel" ]
5440        },
5441        {
5442          "enumerant" : "UnsignedInt32",
5443          "value" : 12,
5444          "capabilities" : [ "Kernel" ]
5445        },
5446        {
5447          "enumerant" : "HalfFloat",
5448          "value" : 13,
5449          "capabilities" : [ "Kernel" ]
5450        },
5451        {
5452          "enumerant" : "Float",
5453          "value" : 14,
5454          "capabilities" : [ "Kernel" ]
5455        },
5456        {
5457          "enumerant" : "UnormInt24",
5458          "value" : 15,
5459          "capabilities" : [ "Kernel" ]
5460        },
5461        {
5462          "enumerant" : "UnormInt101010_2",
5463          "value" : 16,
5464          "capabilities" : [ "Kernel" ]
5465        }
5466      ]
5467    },
5468    {
5469      "category" : "ValueEnum",
5470      "kind" : "FPRoundingMode",
5471      "enumerants" : [
5472        {
5473          "enumerant" : "RTE",
5474          "value" : 0
5475        },
5476        {
5477          "enumerant" : "RTZ",
5478          "value" : 1
5479        },
5480        {
5481          "enumerant" : "RTP",
5482          "value" : 2
5483        },
5484        {
5485          "enumerant" : "RTN",
5486          "value" : 3
5487        }
5488      ]
5489    },
5490    {
5491      "category" : "ValueEnum",
5492      "kind" : "LinkageType",
5493      "enumerants" : [
5494        {
5495          "enumerant" : "Export",
5496          "value" : 0,
5497          "capabilities" : [ "Linkage" ]
5498        },
5499        {
5500          "enumerant" : "Import",
5501          "value" : 1,
5502          "capabilities" : [ "Linkage" ]
5503        }
5504      ]
5505    },
5506    {
5507      "category" : "ValueEnum",
5508      "kind" : "AccessQualifier",
5509      "enumerants" : [
5510        {
5511          "enumerant" : "ReadOnly",
5512          "value" : 0,
5513          "capabilities" : [ "Kernel" ]
5514        },
5515        {
5516          "enumerant" : "WriteOnly",
5517          "value" : 1,
5518          "capabilities" : [ "Kernel" ]
5519        },
5520        {
5521          "enumerant" : "ReadWrite",
5522          "value" : 2,
5523          "capabilities" : [ "Kernel" ]
5524        }
5525      ]
5526    },
5527    {
5528      "category" : "ValueEnum",
5529      "kind" : "FunctionParameterAttribute",
5530      "enumerants" : [
5531        {
5532          "enumerant" : "Zext",
5533          "value" : 0,
5534          "capabilities" : [ "Kernel" ]
5535        },
5536        {
5537          "enumerant" : "Sext",
5538          "value" : 1,
5539          "capabilities" : [ "Kernel" ]
5540        },
5541        {
5542          "enumerant" : "ByVal",
5543          "value" : 2,
5544          "capabilities" : [ "Kernel" ]
5545        },
5546        {
5547          "enumerant" : "Sret",
5548          "value" : 3,
5549          "capabilities" : [ "Kernel" ]
5550        },
5551        {
5552          "enumerant" : "NoAlias",
5553          "value" : 4,
5554          "capabilities" : [ "Kernel" ]
5555        },
5556        {
5557          "enumerant" : "NoCapture",
5558          "value" : 5,
5559          "capabilities" : [ "Kernel" ]
5560        },
5561        {
5562          "enumerant" : "NoWrite",
5563          "value" : 6,
5564          "capabilities" : [ "Kernel" ]
5565        },
5566        {
5567          "enumerant" : "NoReadWrite",
5568          "value" : 7,
5569          "capabilities" : [ "Kernel" ]
5570        }
5571      ]
5572    },
5573    {
5574      "category" : "ValueEnum",
5575      "kind" : "Decoration",
5576      "enumerants" : [
5577        {
5578          "enumerant" : "RelaxedPrecision",
5579          "value" : 0,
5580          "capabilities" : [ "Shader" ]
5581        },
5582        {
5583          "enumerant" : "SpecId",
5584          "value" : 1,
5585          "capabilities" : [ "Shader", "Kernel" ],
5586          "parameters" : [
5587            { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" }
5588          ]
5589        },
5590        {
5591          "enumerant" : "Block",
5592          "value" : 2,
5593          "capabilities" : [ "Shader" ]
5594        },
5595        {
5596          "enumerant" : "BufferBlock",
5597          "value" : 3,
5598          "capabilities" : [ "Shader" ]
5599        },
5600        {
5601          "enumerant" : "RowMajor",
5602          "value" : 4,
5603          "capabilities" : [ "Matrix" ]
5604        },
5605        {
5606          "enumerant" : "ColMajor",
5607          "value" : 5,
5608          "capabilities" : [ "Matrix" ]
5609        },
5610        {
5611          "enumerant" : "ArrayStride",
5612          "value" : 6,
5613          "capabilities" : [ "Shader" ],
5614          "parameters" : [
5615            { "kind" : "LiteralInteger", "name" : "'Array Stride'" }
5616          ]
5617        },
5618        {
5619          "enumerant" : "MatrixStride",
5620          "value" : 7,
5621          "capabilities" : [ "Matrix" ],
5622          "parameters" : [
5623            { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" }
5624          ]
5625        },
5626        {
5627          "enumerant" : "GLSLShared",
5628          "value" : 8,
5629          "capabilities" : [ "Shader" ]
5630        },
5631        {
5632          "enumerant" : "GLSLPacked",
5633          "value" : 9,
5634          "capabilities" : [ "Shader" ]
5635        },
5636        {
5637          "enumerant" : "CPacked",
5638          "value" : 10,
5639          "capabilities" : [ "Kernel" ]
5640        },
5641        {
5642          "enumerant" : "BuiltIn",
5643          "value" : 11,
5644          "parameters" : [
5645            { "kind" : "BuiltIn" }
5646          ]
5647        },
5648        {
5649          "enumerant" : "NoPerspective",
5650          "value" : 13,
5651          "capabilities" : [ "Shader" ]
5652        },
5653        {
5654          "enumerant" : "Flat",
5655          "value" : 14,
5656          "capabilities" : [ "Shader" ]
5657        },
5658        {
5659          "enumerant" : "Patch",
5660          "value" : 15,
5661          "capabilities" : [ "Tessellation" ]
5662        },
5663        {
5664          "enumerant" : "Centroid",
5665          "value" : 16,
5666          "capabilities" : [ "Shader" ]
5667        },
5668        {
5669          "enumerant" : "Sample",
5670          "value" : 17,
5671          "capabilities" : [ "SampleRateShading" ]
5672        },
5673        {
5674          "enumerant" : "Invariant",
5675          "value" : 18,
5676          "capabilities" : [ "Shader" ]
5677        },
5678        {
5679          "enumerant" : "Restrict",
5680          "value" : 19
5681        },
5682        {
5683          "enumerant" : "Aliased",
5684          "value" : 20
5685        },
5686        {
5687          "enumerant" : "Volatile",
5688          "value" : 21
5689        },
5690        {
5691          "enumerant" : "Constant",
5692          "value" : 22,
5693          "capabilities" : [ "Kernel" ]
5694        },
5695        {
5696          "enumerant" : "Coherent",
5697          "value" : 23
5698        },
5699        {
5700          "enumerant" : "NonWritable",
5701          "value" : 24
5702        },
5703        {
5704          "enumerant" : "NonReadable",
5705          "value" : 25
5706        },
5707        {
5708          "enumerant" : "Uniform",
5709          "value" : 26,
5710          "capabilities" : [ "Shader" ]
5711        },
5712        {
5713          "enumerant" : "SaturatedConversion",
5714          "value" : 28,
5715          "capabilities" : [ "Kernel" ]
5716        },
5717        {
5718          "enumerant" : "Stream",
5719          "value" : 29,
5720          "capabilities" : [ "GeometryStreams" ],
5721          "parameters" : [
5722            { "kind" : "LiteralInteger", "name" : "'Stream Number'" }
5723          ]
5724        },
5725        {
5726          "enumerant" : "Location",
5727          "value" : 30,
5728          "capabilities" : [ "Shader" ],
5729          "parameters" : [
5730            { "kind" : "LiteralInteger", "name" : "'Location'" }
5731          ]
5732        },
5733        {
5734          "enumerant" : "Component",
5735          "value" : 31,
5736          "capabilities" : [ "Shader" ],
5737          "parameters" : [
5738            { "kind" : "LiteralInteger", "name" : "'Component'" }
5739          ]
5740        },
5741        {
5742          "enumerant" : "Index",
5743          "value" : 32,
5744          "capabilities" : [ "Shader" ],
5745          "parameters" : [
5746            { "kind" : "LiteralInteger", "name" : "'Index'" }
5747          ]
5748        },
5749        {
5750          "enumerant" : "Binding",
5751          "value" : 33,
5752          "capabilities" : [ "Shader" ],
5753          "parameters" : [
5754            { "kind" : "LiteralInteger", "name" : "'Binding Point'" }
5755          ]
5756        },
5757        {
5758          "enumerant" : "DescriptorSet",
5759          "value" : 34,
5760          "capabilities" : [ "Shader" ],
5761          "parameters" : [
5762            { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" }
5763          ]
5764        },
5765        {
5766          "enumerant" : "Offset",
5767          "value" : 35,
5768          "capabilities" : [ "Shader" ],
5769          "parameters" : [
5770            { "kind" : "LiteralInteger", "name" : "'Byte Offset'" }
5771          ]
5772        },
5773        {
5774          "enumerant" : "XfbBuffer",
5775          "value" : 36,
5776          "capabilities" : [ "TransformFeedback" ],
5777          "parameters" : [
5778            { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" }
5779          ]
5780        },
5781        {
5782          "enumerant" : "XfbStride",
5783          "value" : 37,
5784          "capabilities" : [ "TransformFeedback" ],
5785          "parameters" : [
5786            { "kind" : "LiteralInteger", "name" : "'XFB Stride'" }
5787          ]
5788        },
5789        {
5790          "enumerant" : "FuncParamAttr",
5791          "value" : 38,
5792          "capabilities" : [ "Kernel" ],
5793          "parameters" : [
5794            { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" }
5795          ]
5796        },
5797        {
5798          "enumerant" : "FPRoundingMode",
5799          "value" : 39,
5800          "parameters" : [
5801            { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" }
5802          ]
5803        },
5804        {
5805          "enumerant" : "FPFastMathMode",
5806          "value" : 40,
5807          "capabilities" : [ "Kernel" ],
5808          "parameters" : [
5809            { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" }
5810          ]
5811        },
5812        {
5813          "enumerant" : "LinkageAttributes",
5814          "value" : 41,
5815          "capabilities" : [ "Linkage" ],
5816          "parameters" : [
5817            { "kind" : "LiteralString", "name" : "'Name'" },
5818            { "kind" : "LinkageType",   "name" : "'Linkage Type'" }
5819          ]
5820        },
5821        {
5822          "enumerant" : "NoContraction",
5823          "value" : 42,
5824          "capabilities" : [ "Shader" ]
5825        },
5826        {
5827          "enumerant" : "InputAttachmentIndex",
5828          "value" : 43,
5829          "capabilities" : [ "InputAttachment" ],
5830          "parameters" : [
5831            { "kind" : "LiteralInteger", "name" : "'Attachment Index'" }
5832          ]
5833        },
5834        {
5835          "enumerant" : "Alignment",
5836          "value" : 44,
5837          "capabilities" : [ "Kernel" ],
5838          "parameters" : [
5839            { "kind" : "LiteralInteger", "name" : "'Alignment'" }
5840          ]
5841        },
5842        {
5843          "enumerant" : "MaxByteOffset",
5844          "value" : 45,
5845          "capabilities" : [ "Addresses" ],
5846          "parameters" : [
5847            { "kind" : "LiteralInteger", "name" : "'Max Byte Offset'" }
5848          ],
5849          "version" : "1.1"
5850        },
5851        {
5852          "enumerant" : "AlignmentId",
5853          "value" : 46,
5854          "capabilities" : [ "Kernel" ],
5855          "parameters" : [
5856            { "kind" : "IdRef", "name" : "'Alignment'" }
5857          ],
5858          "version" : "1.2"
5859        },
5860        {
5861          "enumerant" : "MaxByteOffsetId",
5862          "value" : 47,
5863          "capabilities" : [ "Addresses" ],
5864          "parameters" : [
5865            { "kind" : "IdRef", "name" : "'Max Byte Offset'" }
5866          ],
5867          "version" : "1.2"
5868        },
5869        {
5870          "enumerant" : "NoSignedWrap",
5871          "value" : 4469,
5872          "extensions" : [ "SPV_KHR_no_integer_wrap_decoration" ],
5873          "version" : "None"
5874        },
5875        {
5876          "enumerant" : "NoUnsignedWrap",
5877          "value" : 4470,
5878          "extensions" : [ "SPV_KHR_no_integer_wrap_decoration" ],
5879          "version" : "None"
5880        },
5881        {
5882          "enumerant" : "ExplicitInterpAMD",
5883          "value" : 4999,
5884          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
5885          "version" : "None"
5886        },
5887        {
5888          "enumerant" : "OverrideCoverageNV",
5889          "value" : 5248,
5890          "capabilities" : [ "SampleMaskOverrideCoverageNV" ],
5891          "extensions" : [ "SPV_NV_sample_mask_override_coverage" ],
5892          "version" : "None"
5893        },
5894        {
5895          "enumerant" : "PassthroughNV",
5896          "value" : 5250,
5897          "capabilities" : [ "GeometryShaderPassthroughNV" ],
5898          "extensions" : [ "SPV_NV_geometry_shader_passthrough" ],
5899          "version" : "None"
5900        },
5901        {
5902          "enumerant" : "ViewportRelativeNV",
5903          "value" : 5252,
5904          "capabilities" : [ "ShaderViewportMaskNV" ],
5905          "version" : "None"
5906        },
5907        {
5908          "enumerant" : "SecondaryViewportRelativeNV",
5909          "value" : 5256,
5910          "capabilities" : [ "ShaderStereoViewNV" ],
5911          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
5912          "version" : "None",
5913          "parameters" : [
5914            { "kind" : "LiteralInteger", "name" : "'Offset'" }
5915          ]
5916        },
5917        {
5918          "enumerant" : "PerPrimitiveNV",
5919          "value" : 5271,
5920          "capabilities" : [ "MeshShadingNV" ],
5921          "extensions" : [ "SPV_NV_mesh_shader" ],
5922          "version" : "None"
5923        },
5924        {
5925          "enumerant" : "PerViewNV",
5926          "value" : 5272,
5927          "capabilities" : [ "MeshShadingNV" ],
5928          "extensions" : [ "SPV_NV_mesh_shader" ],
5929          "version" : "None"
5930        },
5931        {
5932          "enumerant" : "PerTaskNV",
5933          "value" : 5273,
5934          "capabilities" : [ "MeshShadingNV" ],
5935          "extensions" : [ "SPV_NV_mesh_shader" ],
5936          "version" : "None"
5937        },
5938		{
5939          "enumerant" : "PerVertexNV",
5940          "value" : 5285,
5941          "capabilities" : [ "FragmentBarycentricNV" ],
5942          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
5943          "version" : "None"
5944        },
5945        {
5946          "enumerant" : "NonUniformEXT",
5947          "value" : 5300,
5948          "capabilities" : [ "ShaderNonUniformEXT" ]
5949        },
5950        {
5951          "enumerant" : "HlslCounterBufferGOOGLE",
5952          "value" : 5634,
5953          "parameters" : [
5954            { "kind" : "IdRef", "name" : "'Counter Buffer'" }
5955          ],
5956          "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
5957          "version" : "None"
5958        },
5959        {
5960          "enumerant" : "HlslSemanticGOOGLE",
5961          "value" : 5635,
5962          "parameters" : [
5963            { "kind" : "LiteralString", "name" : "'Semantic'" }
5964          ],
5965          "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
5966          "version" : "None"
5967        }
5968      ]
5969    },
5970    {
5971      "category" : "ValueEnum",
5972      "kind" : "BuiltIn",
5973      "enumerants" : [
5974        {
5975          "enumerant" : "Position",
5976          "value" : 0,
5977          "capabilities" : [ "Shader" ]
5978        },
5979        {
5980          "enumerant" : "PointSize",
5981          "value" : 1,
5982          "capabilities" : [ "Shader" ]
5983        },
5984        {
5985          "enumerant" : "ClipDistance",
5986          "value" : 3,
5987          "capabilities" : [ "ClipDistance" ]
5988        },
5989        {
5990          "enumerant" : "CullDistance",
5991          "value" : 4,
5992          "capabilities" : [ "CullDistance" ]
5993        },
5994        {
5995          "enumerant" : "VertexId",
5996          "value" : 5,
5997          "capabilities" : [ "Shader" ]
5998        },
5999        {
6000          "enumerant" : "InstanceId",
6001          "value" : 6,
6002          "capabilities" : [ "Shader" ]
6003        },
6004        {
6005          "enumerant" : "PrimitiveId",
6006          "value" : 7,
6007          "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV" ]
6008        },
6009        {
6010          "enumerant" : "InvocationId",
6011          "value" : 8,
6012          "capabilities" : [ "Geometry", "Tessellation" ]
6013        },
6014        {
6015          "enumerant" : "Layer",
6016          "value" : 9,
6017          "capabilities" : [ "Geometry" ]
6018        },
6019        {
6020          "enumerant" : "ViewportIndex",
6021          "value" : 10,
6022          "capabilities" : [ "MultiViewport" ]
6023        },
6024        {
6025          "enumerant" : "TessLevelOuter",
6026          "value" : 11,
6027          "capabilities" : [ "Tessellation" ]
6028        },
6029        {
6030          "enumerant" : "TessLevelInner",
6031          "value" : 12,
6032          "capabilities" : [ "Tessellation" ]
6033        },
6034        {
6035          "enumerant" : "TessCoord",
6036          "value" : 13,
6037          "capabilities" : [ "Tessellation" ]
6038        },
6039        {
6040          "enumerant" : "PatchVertices",
6041          "value" : 14,
6042          "capabilities" : [ "Tessellation" ]
6043        },
6044        {
6045          "enumerant" : "FragCoord",
6046          "value" : 15,
6047          "capabilities" : [ "Shader" ]
6048        },
6049        {
6050          "enumerant" : "PointCoord",
6051          "value" : 16,
6052          "capabilities" : [ "Shader" ]
6053        },
6054        {
6055          "enumerant" : "FrontFacing",
6056          "value" : 17,
6057          "capabilities" : [ "Shader" ]
6058        },
6059        {
6060          "enumerant" : "SampleId",
6061          "value" : 18,
6062          "capabilities" : [ "SampleRateShading" ]
6063        },
6064        {
6065          "enumerant" : "SamplePosition",
6066          "value" : 19,
6067          "capabilities" : [ "SampleRateShading" ]
6068        },
6069        {
6070          "enumerant" : "SampleMask",
6071          "value" : 20,
6072          "capabilities" : [ "Shader" ]
6073        },
6074        {
6075          "enumerant" : "FragDepth",
6076          "value" : 22,
6077          "capabilities" : [ "Shader" ]
6078        },
6079        {
6080          "enumerant" : "HelperInvocation",
6081          "value" : 23,
6082          "capabilities" : [ "Shader" ]
6083        },
6084        {
6085          "enumerant" : "NumWorkgroups",
6086          "value" : 24
6087        },
6088        {
6089          "enumerant" : "WorkgroupSize",
6090          "value" : 25
6091        },
6092        {
6093          "enumerant" : "WorkgroupId",
6094          "value" : 26
6095        },
6096        {
6097          "enumerant" : "LocalInvocationId",
6098          "value" : 27
6099        },
6100        {
6101          "enumerant" : "GlobalInvocationId",
6102          "value" : 28
6103        },
6104        {
6105          "enumerant" : "LocalInvocationIndex",
6106          "value" : 29
6107        },
6108        {
6109          "enumerant" : "WorkDim",
6110          "value" : 30,
6111          "capabilities" : [ "Kernel" ]
6112        },
6113        {
6114          "enumerant" : "GlobalSize",
6115          "value" : 31,
6116          "capabilities" : [ "Kernel" ]
6117        },
6118        {
6119          "enumerant" : "EnqueuedWorkgroupSize",
6120          "value" : 32,
6121          "capabilities" : [ "Kernel" ]
6122        },
6123        {
6124          "enumerant" : "GlobalOffset",
6125          "value" : 33,
6126          "capabilities" : [ "Kernel" ]
6127        },
6128        {
6129          "enumerant" : "GlobalLinearId",
6130          "value" : 34,
6131          "capabilities" : [ "Kernel" ]
6132        },
6133        {
6134          "enumerant" : "SubgroupSize",
6135          "value" : 36,
6136          "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ]
6137        },
6138        {
6139          "enumerant" : "SubgroupMaxSize",
6140          "value" : 37,
6141          "capabilities" : [ "Kernel" ]
6142        },
6143        {
6144          "enumerant" : "NumSubgroups",
6145          "value" : 38,
6146          "capabilities" : [ "Kernel", "GroupNonUniform" ]
6147        },
6148        {
6149          "enumerant" : "NumEnqueuedSubgroups",
6150          "value" : 39,
6151          "capabilities" : [ "Kernel" ]
6152        },
6153        {
6154          "enumerant" : "SubgroupId",
6155          "value" : 40,
6156          "capabilities" : [ "Kernel", "GroupNonUniform" ]
6157        },
6158        {
6159          "enumerant" : "SubgroupLocalInvocationId",
6160          "value" : 41,
6161          "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ]
6162        },
6163        {
6164          "enumerant" : "VertexIndex",
6165          "value" : 42,
6166          "capabilities" : [ "Shader" ]
6167        },
6168        {
6169          "enumerant" : "InstanceIndex",
6170          "value" : 43,
6171          "capabilities" : [ "Shader" ]
6172        },
6173        {
6174          "enumerant" : "SubgroupEqMask",
6175          "value" : 4416,
6176          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6177          "version" : "1.3"
6178        },
6179        {
6180          "enumerant" : "SubgroupGeMask",
6181          "value" : 4417,
6182          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6183          "version" : "1.3"
6184        },
6185        {
6186          "enumerant" : "SubgroupGtMask",
6187          "value" : 4418,
6188          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6189          "version" : "1.3"
6190        },
6191        {
6192          "enumerant" : "SubgroupLeMask",
6193          "value" : 4419,
6194          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6195          "version" : "1.3"
6196        },
6197        {
6198          "enumerant" : "SubgroupLtMask",
6199          "value" : 4420,
6200          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6201          "version" : "1.3"
6202        },
6203        {
6204          "enumerant" : "SubgroupEqMaskKHR",
6205          "value" : 4416,
6206          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6207          "extensions" : [ "SPV_KHR_shader_ballot" ],
6208          "version" : "1.3"
6209        },
6210        {
6211          "enumerant" : "SubgroupGeMaskKHR",
6212          "value" : 4417,
6213          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6214          "extensions" : [ "SPV_KHR_shader_ballot" ],
6215          "version" : "1.3"
6216        },
6217        {
6218          "enumerant" : "SubgroupGtMaskKHR",
6219          "value" : 4418,
6220          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6221          "extensions" : [ "SPV_KHR_shader_ballot" ],
6222          "version" : "1.3"
6223        },
6224        {
6225          "enumerant" : "SubgroupLeMaskKHR",
6226          "value" : 4419,
6227          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6228          "extensions" : [ "SPV_KHR_shader_ballot" ],
6229          "version" : "1.3"
6230        },
6231        {
6232          "enumerant" : "SubgroupLtMaskKHR",
6233          "value" : 4420,
6234          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6235          "extensions" : [ "SPV_KHR_shader_ballot" ],
6236          "version" : "1.3"
6237        },
6238        {
6239          "enumerant" : "BaseVertex",
6240          "value" : 4424,
6241          "capabilities" : [ "DrawParameters" ],
6242          "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
6243          "version" : "1.3"
6244        },
6245        {
6246          "enumerant" : "BaseInstance",
6247          "value" : 4425,
6248          "capabilities" : [ "DrawParameters" ],
6249          "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
6250          "version" : "1.3"
6251        },
6252        {
6253          "enumerant" : "DrawIndex",
6254          "value" : 4426,
6255          "capabilities" : [ "DrawParameters", "MeshShadingNV" ],
6256          "extensions" : [ "SPV_KHR_shader_draw_parameters", "SPV_NV_mesh_shader" ],
6257          "version" : "1.3"
6258        },
6259        {
6260          "enumerant" : "DeviceIndex",
6261          "value" : 4438,
6262          "capabilities" : [ "DeviceGroup" ],
6263          "extensions" : [ "SPV_KHR_device_group" ],
6264          "version" : "1.3"
6265        },
6266        {
6267          "enumerant" : "ViewIndex",
6268          "value" : 4440,
6269          "capabilities" : [ "MultiView" ],
6270          "extensions" : [ "SPV_KHR_multiview" ],
6271          "version" : "1.3"
6272        },
6273        {
6274          "enumerant" : "BaryCoordNoPerspAMD",
6275          "value" : 4992,
6276          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
6277          "version" : "None"
6278        },
6279        {
6280          "enumerant" : "BaryCoordNoPerspCentroidAMD",
6281          "value" : 4993,
6282          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
6283          "version" : "None"
6284        },
6285        {
6286          "enumerant" : "BaryCoordNoPerspSampleAMD",
6287          "value" : 4994,
6288          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
6289          "version" : "None"
6290        },
6291        {
6292          "enumerant" : "BaryCoordSmoothAMD",
6293          "value" : 4995,
6294          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
6295          "version" : "None"
6296        },
6297        {
6298          "enumerant" : "BaryCoordSmoothCentroidAMD",
6299          "value" : 4996,
6300          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
6301          "version" : "None"
6302        },
6303        {
6304          "enumerant" : "BaryCoordSmoothSampleAMD",
6305          "value" : 4997,
6306          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
6307          "version" : "None"
6308        },
6309        {
6310          "enumerant" : "BaryCoordPullModelAMD",
6311          "value" : 4998,
6312          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
6313          "version" : "None"
6314        },
6315        {
6316          "enumerant" : "FragStencilRefEXT",
6317          "value" : 5014,
6318          "capabilities" : [ "StencilExportEXT" ],
6319          "extensions" : [ "SPV_EXT_shader_stencil_export" ],
6320          "version" : "None"
6321        },
6322        {
6323          "enumerant" : "ViewportMaskNV",
6324          "value" : 5253,
6325          "capabilities" : [ "ShaderViewportMaskNV", "MeshShadingNV" ],
6326          "extensions" : [ "SPV_NV_viewport_array2", "SPV_NV_mesh_shader" ],
6327          "version" : "None"
6328        },
6329        {
6330          "enumerant" : "SecondaryPositionNV",
6331          "value" : 5257,
6332          "capabilities" : [ "ShaderStereoViewNV" ],
6333          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
6334          "version" : "None"
6335        },
6336        {
6337          "enumerant" : "SecondaryViewportMaskNV",
6338          "value" : 5258,
6339          "capabilities" : [ "ShaderStereoViewNV" ],
6340          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
6341          "version" : "None"
6342        },
6343        {
6344          "enumerant" : "PositionPerViewNV",
6345          "value" : 5261,
6346          "capabilities" : [ "PerViewAttributesNV", "MeshShadingNV" ],
6347          "extensions" : [ "SPV_NVX_multiview_per_view_attributes", "SPV_NV_mesh_shader" ],
6348          "version" : "None"
6349        },
6350        {
6351          "enumerant" : "ViewportMaskPerViewNV",
6352          "value" : 5262,
6353          "capabilities" : [ "PerViewAttributesNV", "MeshShadingNV" ],
6354          "extensions" : [ "SPV_NVX_multiview_per_view_attributes", "SPV_NV_mesh_shader" ],
6355          "version" : "None"
6356        },
6357        {
6358          "enumerant" : "FullyCoveredEXT",
6359          "value" : 5264,
6360          "capabilities" : [ "FragmentFullyCoveredEXT" ],
6361          "extensions" : [ "SPV_EXT_fragment_fully_covered" ],
6362          "version" : "None"
6363        },
6364        {
6365          "enumerant" : "TaskCountNV",
6366          "value" : 5274,
6367          "capabilities" : [ "MeshShadingNV" ],
6368          "extensions" : [ "SPV_NV_mesh_shader" ],
6369          "version" : "None"
6370        },
6371        {
6372          "enumerant" : "PrimitiveCountNV",
6373          "value" : 5275,
6374          "capabilities" : [ "MeshShadingNV" ],
6375          "extensions" : [ "SPV_NV_mesh_shader" ],
6376          "version" : "None"
6377        },
6378        {
6379          "enumerant" : "PrimitiveIndicesNV",
6380          "value" : 5276,
6381          "capabilities" : [ "MeshShadingNV" ],
6382          "extensions" : [ "SPV_NV_mesh_shader" ],
6383          "version" : "None"
6384        },
6385        {
6386          "enumerant" : "ClipDistancePerViewNV",
6387          "value" : 5277,
6388          "capabilities" : [ "MeshShadingNV" ],
6389          "extensions" : [ "SPV_NV_mesh_shader" ],
6390          "version" : "None"
6391        },
6392        {
6393          "enumerant" : "CullDistancePerViewNV",
6394          "value" : 5278,
6395          "capabilities" : [ "MeshShadingNV" ],
6396          "extensions" : [ "SPV_NV_mesh_shader" ],
6397          "version" : "None"
6398        },
6399        {
6400          "enumerant" : "LayerPerViewNV",
6401          "value" : 5279,
6402          "capabilities" : [ "MeshShadingNV" ],
6403          "extensions" : [ "SPV_NV_mesh_shader" ],
6404          "version" : "None"
6405        },
6406        {
6407          "enumerant" : "MeshViewCountNV",
6408          "value" : 5280,
6409          "capabilities" : [ "MeshShadingNV" ],
6410          "extensions" : [ "SPV_NV_mesh_shader" ],
6411          "version" : "None"
6412        },
6413        {
6414          "enumerant" : "MeshViewIndicesNV",
6415          "value" : 5281,
6416          "capabilities" : [ "MeshShadingNV" ],
6417          "extensions" : [ "SPV_NV_mesh_shader" ],
6418          "version" : "None"
6419        },
6420        {
6421          "enumerant" : "BaryCoordNV",
6422          "value" : 5286,
6423          "capabilities" : [ "FragmentBarycentricNV" ],
6424          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
6425          "version" : "None"
6426        },
6427        {
6428          "enumerant" : "BaryCoordNoPerspNV",
6429          "value" : 5287,
6430          "capabilities" : [ "FragmentBarycentricNV" ],
6431          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
6432          "version" : "None"
6433        },
6434        {
6435          "enumerant" : "FragSizeEXT",
6436          "value" : 5292 ,
6437          "capabilities" : [ "FragmentDensityEXT", "ShadingRateNV" ],
6438          "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ],
6439          "version" : "None"
6440        },
6441        {
6442          "enumerant" : "FragmentSizeNV",
6443          "value" : 5292 ,
6444          "capabilities" : [ "ShadingRateNV", "FragmentDensityEXT" ],
6445          "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
6446          "version" : "None"
6447        },
6448        {
6449          "enumerant" : "FragInvocationCountEXT",
6450          "value" : 5293,
6451          "capabilities" : [ "FragmentDensityEXT", "ShadingRateNV" ],
6452          "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ],
6453          "version" : "None"
6454        },
6455        {
6456          "enumerant" : "InvocationsPerPixelNV",
6457          "value" : 5293,
6458          "capabilities" : [ "ShadingRateNV", "FragmentDensityEXT" ],
6459          "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
6460          "version" : "None"
6461        },
6462        {
6463          "enumerant" : "LaunchIdNV",
6464          "value" : 5319,
6465          "capabilities" : [ "RayTracingNV" ],
6466          "extensions" : [ "SPV_NV_ray_tracing" ]
6467        },
6468        {
6469          "enumerant" : "LaunchSizeNV",
6470          "value" : 5320,
6471          "capabilities" : [ "RayTracingNV" ],
6472          "extensions" : [ "SPV_NV_ray_tracing" ]
6473        },
6474        {
6475          "enumerant" : "WorldRayOriginNV",
6476          "value" : 5321,
6477          "capabilities" : [ "RayTracingNV" ],
6478          "extensions" : [ "SPV_NV_ray_tracing" ]
6479        },
6480        {
6481          "enumerant" : "WorldRayDirectionNV",
6482          "value" : 5322,
6483          "capabilities" : [ "RayTracingNV" ],
6484          "extensions" : [ "SPV_NV_ray_tracing" ]
6485        },
6486        {
6487          "enumerant" : "ObjectRayOriginNV",
6488          "value" : 5323,
6489          "capabilities" : [ "RayTracingNV" ],
6490          "extensions" : [ "SPV_NV_ray_tracing" ]
6491        },
6492        {
6493          "enumerant" : "ObjectRayDirectionNV",
6494          "value" : 5324,
6495          "capabilities" : [ "RayTracingNV" ],
6496          "extensions" : [ "SPV_NV_ray_tracing" ]
6497        },
6498        {
6499          "enumerant" : "RayTminNV",
6500          "value" : 5325,
6501          "capabilities" : [ "RayTracingNV" ],
6502          "extensions" : [ "SPV_NV_ray_tracing" ]
6503        },
6504        {
6505          "enumerant" : "RayTmaxNV",
6506          "value" : 5326,
6507          "capabilities" : [ "RayTracingNV" ],
6508          "extensions" : [ "SPV_NV_ray_tracing" ]
6509        },
6510        {
6511          "enumerant" : "InstanceCustomIndexNV",
6512          "value" : 5327,
6513          "capabilities" : [ "RayTracingNV" ],
6514          "extensions" : [ "SPV_NV_ray_tracing" ]
6515        },
6516        {
6517          "enumerant" : "ObjectToWorldNV",
6518          "value" : 5330,
6519          "capabilities" : [ "RayTracingNV" ],
6520          "extensions" : [ "SPV_NV_ray_tracing" ]
6521        },
6522        {
6523          "enumerant" : "WorldToObjectNV",
6524          "value" : 5331,
6525          "capabilities" : [ "RayTracingNV" ],
6526          "extensions" : [ "SPV_NV_ray_tracing" ]
6527        },
6528        {
6529          "enumerant" : "HitTNV",
6530          "value" : 5332,
6531          "capabilities" : [ "RayTracingNV" ],
6532          "extensions" : [ "SPV_NV_ray_tracing" ]
6533        },
6534        {
6535          "enumerant" : "HitKindNV",
6536          "value" : 5333,
6537          "capabilities" : [ "RayTracingNV" ],
6538          "extensions" : [ "SPV_NV_ray_tracing" ]
6539        },
6540        {
6541          "enumerant" : "IncomingRayFlagsNV",
6542          "value" : 5351,
6543          "capabilities" : [ "RayTracingNV" ],
6544          "extensions" : [ "SPV_NV_ray_tracing" ]
6545        }
6546      ]
6547    },
6548    {
6549      "category" : "ValueEnum",
6550      "kind" : "Scope",
6551      "enumerants" : [
6552        {
6553          "enumerant" : "CrossDevice",
6554          "value" : 0
6555        },
6556        {
6557          "enumerant" : "Device",
6558          "value" : 1
6559        },
6560        {
6561          "enumerant" : "Workgroup",
6562          "value" : 2
6563        },
6564        {
6565          "enumerant" : "Subgroup",
6566          "value" : 3
6567        },
6568        {
6569          "enumerant" : "Invocation",
6570          "value" : 4
6571        },
6572        {
6573          "enumerant" : "QueueFamilyKHR",
6574          "value" : 5,
6575          "capabilities" : [ "VulkanMemoryModelKHR" ]
6576        }
6577      ]
6578    },
6579    {
6580      "category" : "ValueEnum",
6581      "kind" : "GroupOperation",
6582      "enumerants" : [
6583        {
6584          "enumerant" : "Reduce",
6585          "value" : 0,
6586          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
6587        },
6588        {
6589          "enumerant" : "InclusiveScan",
6590          "value" : 1,
6591          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
6592        },
6593        {
6594          "enumerant" : "ExclusiveScan",
6595          "value" : 2,
6596          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
6597        },
6598        {
6599          "enumerant" : "ClusteredReduce",
6600          "value" : 3,
6601          "capabilities" : [ "GroupNonUniformClustered" ],
6602          "version" : "1.3"
6603        },
6604        {
6605          "enumerant" : "PartitionedReduceNV",
6606          "value" : 6,
6607          "capabilities" : [ "GroupNonUniformPartitionedNV" ],
6608          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
6609          "version" : "None"
6610        },
6611        {
6612          "enumerant" : "PartitionedInclusiveScanNV",
6613          "value" : 7,
6614          "capabilities" : [ "GroupNonUniformPartitionedNV" ],
6615          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
6616          "version" : "None"
6617        },
6618        {
6619          "enumerant" : "PartitionedExclusiveScanNV",
6620          "value" : 8,
6621          "capabilities" : [ "GroupNonUniformPartitionedNV" ],
6622          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
6623          "version" : "None"
6624        }
6625      ]
6626    },
6627    {
6628      "category" : "ValueEnum",
6629      "kind" : "KernelEnqueueFlags",
6630      "enumerants" : [
6631        {
6632          "enumerant" : "NoWait",
6633          "value" : 0,
6634          "capabilities" : [ "Kernel" ]
6635        },
6636        {
6637          "enumerant" : "WaitKernel",
6638          "value" : 1,
6639          "capabilities" : [ "Kernel" ]
6640        },
6641        {
6642          "enumerant" : "WaitWorkGroup",
6643          "value" : 2,
6644          "capabilities" : [ "Kernel" ]
6645        }
6646      ]
6647    },
6648    {
6649      "category" : "ValueEnum",
6650      "kind" : "Capability",
6651      "enumerants" : [
6652        {
6653          "enumerant" : "Matrix",
6654          "value" : 0
6655        },
6656        {
6657          "enumerant" : "Shader",
6658          "value" : 1,
6659          "capabilities" : [ "Matrix" ]
6660        },
6661        {
6662          "enumerant" : "Geometry",
6663          "value" : 2,
6664          "capabilities" : [ "Shader" ]
6665        },
6666        {
6667          "enumerant" : "Tessellation",
6668          "value" : 3,
6669          "capabilities" : [ "Shader" ]
6670        },
6671        {
6672          "enumerant" : "Addresses",
6673          "value" : 4
6674        },
6675        {
6676          "enumerant" : "Linkage",
6677          "value" : 5
6678        },
6679        {
6680          "enumerant" : "Kernel",
6681          "value" : 6
6682        },
6683        {
6684          "enumerant" : "Vector16",
6685          "value" : 7,
6686          "capabilities" : [ "Kernel" ]
6687        },
6688        {
6689          "enumerant" : "Float16Buffer",
6690          "value" : 8,
6691          "capabilities" : [ "Kernel" ]
6692        },
6693        {
6694          "enumerant" : "Float16",
6695          "value" : 9
6696        },
6697        {
6698          "enumerant" : "Float64",
6699          "value" : 10
6700        },
6701        {
6702          "enumerant" : "Int64",
6703          "value" : 11
6704        },
6705        {
6706          "enumerant" : "Int64Atomics",
6707          "value" : 12,
6708          "capabilities" : [ "Int64" ]
6709        },
6710        {
6711          "enumerant" : "ImageBasic",
6712          "value" : 13,
6713          "capabilities" : [ "Kernel" ]
6714        },
6715        {
6716          "enumerant" : "ImageReadWrite",
6717          "value" : 14,
6718          "capabilities" : [ "ImageBasic" ]
6719        },
6720        {
6721          "enumerant" : "ImageMipmap",
6722          "value" : 15,
6723          "capabilities" : [ "ImageBasic" ]
6724        },
6725        {
6726          "enumerant" : "Pipes",
6727          "value" : 17,
6728          "capabilities" : [ "Kernel" ]
6729        },
6730        {
6731          "enumerant" : "Groups",
6732          "value" : 18
6733        },
6734        {
6735          "enumerant" : "DeviceEnqueue",
6736          "value" : 19,
6737          "capabilities" : [ "Kernel" ]
6738        },
6739        {
6740          "enumerant" : "LiteralSampler",
6741          "value" : 20,
6742          "capabilities" : [ "Kernel" ]
6743        },
6744        {
6745          "enumerant" : "AtomicStorage",
6746          "value" : 21,
6747          "capabilities" : [ "Shader" ]
6748        },
6749        {
6750          "enumerant" : "Int16",
6751          "value" : 22
6752        },
6753        {
6754          "enumerant" : "TessellationPointSize",
6755          "value" : 23,
6756          "capabilities" : [ "Tessellation" ]
6757        },
6758        {
6759          "enumerant" : "GeometryPointSize",
6760          "value" : 24,
6761          "capabilities" : [ "Geometry" ]
6762        },
6763        {
6764          "enumerant" : "ImageGatherExtended",
6765          "value" : 25,
6766          "capabilities" : [ "Shader" ]
6767        },
6768        {
6769          "enumerant" : "StorageImageMultisample",
6770          "value" : 27,
6771          "capabilities" : [ "Shader" ]
6772        },
6773        {
6774          "enumerant" : "UniformBufferArrayDynamicIndexing",
6775          "value" : 28,
6776          "capabilities" : [ "Shader" ]
6777        },
6778        {
6779          "enumerant" : "SampledImageArrayDynamicIndexing",
6780          "value" : 29,
6781          "capabilities" : [ "Shader" ]
6782        },
6783        {
6784          "enumerant" : "StorageBufferArrayDynamicIndexing",
6785          "value" : 30,
6786          "capabilities" : [ "Shader" ]
6787        },
6788        {
6789          "enumerant" : "StorageImageArrayDynamicIndexing",
6790          "value" : 31,
6791          "capabilities" : [ "Shader" ]
6792        },
6793        {
6794          "enumerant" : "ClipDistance",
6795          "value" : 32,
6796          "capabilities" : [ "Shader" ]
6797        },
6798        {
6799          "enumerant" : "CullDistance",
6800          "value" : 33,
6801          "capabilities" : [ "Shader" ]
6802        },
6803        {
6804          "enumerant" : "ImageCubeArray",
6805          "value" : 34,
6806          "capabilities" : [ "SampledCubeArray" ]
6807        },
6808        {
6809          "enumerant" : "SampleRateShading",
6810          "value" : 35,
6811          "capabilities" : [ "Shader" ]
6812        },
6813        {
6814          "enumerant" : "ImageRect",
6815          "value" : 36,
6816          "capabilities" : [ "SampledRect" ]
6817        },
6818        {
6819          "enumerant" : "SampledRect",
6820          "value" : 37,
6821          "capabilities" : [ "Shader" ]
6822        },
6823        {
6824          "enumerant" : "GenericPointer",
6825          "value" : 38,
6826          "capabilities" : [ "Addresses" ]
6827        },
6828        {
6829          "enumerant" : "Int8",
6830          "value" : 39
6831        },
6832        {
6833          "enumerant" : "InputAttachment",
6834          "value" : 40,
6835          "capabilities" : [ "Shader" ]
6836        },
6837        {
6838          "enumerant" : "SparseResidency",
6839          "value" : 41,
6840          "capabilities" : [ "Shader" ]
6841        },
6842        {
6843          "enumerant" : "MinLod",
6844          "value" : 42,
6845          "capabilities" : [ "Shader" ]
6846        },
6847        {
6848          "enumerant" : "Sampled1D",
6849          "value" : 43
6850        },
6851        {
6852          "enumerant" : "Image1D",
6853          "value" : 44,
6854          "capabilities" : [ "Sampled1D" ]
6855        },
6856        {
6857          "enumerant" : "SampledCubeArray",
6858          "value" : 45,
6859          "capabilities" : [ "Shader" ]
6860        },
6861        {
6862          "enumerant" : "SampledBuffer",
6863          "value" : 46
6864        },
6865        {
6866          "enumerant" : "ImageBuffer",
6867          "value" : 47,
6868          "capabilities" : [ "SampledBuffer" ]
6869        },
6870        {
6871          "enumerant" : "ImageMSArray",
6872          "value" : 48,
6873          "capabilities" : [ "Shader" ]
6874        },
6875        {
6876          "enumerant" : "StorageImageExtendedFormats",
6877          "value" : 49,
6878          "capabilities" : [ "Shader" ]
6879        },
6880        {
6881          "enumerant" : "ImageQuery",
6882          "value" : 50,
6883          "capabilities" : [ "Shader" ]
6884        },
6885        {
6886          "enumerant" : "DerivativeControl",
6887          "value" : 51,
6888          "capabilities" : [ "Shader" ]
6889        },
6890        {
6891          "enumerant" : "InterpolationFunction",
6892          "value" : 52,
6893          "capabilities" : [ "Shader" ]
6894        },
6895        {
6896          "enumerant" : "TransformFeedback",
6897          "value" : 53,
6898          "capabilities" : [ "Shader" ]
6899        },
6900        {
6901          "enumerant" : "GeometryStreams",
6902          "value" : 54,
6903          "capabilities" : [ "Geometry" ]
6904        },
6905        {
6906          "enumerant" : "StorageImageReadWithoutFormat",
6907          "value" : 55,
6908          "capabilities" : [ "Shader" ]
6909        },
6910        {
6911          "enumerant" : "StorageImageWriteWithoutFormat",
6912          "value" : 56,
6913          "capabilities" : [ "Shader" ]
6914        },
6915        {
6916          "enumerant" : "MultiViewport",
6917          "value" : 57,
6918          "capabilities" : [ "Geometry" ]
6919        },
6920        {
6921          "enumerant" : "SubgroupDispatch",
6922          "value" : 58,
6923          "capabilities" : [ "DeviceEnqueue" ],
6924          "version" : "1.1"
6925        },
6926        {
6927          "enumerant" : "NamedBarrier",
6928          "value" : 59,
6929          "capabilities" : [ "Kernel" ],
6930          "version" : "1.1"
6931        },
6932        {
6933          "enumerant" : "PipeStorage",
6934          "value" : 60,
6935          "capabilities" : [ "Pipes" ],
6936          "version" : "1.1"
6937        },
6938        {
6939          "enumerant" : "GroupNonUniform",
6940          "value" : 61,
6941          "version" : "1.3"
6942        },
6943        {
6944          "enumerant" : "GroupNonUniformVote",
6945          "value" : 62,
6946          "capabilities" : [ "GroupNonUniform" ],
6947          "version" : "1.3"
6948        },
6949        {
6950          "enumerant" : "GroupNonUniformArithmetic",
6951          "value" : 63,
6952          "capabilities" : [ "GroupNonUniform" ],
6953          "version" : "1.3"
6954        },
6955        {
6956          "enumerant" : "GroupNonUniformBallot",
6957          "value" : 64,
6958          "capabilities" : [ "GroupNonUniform" ],
6959          "version" : "1.3"
6960        },
6961        {
6962          "enumerant" : "GroupNonUniformShuffle",
6963          "value" : 65,
6964          "capabilities" : [ "GroupNonUniform" ],
6965          "version" : "1.3"
6966        },
6967        {
6968          "enumerant" : "GroupNonUniformShuffleRelative",
6969          "value" : 66,
6970          "capabilities" : [ "GroupNonUniform" ],
6971          "version" : "1.3"
6972        },
6973        {
6974          "enumerant" : "GroupNonUniformClustered",
6975          "value" : 67,
6976          "capabilities" : [ "GroupNonUniform" ],
6977          "version" : "1.3"
6978        },
6979        {
6980          "enumerant" : "GroupNonUniformQuad",
6981          "value" : 68,
6982          "capabilities" : [ "GroupNonUniform" ],
6983          "version" : "1.3"
6984        },
6985        {
6986          "enumerant" : "SubgroupBallotKHR",
6987          "value" : 4423,
6988          "extensions" : [ "SPV_KHR_shader_ballot" ],
6989          "version" : "None"
6990        },
6991        {
6992          "enumerant" : "DrawParameters",
6993          "value" : 4427,
6994          "capabilities" : [ "Shader" ],
6995          "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
6996          "version" : "1.3"
6997        },
6998        {
6999          "enumerant" : "SubgroupVoteKHR",
7000          "value" : 4431,
7001          "extensions" : [ "SPV_KHR_subgroup_vote" ],
7002          "version" : "None"
7003        },
7004        {
7005          "enumerant" : "StorageBuffer16BitAccess",
7006          "value" : 4433,
7007          "extensions" : [ "SPV_KHR_16bit_storage" ],
7008          "version" : "1.3"
7009        },
7010        {
7011          "enumerant" : "StorageUniformBufferBlock16",
7012          "value" : 4433,
7013          "extensions" : [ "SPV_KHR_16bit_storage" ],
7014          "version" : "1.3"
7015        },
7016        {
7017          "enumerant" : "UniformAndStorageBuffer16BitAccess",
7018          "value" : 4434,
7019          "capabilities" : [
7020            "StorageBuffer16BitAccess",
7021            "StorageUniformBufferBlock16"
7022          ],
7023          "extensions" : [ "SPV_KHR_16bit_storage" ],
7024          "version" : "1.3"
7025        },
7026        {
7027          "enumerant" : "StorageUniform16",
7028          "value" : 4434,
7029          "capabilities" : [
7030            "StorageBuffer16BitAccess",
7031            "StorageUniformBufferBlock16"
7032          ],
7033          "extensions" : [ "SPV_KHR_16bit_storage" ],
7034          "version" : "1.3"
7035        },
7036        {
7037          "enumerant" : "StoragePushConstant16",
7038          "value" : 4435,
7039          "extensions" : [ "SPV_KHR_16bit_storage" ],
7040          "version" : "1.3"
7041        },
7042        {
7043          "enumerant" : "StorageInputOutput16",
7044          "value" : 4436,
7045          "extensions" : [ "SPV_KHR_16bit_storage" ],
7046          "version" : "1.3"
7047        },
7048        {
7049          "enumerant" : "DeviceGroup",
7050          "value" : 4437,
7051          "extensions" : [ "SPV_KHR_device_group" ],
7052          "version" : "1.3"
7053        },
7054        {
7055          "enumerant" : "MultiView",
7056          "value" : 4439,
7057          "capabilities" : [ "Shader" ],
7058          "extensions" : [ "SPV_KHR_multiview" ],
7059          "version" : "1.3"
7060        },
7061        {
7062          "enumerant" : "VariablePointersStorageBuffer",
7063          "value" : 4441,
7064          "capabilities" : [ "Shader" ],
7065          "extensions" : [ "SPV_KHR_variable_pointers" ],
7066          "version" : "1.3"
7067        },
7068        {
7069          "enumerant" : "VariablePointers",
7070          "value" : 4442,
7071          "capabilities" : [ "VariablePointersStorageBuffer" ],
7072          "extensions" : [ "SPV_KHR_variable_pointers" ],
7073          "version" : "1.3"
7074        },
7075        {
7076          "enumerant" : "AtomicStorageOps",
7077          "value" : 4445,
7078          "extensions" : [ "SPV_KHR_shader_atomic_counter_ops" ],
7079          "version" : "None"
7080        },
7081        {
7082          "enumerant" : "SampleMaskPostDepthCoverage",
7083          "value" : 4447,
7084          "extensions" : [ "SPV_KHR_post_depth_coverage" ],
7085          "version" : "None"
7086        },
7087        {
7088          "enumerant" : "StorageBuffer8BitAccess",
7089          "value" : 4448,
7090          "extensions" : [ "SPV_KHR_8bit_storage" ],
7091          "version" : "None"
7092        },
7093        {
7094          "enumerant" : "UniformAndStorageBuffer8BitAccess",
7095          "value" : 4449,
7096          "capabilities" : [ "StorageBuffer8BitAccess" ],
7097          "extensions" : [ "SPV_KHR_8bit_storage" ],
7098          "version" : "None"
7099        },
7100        {
7101          "enumerant" : "StoragePushConstant8",
7102          "value" : 4450,
7103          "extensions" : [ "SPV_KHR_8bit_storage" ],
7104          "version" : "None"
7105        },
7106        {
7107          "enumerant" : "DenormPreserve",
7108          "value" : 4464,
7109          "extensions" : [ "SPV_KHR_float_controls" ],
7110          "version" : "None"
7111        },
7112        {
7113          "enumerant" : "DenormFlushToZero",
7114          "value" : 4465,
7115          "extensions" : [ "SPV_KHR_float_controls" ],
7116          "version" : "None"
7117        },
7118        {
7119          "enumerant" : "SignedZeroInfNanPreserve",
7120          "value" : 4466,
7121          "extensions" : [ "SPV_KHR_float_controls" ],
7122          "version" : "None"
7123        },
7124        {
7125          "enumerant" : "RoundingModeRTE",
7126          "value" : 4467,
7127          "extensions" : [ "SPV_KHR_float_controls" ],
7128          "version" : "None"
7129        },
7130        {
7131          "enumerant" : "RoundingModeRTZ",
7132          "value" : 4468,
7133          "extensions" : [ "SPV_KHR_float_controls" ],
7134          "version" : "None"
7135        },
7136        {
7137          "enumerant" : "Float16ImageAMD",
7138          "value" : 5008,
7139          "capabilities" : [ "Shader" ],
7140          "extensions" : [ "SPV_AMD_gpu_shader_half_float_fetch" ],
7141          "version" : "None"
7142        },
7143        {
7144          "enumerant" : "ImageGatherBiasLodAMD",
7145          "value" : 5009,
7146          "capabilities" : [ "Shader" ],
7147          "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ],
7148          "version" : "None"
7149        },
7150        {
7151          "enumerant" : "FragmentMaskAMD",
7152          "value" : 5010,
7153          "capabilities" : [ "Shader" ],
7154          "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
7155          "version" : "None"
7156        },
7157        {
7158          "enumerant" : "StencilExportEXT",
7159          "value" : 5013,
7160          "capabilities" : [ "Shader" ],
7161          "extensions" : [ "SPV_EXT_shader_stencil_export" ],
7162          "version" : "None"
7163        },
7164        {
7165          "enumerant" : "ImageReadWriteLodAMD",
7166          "value" : 5015,
7167          "capabilities" : [ "Shader" ],
7168          "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ],
7169          "version" : "None"
7170        },
7171        {
7172          "enumerant" : "SampleMaskOverrideCoverageNV",
7173          "value" : 5249,
7174          "capabilities" : [ "SampleRateShading" ],
7175          "extensions" : [ "SPV_NV_sample_mask_override_coverage" ],
7176          "version" : "None"
7177        },
7178        {
7179          "enumerant" : "GeometryShaderPassthroughNV",
7180          "value" : 5251,
7181          "capabilities" : [ "Geometry" ],
7182          "extensions" : [ "SPV_NV_geometry_shader_passthrough" ],
7183          "version" : "None"
7184        },
7185        {
7186          "enumerant" : "ShaderViewportIndexLayerEXT",
7187          "value" : 5254,
7188          "capabilities" : [ "MultiViewport" ],
7189          "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ],
7190          "version" : "None"
7191        },
7192        {
7193          "enumerant" : "ShaderViewportIndexLayerNV",
7194          "value" : 5254,
7195          "capabilities" : [ "MultiViewport" ],
7196          "extensions" : [ "SPV_NV_viewport_array2" ],
7197          "version" : "None"
7198        },
7199        {
7200          "enumerant" : "ShaderViewportMaskNV",
7201          "value" : 5255,
7202          "capabilities" : [ "ShaderViewportIndexLayerNV" ],
7203          "extensions" : [ "SPV_NV_viewport_array2" ],
7204          "version" : "None"
7205        },
7206        {
7207          "enumerant" : "ShaderStereoViewNV",
7208          "value" : 5259,
7209          "capabilities" : [ "ShaderViewportMaskNV" ],
7210          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
7211          "version" : "None"
7212        },
7213        {
7214          "enumerant" : "PerViewAttributesNV",
7215          "value" : 5260,
7216          "capabilities" : [ "MultiView" ],
7217          "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ],
7218          "version" : "None"
7219        },
7220        {
7221          "enumerant" : "FragmentFullyCoveredEXT",
7222          "value" : 5265,
7223          "capabilities" : [ "Shader" ],
7224          "extensions" : [ "SPV_EXT_fragment_fully_covered" ],
7225          "version" : "None"
7226        },
7227        {
7228          "enumerant" : "MeshShadingNV",
7229          "value" : 5266,
7230          "capabilities" : [ "Shader" ],
7231          "extensions" : [ "SPV_NV_mesh_shader" ],
7232          "version" : "None"
7233        },
7234        {
7235          "enumerant" : "ShaderNonUniformEXT",
7236          "value" : 5301,
7237          "capabilities" : [ "Shader" ],
7238          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7239          "version" : "None"
7240        },
7241        {
7242          "enumerant" : "RuntimeDescriptorArrayEXT",
7243          "value" : 5302,
7244          "capabilities" : [ "Shader" ],
7245          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7246          "version" : "None"
7247        },
7248        {
7249          "enumerant" : "InputAttachmentArrayDynamicIndexingEXT",
7250          "value" : 5303,
7251          "capabilities" : [ "InputAttachment" ],
7252          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7253          "version" : "None"
7254        },
7255        {
7256          "enumerant" : "UniformTexelBufferArrayDynamicIndexingEXT",
7257          "value" : 5304,
7258          "capabilities" : [ "SampledBuffer" ],
7259          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7260          "version" : "None"
7261        },
7262        {
7263          "enumerant" : "StorageTexelBufferArrayDynamicIndexingEXT",
7264          "value" : 5305,
7265          "capabilities" : [ "ImageBuffer" ],
7266          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7267          "version" : "None"
7268        },
7269        {
7270          "enumerant" : "UniformBufferArrayNonUniformIndexingEXT",
7271          "value" : 5306,
7272          "capabilities" : [ "ShaderNonUniformEXT" ],
7273          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7274          "version" : "None"
7275        },
7276        {
7277          "enumerant" : "SampledImageArrayNonUniformIndexingEXT",
7278          "value" : 5307,
7279          "capabilities" : [ "ShaderNonUniformEXT" ],
7280          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7281          "version" : "None"
7282        },
7283        {
7284          "enumerant" : "StorageBufferArrayNonUniformIndexingEXT",
7285          "value" : 5308,
7286          "capabilities" : [ "ShaderNonUniformEXT" ],
7287          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7288          "version" : "None"
7289        },
7290        {
7291          "enumerant" : "StorageImageArrayNonUniformIndexingEXT",
7292          "value" : 5309,
7293          "capabilities" : [ "ShaderNonUniformEXT" ],
7294          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7295          "version" : "None"
7296        },
7297        {
7298          "enumerant" : "InputAttachmentArrayNonUniformIndexingEXT",
7299          "value" : 5310,
7300          "capabilities" : [ "InputAttachment", "ShaderNonUniformEXT" ],
7301          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7302          "version" : "None"
7303        },
7304        {
7305          "enumerant" : "UniformTexelBufferArrayNonUniformIndexingEXT",
7306          "value" : 5311,
7307          "capabilities" : [ "SampledBuffer", "ShaderNonUniformEXT" ],
7308          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7309          "version" : "None"
7310        },
7311        {
7312          "enumerant" : "StorageTexelBufferArrayNonUniformIndexingEXT",
7313          "value" : 5312,
7314          "capabilities" : [ "ImageBuffer", "ShaderNonUniformEXT" ],
7315          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7316          "version" : "None"
7317        },
7318        {
7319          "enumerant" : "RayTracingNV",
7320          "value" : 5340,
7321          "capabilities" : [ "Shader" ],
7322          "extensions" : [ "SPV_NV_ray_tracing" ],
7323          "version" : "None"
7324        },
7325        {
7326          "enumerant" : "SubgroupShuffleINTEL",
7327          "value" : 5568,
7328          "extensions" : [ "SPV_INTEL_subgroups" ],
7329          "version" : "None"
7330        },
7331        {
7332          "enumerant" : "SubgroupBufferBlockIOINTEL",
7333          "value" : 5569,
7334          "extensions" : [ "SPV_INTEL_subgroups" ],
7335          "version" : "None"
7336        },
7337        {
7338          "enumerant" : "SubgroupImageBlockIOINTEL",
7339          "value" : 5570,
7340          "extensions" : [ "SPV_INTEL_subgroups" ],
7341          "version" : "None"
7342        },
7343        {
7344          "enumerant" : "GroupNonUniformPartitionedNV",
7345          "value" : 5297,
7346          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
7347          "version" : "None"
7348        },
7349        {
7350          "enumerant" : "VulkanMemoryModelKHR",
7351          "value" : 5345,
7352          "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
7353          "version" : "None"
7354        },
7355        {
7356          "enumerant" : "VulkanMemoryModelDeviceScopeKHR",
7357          "value" : 5346,
7358          "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
7359          "version" : "None"
7360        },
7361        {
7362          "enumerant" : "ImageFootprintNV",
7363          "value" : 5282,
7364          "extensions" : [ "SPV_NV_shader_image_footprint" ],
7365          "version" : "None"
7366        },
7367        {
7368          "enumerant" : "FragmentBarycentricNV",
7369          "value" : 5284,
7370          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
7371          "version" : "None"
7372        },
7373        {
7374          "enumerant" : "ComputeDerivativeGroupQuadsNV",
7375          "value" : 5288,
7376          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
7377          "version" : "None"
7378        },
7379        {
7380          "enumerant" : "ComputeDerivativeGroupLinearNV",
7381          "value" : 5350,
7382          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
7383          "version" : "None"
7384        },
7385        {
7386          "enumerant" : "FragmentDensityEXT",
7387          "value" : 5291,
7388          "capabilities" : [ "Shader" ],
7389          "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ],
7390          "version" : "None"
7391        },
7392        {
7393          "enumerant" : "ShadingRateNV",
7394          "value" : 5291,
7395          "capabilities" : [ "Shader" ],
7396          "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
7397          "version" : "None"
7398        }
7399      ]
7400    },
7401    {
7402      "category" : "Id",
7403      "kind" : "IdResultType",
7404      "doc" : "Reference to an <id> representing the result's type of the enclosing instruction"
7405    },
7406    {
7407      "category" : "Id",
7408      "kind" : "IdResult",
7409      "doc" : "Definition of an <id> representing the result of the enclosing instruction"
7410    },
7411    {
7412      "category" : "Id",
7413      "kind" : "IdMemorySemantics",
7414      "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the MemorySemantics operand kind"
7415    },
7416    {
7417      "category" : "Id",
7418      "kind" : "IdScope",
7419      "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the Scope operand kind"
7420    },
7421    {
7422      "category" : "Id",
7423      "kind" : "IdRef",
7424      "doc" : "Reference to an <id>"
7425    },
7426    {
7427      "category" : "Literal",
7428      "kind" : "LiteralInteger",
7429      "doc" : "An integer consuming one or more words"
7430    },
7431    {
7432      "category" : "Literal",
7433      "kind" : "LiteralString",
7434      "doc" : "A null-terminated stream of characters consuming an integral number of words"
7435    },
7436    {
7437      "category" : "Literal",
7438      "kind" : "LiteralContextDependentNumber",
7439      "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction"
7440    },
7441    {
7442      "category" : "Literal",
7443      "kind" : "LiteralExtInstInteger",
7444      "doc" : "A 32-bit unsigned integer indicating which instruction to use and determining the layout of following operands (for OpExtInst)"
7445    },
7446    {
7447      "category" : "Literal",
7448      "kind" : "LiteralSpecConstantOpInteger",
7449      "doc" : "An opcode indicating the operation to be performed and determining the layout of following operands (for OpSpecConstantOp)"
7450    },
7451    {
7452      "category" : "Composite",
7453      "kind" : "PairLiteralIntegerIdRef",
7454      "bases" : [ "LiteralInteger", "IdRef" ]
7455    },
7456    {
7457      "category" : "Composite",
7458      "kind" : "PairIdRefLiteralInteger",
7459      "bases" : [ "IdRef", "LiteralInteger" ]
7460    },
7461    {
7462      "category" : "Composite",
7463      "kind" : "PairIdRefIdRef",
7464      "bases" : [ "IdRef", "IdRef" ]
7465    }
7466  ]
7467}
7468