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 "version" : 100, 28 "revision" : 2, 29 "instructions" : [ 30 { 31 "opname" : "Round", 32 "opcode" : 1, 33 "operands" : [ 34 { "kind" : "IdRef", "name" : "'x'" } 35 ] 36 }, 37 { 38 "opname" : "RoundEven", 39 "opcode" : 2, 40 "operands" : [ 41 { "kind" : "IdRef", "name" : "'x'" } 42 ] 43 }, 44 { 45 "opname" : "Trunc", 46 "opcode" : 3, 47 "operands" : [ 48 { "kind" : "IdRef", "name" : "'x'" } 49 ] 50 }, 51 { 52 "opname" : "FAbs", 53 "opcode" : 4, 54 "operands" : [ 55 { "kind" : "IdRef", "name" : "'x'" } 56 ] 57 }, 58 { 59 "opname" : "SAbs", 60 "opcode" : 5, 61 "operands" : [ 62 { "kind" : "IdRef", "name" : "'x'" } 63 ] 64 }, 65 { 66 "opname" : "FSign", 67 "opcode" : 6, 68 "operands" : [ 69 { "kind" : "IdRef", "name" : "'x'" } 70 ] 71 }, 72 { 73 "opname" : "SSign", 74 "opcode" : 7, 75 "operands" : [ 76 { "kind" : "IdRef", "name" : "'x'" } 77 ] 78 }, 79 { 80 "opname" : "Floor", 81 "opcode" : 8, 82 "operands" : [ 83 { "kind" : "IdRef", "name" : "'x'" } 84 ] 85 }, 86 { 87 "opname" : "Ceil", 88 "opcode" : 9, 89 "operands" : [ 90 { "kind" : "IdRef", "name" : "'x'" } 91 ] 92 }, 93 { 94 "opname" : "Fract", 95 "opcode" : 10, 96 "operands" : [ 97 { "kind" : "IdRef", "name" : "'x'" } 98 ] 99 }, 100 { 101 "opname" : "Radians", 102 "opcode" : 11, 103 "operands" : [ 104 { "kind" : "IdRef", "name" : "'degrees'" } 105 ] 106 }, 107 { 108 "opname" : "Degrees", 109 "opcode" : 12, 110 "operands" : [ 111 { "kind" : "IdRef", "name" : "'radians'" } 112 ] 113 }, 114 { 115 "opname" : "Sin", 116 "opcode" : 13, 117 "operands" : [ 118 { "kind" : "IdRef", "name" : "'x'" } 119 ] 120 }, 121 { 122 "opname" : "Cos", 123 "opcode" : 14, 124 "operands" : [ 125 { "kind" : "IdRef", "name" : "'x'" } 126 ] 127 }, 128 { 129 "opname" : "Tan", 130 "opcode" : 15, 131 "operands" : [ 132 { "kind" : "IdRef", "name" : "'x'" } 133 ] 134 }, 135 { 136 "opname" : "Asin", 137 "opcode" : 16, 138 "operands" : [ 139 { "kind" : "IdRef", "name" : "'x'" } 140 ] 141 }, 142 { 143 "opname" : "Acos", 144 "opcode" : 17, 145 "operands" : [ 146 { "kind" : "IdRef", "name" : "'x'" } 147 ] 148 }, 149 { 150 "opname" : "Atan", 151 "opcode" : 18, 152 "operands" : [ 153 { "kind" : "IdRef", "name" : "'y_over_x'" } 154 ] 155 }, 156 { 157 "opname" : "Sinh", 158 "opcode" : 19, 159 "operands" : [ 160 { "kind" : "IdRef", "name" : "'x'" } 161 ] 162 }, 163 { 164 "opname" : "Cosh", 165 "opcode" : 20, 166 "operands" : [ 167 { "kind" : "IdRef", "name" : "'x'" } 168 ] 169 }, 170 { 171 "opname" : "Tanh", 172 "opcode" : 21, 173 "operands" : [ 174 { "kind" : "IdRef", "name" : "'x'" } 175 ] 176 }, 177 { 178 "opname" : "Asinh", 179 "opcode" : 22, 180 "operands" : [ 181 { "kind" : "IdRef", "name" : "'x'" } 182 ] 183 }, 184 { 185 "opname" : "Acosh", 186 "opcode" : 23, 187 "operands" : [ 188 { "kind" : "IdRef", "name" : "'x'" } 189 ] 190 }, 191 { 192 "opname" : "Atanh", 193 "opcode" : 24, 194 "operands" : [ 195 { "kind" : "IdRef", "name" : "'x'" } 196 ] 197 }, 198 { 199 "opname" : "Atan2", 200 "opcode" : 25, 201 "operands" : [ 202 { "kind" : "IdRef", "name" : "'y'" }, 203 { "kind" : "IdRef", "name" : "'x'" } 204 ] 205 }, 206 { 207 "opname" : "Pow", 208 "opcode" : 26, 209 "operands" : [ 210 { "kind" : "IdRef", "name" : "'x'" }, 211 { "kind" : "IdRef", "name" : "'y'" } 212 ] 213 }, 214 { 215 "opname" : "Exp", 216 "opcode" : 27, 217 "operands" : [ 218 { "kind" : "IdRef", "name" : "'x'" } 219 ] 220 }, 221 { 222 "opname" : "Log", 223 "opcode" : 28, 224 "operands" : [ 225 { "kind" : "IdRef", "name" : "'x'" } 226 ] 227 }, 228 { 229 "opname" : "Exp2", 230 "opcode" : 29, 231 "operands" : [ 232 { "kind" : "IdRef", "name" : "'x'" } 233 ] 234 }, 235 { 236 "opname" : "Log2", 237 "opcode" : 30, 238 "operands" : [ 239 { "kind" : "IdRef", "name" : "'x'" } 240 ] 241 }, 242 { 243 "opname" : "Sqrt", 244 "opcode" : 31, 245 "operands" : [ 246 { "kind" : "IdRef", "name" : "'x'" } 247 ] 248 }, 249 { 250 "opname" : "InverseSqrt", 251 "opcode" : 32, 252 "operands" : [ 253 { "kind" : "IdRef", "name" : "'x'" } 254 ] 255 }, 256 { 257 "opname" : "Determinant", 258 "opcode" : 33, 259 "operands" : [ 260 { "kind" : "IdRef", "name" : "'x'" } 261 ] 262 }, 263 { 264 "opname" : "MatrixInverse", 265 "opcode" : 34, 266 "operands" : [ 267 { "kind" : "IdRef", "name" : "'x'" } 268 ] 269 }, 270 { 271 "opname" : "Modf", 272 "opcode" : 35, 273 "operands" : [ 274 { "kind" : "IdRef", "name" : "'x'" }, 275 { "kind" : "IdRef", "name" : "'i'" } 276 ] 277 }, 278 { 279 "opname" : "ModfStruct", 280 "opcode" : 36, 281 "operands" : [ 282 { "kind" : "IdRef", "name" : "'x'" } 283 ] 284 }, 285 { 286 "opname" : "FMin", 287 "opcode" : 37, 288 "operands" : [ 289 { "kind" : "IdRef", "name" : "'x'" }, 290 { "kind" : "IdRef", "name" : "'y'" } 291 ] 292 }, 293 { 294 "opname" : "UMin", 295 "opcode" : 38, 296 "operands" : [ 297 { "kind" : "IdRef", "name" : "'x'" }, 298 { "kind" : "IdRef", "name" : "'y'" } 299 ] 300 }, 301 { 302 "opname" : "SMin", 303 "opcode" : 39, 304 "operands" : [ 305 { "kind" : "IdRef", "name" : "'x'" }, 306 { "kind" : "IdRef", "name" : "'y'" } 307 ] 308 }, 309 { 310 "opname" : "FMax", 311 "opcode" : 40, 312 "operands" : [ 313 { "kind" : "IdRef", "name" : "'x'" }, 314 { "kind" : "IdRef", "name" : "'y'" } 315 ] 316 }, 317 { 318 "opname" : "UMax", 319 "opcode" : 41, 320 "operands" : [ 321 { "kind" : "IdRef", "name" : "'x'" }, 322 { "kind" : "IdRef", "name" : "'y'" } 323 ] 324 }, 325 { 326 "opname" : "SMax", 327 "opcode" : 42, 328 "operands" : [ 329 { "kind" : "IdRef", "name" : "'x'" }, 330 { "kind" : "IdRef", "name" : "'y'" } 331 ] 332 }, 333 { 334 "opname" : "FClamp", 335 "opcode" : 43, 336 "operands" : [ 337 { "kind" : "IdRef", "name" : "'x'" }, 338 { "kind" : "IdRef", "name" : "'minVal'" }, 339 { "kind" : "IdRef", "name" : "'maxVal'" } 340 ] 341 }, 342 { 343 "opname" : "UClamp", 344 "opcode" : 44, 345 "operands" : [ 346 { "kind" : "IdRef", "name" : "'x'" }, 347 { "kind" : "IdRef", "name" : "'minVal'" }, 348 { "kind" : "IdRef", "name" : "'maxVal'" } 349 ] 350 }, 351 { 352 "opname" : "SClamp", 353 "opcode" : 45, 354 "operands" : [ 355 { "kind" : "IdRef", "name" : "'x'" }, 356 { "kind" : "IdRef", "name" : "'minVal'" }, 357 { "kind" : "IdRef", "name" : "'maxVal'" } 358 ] 359 }, 360 { 361 "opname" : "FMix", 362 "opcode" : 46, 363 "operands" : [ 364 { "kind" : "IdRef", "name" : "'x'" }, 365 { "kind" : "IdRef", "name" : "'y'" }, 366 { "kind" : "IdRef", "name" : "'a'" } 367 ] 368 }, 369 { 370 "opname" : "IMix", 371 "opcode" : 47, 372 "operands" : [ 373 { "kind" : "IdRef", "name" : "'x'" }, 374 { "kind" : "IdRef", "name" : "'y'" }, 375 { "kind" : "IdRef", "name" : "'a'" } 376 ] 377 }, 378 { 379 "opname" : "Step", 380 "opcode" : 48, 381 "operands" : [ 382 { "kind" : "IdRef", "name" : "'edge'" }, 383 { "kind" : "IdRef", "name" : "'x'" } 384 ] 385 }, 386 { 387 "opname" : "SmoothStep", 388 "opcode" : 49, 389 "operands" : [ 390 { "kind" : "IdRef", "name" : "'edge0'" }, 391 { "kind" : "IdRef", "name" : "'edge1'" }, 392 { "kind" : "IdRef", "name" : "'x'" } 393 ] 394 }, 395 { 396 "opname" : "Fma", 397 "opcode" : 50, 398 "operands" : [ 399 { "kind" : "IdRef", "name" : "'a'" }, 400 { "kind" : "IdRef", "name" : "'b'" }, 401 { "kind" : "IdRef", "name" : "'c'" } 402 ] 403 }, 404 { 405 "opname" : "Frexp", 406 "opcode" : 51, 407 "operands" : [ 408 { "kind" : "IdRef", "name" : "'x'" }, 409 { "kind" : "IdRef", "name" : "'exp'" } 410 ] 411 }, 412 { 413 "opname" : "FrexpStruct", 414 "opcode" : 52, 415 "operands" : [ 416 { "kind" : "IdRef", "name" : "'x'" } 417 ] 418 }, 419 { 420 "opname" : "Ldexp", 421 "opcode" : 53, 422 "operands" : [ 423 { "kind" : "IdRef", "name" : "'x'" }, 424 { "kind" : "IdRef", "name" : "'exp'" } 425 ] 426 }, 427 { 428 "opname" : "PackSnorm4x8", 429 "opcode" : 54, 430 "operands" : [ 431 { "kind" : "IdRef", "name" : "'v'" } 432 ] 433 }, 434 { 435 "opname" : "PackUnorm4x8", 436 "opcode" : 55, 437 "operands" : [ 438 { "kind" : "IdRef", "name" : "'v'" } 439 ] 440 }, 441 { 442 "opname" : "PackSnorm2x16", 443 "opcode" : 56, 444 "operands" : [ 445 { "kind" : "IdRef", "name" : "'v'" } 446 ] 447 }, 448 { 449 "opname" : "PackUnorm2x16", 450 "opcode" : 57, 451 "operands" : [ 452 { "kind" : "IdRef", "name" : "'v'" } 453 ] 454 }, 455 { 456 "opname" : "PackHalf2x16", 457 "opcode" : 58, 458 "operands" : [ 459 { "kind" : "IdRef", "name" : "'v'" } 460 ] 461 }, 462 { 463 "opname" : "PackDouble2x32", 464 "opcode" : 59, 465 "operands" : [ 466 { "kind" : "IdRef", "name" : "'v'" } 467 ], 468 "capabilities" : [ "Float64" ] 469 }, 470 { 471 "opname" : "UnpackSnorm2x16", 472 "opcode" : 60, 473 "operands" : [ 474 { "kind" : "IdRef", "name" : "'p'" } 475 ] 476 }, 477 { 478 "opname" : "UnpackUnorm2x16", 479 "opcode" : 61, 480 "operands" : [ 481 { "kind" : "IdRef", "name" : "'p'" } 482 ] 483 }, 484 { 485 "opname" : "UnpackHalf2x16", 486 "opcode" : 62, 487 "operands" : [ 488 { "kind" : "IdRef", "name" : "'v'" } 489 ] 490 }, 491 { 492 "opname" : "UnpackSnorm4x8", 493 "opcode" : 63, 494 "operands" : [ 495 { "kind" : "IdRef", "name" : "'p'" } 496 ] 497 }, 498 { 499 "opname" : "UnpackUnorm4x8", 500 "opcode" : 64, 501 "operands" : [ 502 { "kind" : "IdRef", "name" : "'p'" } 503 ] 504 }, 505 { 506 "opname" : "UnpackDouble2x32", 507 "opcode" : 65, 508 "operands" : [ 509 { "kind" : "IdRef", "name" : "'v'" } 510 ], 511 "capabilities" : [ "Float64" ] 512 }, 513 { 514 "opname" : "Length", 515 "opcode" : 66, 516 "operands" : [ 517 { "kind" : "IdRef", "name" : "'x'" } 518 ] 519 }, 520 { 521 "opname" : "Distance", 522 "opcode" : 67, 523 "operands" : [ 524 { "kind" : "IdRef", "name" : "'p0'" }, 525 { "kind" : "IdRef", "name" : "'p1'" } 526 ] 527 }, 528 { 529 "opname" : "Cross", 530 "opcode" : 68, 531 "operands" : [ 532 { "kind" : "IdRef", "name" : "'x'" }, 533 { "kind" : "IdRef", "name" : "'y'" } 534 ] 535 }, 536 { 537 "opname" : "Normalize", 538 "opcode" : 69, 539 "operands" : [ 540 { "kind" : "IdRef", "name" : "'x'" } 541 ] 542 }, 543 { 544 "opname" : "FaceForward", 545 "opcode" : 70, 546 "operands" : [ 547 { "kind" : "IdRef", "name" : "'N'" }, 548 { "kind" : "IdRef", "name" : "'I'" }, 549 { "kind" : "IdRef", "name" : "'Nref'" } 550 ] 551 }, 552 { 553 "opname" : "Reflect", 554 "opcode" : 71, 555 "operands" : [ 556 { "kind" : "IdRef", "name" : "'I'" }, 557 { "kind" : "IdRef", "name" : "'N'" } 558 ] 559 }, 560 { 561 "opname" : "Refract", 562 "opcode" : 72, 563 "operands" : [ 564 { "kind" : "IdRef", "name" : "'I'" }, 565 { "kind" : "IdRef", "name" : "'N'" }, 566 { "kind" : "IdRef", "name" : "'eta'" } 567 ] 568 }, 569 { 570 "opname" : "FindILsb", 571 "opcode" : 73, 572 "operands" : [ 573 { "kind" : "IdRef", "name" : "'Value'" } 574 ] 575 }, 576 { 577 "opname" : "FindSMsb", 578 "opcode" : 74, 579 "operands" : [ 580 { "kind" : "IdRef", "name" : "'Value'" } 581 ] 582 }, 583 { 584 "opname" : "FindUMsb", 585 "opcode" : 75, 586 "operands" : [ 587 { "kind" : "IdRef", "name" : "'Value'" } 588 ] 589 }, 590 { 591 "opname" : "InterpolateAtCentroid", 592 "opcode" : 76, 593 "operands" : [ 594 { "kind" : "IdRef", "name" : "'interpolant'" } 595 ], 596 "capabilities" : [ "InterpolationFunction" ] 597 }, 598 { 599 "opname" : "InterpolateAtSample", 600 "opcode" : 77, 601 "operands" : [ 602 { "kind" : "IdRef", "name" : "'interpolant'" }, 603 { "kind" : "IdRef", "name" : "'sample'" } 604 ], 605 "capabilities" : [ "InterpolationFunction" ] 606 }, 607 { 608 "opname" : "InterpolateAtOffset", 609 "opcode" : 78, 610 "operands" : [ 611 { "kind" : "IdRef", "name" : "'interpolant'" }, 612 { "kind" : "IdRef", "name" : "'offset'" } 613 ], 614 "capabilities" : [ "InterpolationFunction" ] 615 }, 616 { 617 "opname" : "NMin", 618 "opcode" : 79, 619 "operands" : [ 620 { "kind" : "IdRef", "name" : "'x'" }, 621 { "kind" : "IdRef", "name" : "'y'" } 622 ] 623 }, 624 { 625 "opname" : "NMax", 626 "opcode" : 80, 627 "operands" : [ 628 { "kind" : "IdRef", "name" : "'x'" }, 629 { "kind" : "IdRef", "name" : "'y'" } 630 ] 631 }, 632 { 633 "opname" : "NClamp", 634 "opcode" : 81, 635 "operands" : [ 636 { "kind" : "IdRef", "name" : "'x'" }, 637 { "kind" : "IdRef", "name" : "'minVal'" }, 638 { "kind" : "IdRef", "name" : "'maxVal'" } 639 ] 640 } 641 ] 642} 643