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