| { |
| "copyright" : [ |
| "Copyright (c) 2014-2016 The Khronos Group Inc.", |
| "", |
| "Permission is hereby granted, free of charge, to any person obtaining a copy", |
| "of this software and/or associated documentation files (the \"Materials\"),", |
| "to deal in the Materials without restriction, including without limitation", |
| "the rights to use, copy, modify, merge, publish, distribute, sublicense,", |
| "and/or sell copies of the Materials, and to permit persons to whom the", |
| "Materials are furnished to do so, subject to the following conditions:", |
| "", |
| "The above copyright notice and this permission notice shall be included in", |
| "all copies or substantial portions of the Materials.", |
| "", |
| "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", |
| "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", |
| "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", |
| "", |
| "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", |
| "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", |
| "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", |
| "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", |
| "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", |
| "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", |
| "IN THE MATERIALS." |
| ], |
| "version" : 100, |
| "revision" : 2, |
| "instructions" : [ |
| { |
| "opname" : "Round", |
| "opcode" : 1, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "RoundEven", |
| "opcode" : 2, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Trunc", |
| "opcode" : 3, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "FAbs", |
| "opcode" : 4, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "SAbs", |
| "opcode" : 5, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "FSign", |
| "opcode" : 6, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "SSign", |
| "opcode" : 7, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Floor", |
| "opcode" : 8, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Ceil", |
| "opcode" : 9, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Fract", |
| "opcode" : 10, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Radians", |
| "opcode" : 11, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'degrees'" } |
| ] |
| }, |
| { |
| "opname" : "Degrees", |
| "opcode" : 12, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'radians'" } |
| ] |
| }, |
| { |
| "opname" : "Sin", |
| "opcode" : 13, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Cos", |
| "opcode" : 14, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Tan", |
| "opcode" : 15, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Asin", |
| "opcode" : 16, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Acos", |
| "opcode" : 17, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Atan", |
| "opcode" : 18, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'y_over_x'" } |
| ] |
| }, |
| { |
| "opname" : "Sinh", |
| "opcode" : 19, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Cosh", |
| "opcode" : 20, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Tanh", |
| "opcode" : 21, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Asinh", |
| "opcode" : 22, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Acosh", |
| "opcode" : 23, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Atanh", |
| "opcode" : 24, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Atan2", |
| "opcode" : 25, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'y'" }, |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Pow", |
| "opcode" : 26, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'y'" } |
| ] |
| }, |
| { |
| "opname" : "Exp", |
| "opcode" : 27, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Log", |
| "opcode" : 28, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Exp2", |
| "opcode" : 29, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Log2", |
| "opcode" : 30, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Sqrt", |
| "opcode" : 31, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "InverseSqrt", |
| "opcode" : 32, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Determinant", |
| "opcode" : 33, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "MatrixInverse", |
| "opcode" : 34, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Modf", |
| "opcode" : 35, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'i'" } |
| ] |
| }, |
| { |
| "opname" : "ModfStruct", |
| "opcode" : 36, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "FMin", |
| "opcode" : 37, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'y'" } |
| ] |
| }, |
| { |
| "opname" : "UMin", |
| "opcode" : 38, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'y'" } |
| ] |
| }, |
| { |
| "opname" : "SMin", |
| "opcode" : 39, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'y'" } |
| ] |
| }, |
| { |
| "opname" : "FMax", |
| "opcode" : 40, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'y'" } |
| ] |
| }, |
| { |
| "opname" : "UMax", |
| "opcode" : 41, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'y'" } |
| ] |
| }, |
| { |
| "opname" : "SMax", |
| "opcode" : 42, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'y'" } |
| ] |
| }, |
| { |
| "opname" : "FClamp", |
| "opcode" : 43, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'minVal'" }, |
| { "kind" : "IdRef", "name" : "'maxVal'" } |
| ] |
| }, |
| { |
| "opname" : "UClamp", |
| "opcode" : 44, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'minVal'" }, |
| { "kind" : "IdRef", "name" : "'maxVal'" } |
| ] |
| }, |
| { |
| "opname" : "SClamp", |
| "opcode" : 45, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'minVal'" }, |
| { "kind" : "IdRef", "name" : "'maxVal'" } |
| ] |
| }, |
| { |
| "opname" : "FMix", |
| "opcode" : 46, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'y'" }, |
| { "kind" : "IdRef", "name" : "'a'" } |
| ] |
| }, |
| { |
| "opname" : "IMix", |
| "opcode" : 47, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'y'" }, |
| { "kind" : "IdRef", "name" : "'a'" } |
| ] |
| }, |
| { |
| "opname" : "Step", |
| "opcode" : 48, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'edge'" }, |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "SmoothStep", |
| "opcode" : 49, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'edge0'" }, |
| { "kind" : "IdRef", "name" : "'edge1'" }, |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Fma", |
| "opcode" : 50, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'a'" }, |
| { "kind" : "IdRef", "name" : "'b'" }, |
| { "kind" : "IdRef", "name" : "'c'" } |
| ] |
| }, |
| { |
| "opname" : "Frexp", |
| "opcode" : 51, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'exp'" } |
| ] |
| }, |
| { |
| "opname" : "FrexpStruct", |
| "opcode" : 52, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Ldexp", |
| "opcode" : 53, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'exp'" } |
| ] |
| }, |
| { |
| "opname" : "PackSnorm4x8", |
| "opcode" : 54, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'v'" } |
| ] |
| }, |
| { |
| "opname" : "PackUnorm4x8", |
| "opcode" : 55, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'v'" } |
| ] |
| }, |
| { |
| "opname" : "PackSnorm2x16", |
| "opcode" : 56, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'v'" } |
| ] |
| }, |
| { |
| "opname" : "PackUnorm2x16", |
| "opcode" : 57, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'v'" } |
| ] |
| }, |
| { |
| "opname" : "PackHalf2x16", |
| "opcode" : 58, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'v'" } |
| ] |
| }, |
| { |
| "opname" : "PackDouble2x32", |
| "opcode" : 59, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'v'" } |
| ], |
| "capabilities" : [ "Float64" ] |
| }, |
| { |
| "opname" : "UnpackSnorm2x16", |
| "opcode" : 60, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'p'" } |
| ] |
| }, |
| { |
| "opname" : "UnpackUnorm2x16", |
| "opcode" : 61, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'p'" } |
| ] |
| }, |
| { |
| "opname" : "UnpackHalf2x16", |
| "opcode" : 62, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'v'" } |
| ] |
| }, |
| { |
| "opname" : "UnpackSnorm4x8", |
| "opcode" : 63, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'p'" } |
| ] |
| }, |
| { |
| "opname" : "UnpackUnorm4x8", |
| "opcode" : 64, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'p'" } |
| ] |
| }, |
| { |
| "opname" : "UnpackDouble2x32", |
| "opcode" : 65, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'v'" } |
| ], |
| "capabilities" : [ "Float64" ] |
| }, |
| { |
| "opname" : "Length", |
| "opcode" : 66, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "Distance", |
| "opcode" : 67, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'p0'" }, |
| { "kind" : "IdRef", "name" : "'p1'" } |
| ] |
| }, |
| { |
| "opname" : "Cross", |
| "opcode" : 68, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'y'" } |
| ] |
| }, |
| { |
| "opname" : "Normalize", |
| "opcode" : 69, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" } |
| ] |
| }, |
| { |
| "opname" : "FaceForward", |
| "opcode" : 70, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'N'" }, |
| { "kind" : "IdRef", "name" : "'I'" }, |
| { "kind" : "IdRef", "name" : "'Nref'" } |
| ] |
| }, |
| { |
| "opname" : "Reflect", |
| "opcode" : 71, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'I'" }, |
| { "kind" : "IdRef", "name" : "'N'" } |
| ] |
| }, |
| { |
| "opname" : "Refract", |
| "opcode" : 72, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'I'" }, |
| { "kind" : "IdRef", "name" : "'N'" }, |
| { "kind" : "IdRef", "name" : "'eta'" } |
| ] |
| }, |
| { |
| "opname" : "FindILsb", |
| "opcode" : 73, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'Value'" } |
| ] |
| }, |
| { |
| "opname" : "FindSMsb", |
| "opcode" : 74, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'Value'" } |
| ] |
| }, |
| { |
| "opname" : "FindUMsb", |
| "opcode" : 75, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'Value'" } |
| ] |
| }, |
| { |
| "opname" : "InterpolateAtCentroid", |
| "opcode" : 76, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'interpolant'" } |
| ], |
| "capabilities" : [ "InterpolationFunction" ] |
| }, |
| { |
| "opname" : "InterpolateAtSample", |
| "opcode" : 77, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'interpolant'" }, |
| { "kind" : "IdRef", "name" : "'sample'" } |
| ], |
| "capabilities" : [ "InterpolationFunction" ] |
| }, |
| { |
| "opname" : "InterpolateAtOffset", |
| "opcode" : 78, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'interpolant'" }, |
| { "kind" : "IdRef", "name" : "'offset'" } |
| ], |
| "capabilities" : [ "InterpolationFunction" ] |
| }, |
| { |
| "opname" : "NMin", |
| "opcode" : 79, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'y'" } |
| ] |
| }, |
| { |
| "opname" : "NMax", |
| "opcode" : 80, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'y'" } |
| ] |
| }, |
| { |
| "opname" : "NClamp", |
| "opcode" : 81, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "'x'" }, |
| { "kind" : "IdRef", "name" : "'minVal'" }, |
| { "kind" : "IdRef", "name" : "'maxVal'" } |
| ] |
| } |
| ] |
| } |