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