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