Home | History | Annotate | Download | only in 1.1
      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