mirror of
https://github.com/red-prig/fpPS4.git
synced 2024-11-26 16:10:25 +00:00
Update tool
This commit is contained in:
parent
b0517dfee1
commit
45dd04e8f7
642
tools/spirv/extinst.glsl.std.450.grammar.json
Normal file
642
tools/spirv/extinst.glsl.std.450.grammar.json
Normal file
@ -0,0 +1,642 @@
|
||||
{
|
||||
"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'" }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -26,8 +26,8 @@
|
||||
],
|
||||
"magic_number" : "0x07230203",
|
||||
"major_version" : 1,
|
||||
"minor_version" : 5,
|
||||
"revision" : 4,
|
||||
"minor_version" : 6,
|
||||
"revision" : 1,
|
||||
"instruction_printing_class" : [
|
||||
{
|
||||
"tag" : "@exclude"
|
||||
@ -394,9 +394,7 @@
|
||||
"opcode" : 30,
|
||||
"operands" : [
|
||||
{ "kind" : "IdResult" },
|
||||
{ "kind" : "IdRef",
|
||||
"quantifier" : "*",
|
||||
"name" : "'Member 0 type', +\n'member 1 type', +\n..." }
|
||||
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -1737,7 +1735,8 @@
|
||||
{ "kind" : "IdRef", "name" : "'x'" },
|
||||
{ "kind" : "IdRef", "name" : "'y'" }
|
||||
],
|
||||
"capabilities" : [ "Kernel" ]
|
||||
"capabilities" : [ "Kernel" ],
|
||||
"lastVersion" : "1.5"
|
||||
},
|
||||
{
|
||||
"opname" : "OpOrdered",
|
||||
@ -4111,7 +4110,7 @@
|
||||
"SPV_KHR_terminate_invocation"
|
||||
],
|
||||
"capabilities" : [ "Shader" ],
|
||||
"version" : "None"
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpSubgroupBallotKHR",
|
||||
@ -4262,6 +4261,20 @@
|
||||
"extensions" : [ "SPV_KHR_ray_tracing" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpSDot",
|
||||
"class" : "Arithmetic",
|
||||
"opcode" : 4450,
|
||||
"operands" : [
|
||||
{ "kind" : "IdResultType" },
|
||||
{ "kind" : "IdResult" },
|
||||
{ "kind" : "IdRef", "name" : "'Vector 1'" },
|
||||
{ "kind" : "IdRef", "name" : "'Vector 2'" },
|
||||
{ "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
|
||||
],
|
||||
"capabilities" : [ "DotProduct" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpSDotKHR",
|
||||
"class" : "Arithmetic",
|
||||
@ -4274,7 +4287,22 @@
|
||||
{ "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
|
||||
],
|
||||
"capabilities" : [ "DotProductKHR" ],
|
||||
"version" : "None"
|
||||
"extensions" : [ "SPV_KHR_integer_dot_product" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpUDot",
|
||||
"class" : "Arithmetic",
|
||||
"opcode" : 4451,
|
||||
"operands" : [
|
||||
{ "kind" : "IdResultType" },
|
||||
{ "kind" : "IdResult" },
|
||||
{ "kind" : "IdRef", "name" : "'Vector 1'" },
|
||||
{ "kind" : "IdRef", "name" : "'Vector 2'" },
|
||||
{ "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
|
||||
],
|
||||
"capabilities" : [ "DotProduct" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpUDotKHR",
|
||||
@ -4288,7 +4316,22 @@
|
||||
{ "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
|
||||
],
|
||||
"capabilities" : [ "DotProductKHR" ],
|
||||
"version" : "None"
|
||||
"extensions" : [ "SPV_KHR_integer_dot_product" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpSUDot",
|
||||
"class" : "Arithmetic",
|
||||
"opcode" : 4452,
|
||||
"operands" : [
|
||||
{ "kind" : "IdResultType" },
|
||||
{ "kind" : "IdResult" },
|
||||
{ "kind" : "IdRef", "name" : "'Vector 1'" },
|
||||
{ "kind" : "IdRef", "name" : "'Vector 2'" },
|
||||
{ "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
|
||||
],
|
||||
"capabilities" : [ "DotProduct" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpSUDotKHR",
|
||||
@ -4302,7 +4345,23 @@
|
||||
{ "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
|
||||
],
|
||||
"capabilities" : [ "DotProductKHR" ],
|
||||
"version" : "None"
|
||||
"extensions" : [ "SPV_KHR_integer_dot_product" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpSDotAccSat",
|
||||
"class" : "Arithmetic",
|
||||
"opcode" : 4453,
|
||||
"operands" : [
|
||||
{ "kind" : "IdResultType" },
|
||||
{ "kind" : "IdResult" },
|
||||
{ "kind" : "IdRef", "name" : "'Vector 1'" },
|
||||
{ "kind" : "IdRef", "name" : "'Vector 2'" },
|
||||
{ "kind" : "IdRef", "name" : "'Accumulator'" },
|
||||
{ "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
|
||||
],
|
||||
"capabilities" : [ "DotProduct" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpSDotAccSatKHR",
|
||||
@ -4317,7 +4376,23 @@
|
||||
{ "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
|
||||
],
|
||||
"capabilities" : [ "DotProductKHR" ],
|
||||
"version" : "None"
|
||||
"extensions" : [ "SPV_KHR_integer_dot_product" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpUDotAccSat",
|
||||
"class" : "Arithmetic",
|
||||
"opcode" : 4454,
|
||||
"operands" : [
|
||||
{ "kind" : "IdResultType" },
|
||||
{ "kind" : "IdResult" },
|
||||
{ "kind" : "IdRef", "name" : "'Vector 1'" },
|
||||
{ "kind" : "IdRef", "name" : "'Vector 2'" },
|
||||
{ "kind" : "IdRef", "name" : "'Accumulator'" },
|
||||
{ "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
|
||||
],
|
||||
"capabilities" : [ "DotProduct" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpUDotAccSatKHR",
|
||||
@ -4332,7 +4407,23 @@
|
||||
{ "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
|
||||
],
|
||||
"capabilities" : [ "DotProductKHR" ],
|
||||
"version" : "None"
|
||||
"extensions" : [ "SPV_KHR_integer_dot_product" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpSUDotAccSat",
|
||||
"class" : "Arithmetic",
|
||||
"opcode" : 4455,
|
||||
"operands" : [
|
||||
{ "kind" : "IdResultType" },
|
||||
{ "kind" : "IdResult" },
|
||||
{ "kind" : "IdRef", "name" : "'Vector 1'" },
|
||||
{ "kind" : "IdRef", "name" : "'Vector 2'" },
|
||||
{ "kind" : "IdRef", "name" : "'Accumulator'" },
|
||||
{ "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
|
||||
],
|
||||
"capabilities" : [ "DotProduct" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpSUDotAccSatKHR",
|
||||
@ -4347,7 +4438,8 @@
|
||||
{ "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
|
||||
],
|
||||
"capabilities" : [ "DotProductKHR" ],
|
||||
"version" : "None"
|
||||
"extensions" : [ "SPV_KHR_integer_dot_product" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpTypeRayQueryKHR",
|
||||
@ -4927,12 +5019,18 @@
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpDemoteToHelperInvocationEXT",
|
||||
"class" : "Reserved",
|
||||
"opname" : "OpDemoteToHelperInvocation",
|
||||
"class" : "Control-Flow",
|
||||
"opcode" : 5380,
|
||||
"capabilities" : [ "DemoteToHelperInvocationEXT" ],
|
||||
"extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
|
||||
"version" : "None"
|
||||
"capabilities" : [ "DemoteToHelperInvocation" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpDemoteToHelperInvocationEXT",
|
||||
"class" : "Control-Flow",
|
||||
"opcode" : 5380,
|
||||
"capabilities" : [ "DemoteToHelperInvocation" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"opname" : "OpIsHelperInvocationEXT",
|
||||
@ -4946,6 +5044,88 @@
|
||||
"extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpConvertUToImageNV",
|
||||
"class" : "Reserved",
|
||||
"opcode" : 5391,
|
||||
"operands" : [
|
||||
{ "kind" : "IdResultType" },
|
||||
{ "kind" : "IdResult" },
|
||||
{ "kind" : "IdRef", "name" : "'Operand'" }
|
||||
],
|
||||
"capabilities" : [ "BindlessTextureNV" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpConvertUToSamplerNV",
|
||||
"class" : "Reserved",
|
||||
"opcode" : 5392,
|
||||
"operands" : [
|
||||
{ "kind" : "IdResultType" },
|
||||
{ "kind" : "IdResult" },
|
||||
{ "kind" : "IdRef", "name" : "'Operand'" }
|
||||
],
|
||||
"capabilities" : [ "BindlessTextureNV" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpConvertImageToUNV",
|
||||
"class" : "Reserved",
|
||||
"opcode" : 5393,
|
||||
"operands" : [
|
||||
{ "kind" : "IdResultType" },
|
||||
{ "kind" : "IdResult" },
|
||||
{ "kind" : "IdRef", "name" : "'Operand'" }
|
||||
],
|
||||
"capabilities" : [ "BindlessTextureNV" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpConvertSamplerToUNV",
|
||||
"class" : "Reserved",
|
||||
"opcode" : 5394,
|
||||
"operands" : [
|
||||
{ "kind" : "IdResultType" },
|
||||
{ "kind" : "IdResult" },
|
||||
{ "kind" : "IdRef", "name" : "'Operand'" }
|
||||
],
|
||||
"capabilities" : [ "BindlessTextureNV" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpConvertUToSampledImageNV",
|
||||
"class" : "Reserved",
|
||||
"opcode" : 5395,
|
||||
"operands" : [
|
||||
{ "kind" : "IdResultType" },
|
||||
{ "kind" : "IdResult" },
|
||||
{ "kind" : "IdRef", "name" : "'Operand'" }
|
||||
],
|
||||
"capabilities" : [ "BindlessTextureNV" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpConvertSampledImageToUNV",
|
||||
"class" : "Reserved",
|
||||
"opcode" : 5396,
|
||||
"operands" : [
|
||||
{ "kind" : "IdResultType" },
|
||||
{ "kind" : "IdResult" },
|
||||
{ "kind" : "IdRef", "name" : "'Operand'" }
|
||||
],
|
||||
"capabilities" : [ "BindlessTextureNV" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpSamplerImageAddressingModeNV",
|
||||
"class" : "Reserved",
|
||||
"opcode" : 5397,
|
||||
"operands" : [
|
||||
{ "kind" : "LiteralInteger", "name" : "'Bit Width'" }
|
||||
],
|
||||
"capabilities" : [ "BindlessTextureNV" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpSubgroupShuffleINTEL",
|
||||
"class" : "Group",
|
||||
@ -5258,7 +5438,7 @@
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpConstFunctionPointerINTEL",
|
||||
"opname" : "OpConstantFunctionPointerINTEL",
|
||||
"class" : "@exclude",
|
||||
"opcode" : 5600,
|
||||
"operands" : [
|
||||
@ -7678,24 +7858,6 @@
|
||||
"capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpArbitraryFloatPowNINTEL",
|
||||
"class" : "@exclude",
|
||||
"opcode" : 5882,
|
||||
"operands" : [
|
||||
{ "kind" : "IdResultType" },
|
||||
{ "kind" : "IdResult" },
|
||||
{ "kind" : "IdRef", "name" : "'A'" },
|
||||
{ "kind" : "LiteralInteger", "name" : "'M1'" },
|
||||
{ "kind" : "IdRef", "name" : "'B'" },
|
||||
{ "kind" : "LiteralInteger", "name" : "'Mout'" },
|
||||
{ "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
|
||||
{ "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
|
||||
{ "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
|
||||
],
|
||||
"capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpLoopControlINTEL",
|
||||
"class" : "Reserved",
|
||||
@ -8495,6 +8657,18 @@
|
||||
"enumerant" : "ZeroExtend",
|
||||
"value" : "0x2000",
|
||||
"version" : "1.4"
|
||||
},
|
||||
{
|
||||
"enumerant" : "Nontemporal",
|
||||
"value" : "0x4000",
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"enumerant" : "Offsets",
|
||||
"value" : "0x10000",
|
||||
"parameters" : [
|
||||
{ "kind" : "IdRef" }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -8508,40 +8682,35 @@
|
||||
},
|
||||
{
|
||||
"enumerant" : "NotNaN",
|
||||
"value" : "0x0001",
|
||||
"capabilities" : [ "Kernel" ]
|
||||
"value" : "0x0001"
|
||||
},
|
||||
{
|
||||
"enumerant" : "NotInf",
|
||||
"value" : "0x0002",
|
||||
"capabilities" : [ "Kernel" ]
|
||||
"value" : "0x0002"
|
||||
},
|
||||
{
|
||||
"enumerant" : "NSZ",
|
||||
"value" : "0x0004",
|
||||
"capabilities" : [ "Kernel" ]
|
||||
"value" : "0x0004"
|
||||
},
|
||||
{
|
||||
"enumerant" : "AllowRecip",
|
||||
"value" : "0x0008",
|
||||
"capabilities" : [ "Kernel" ]
|
||||
"value" : "0x0008"
|
||||
},
|
||||
{
|
||||
"enumerant" : "Fast",
|
||||
"value" : "0x0010",
|
||||
"capabilities" : [ "Kernel" ]
|
||||
"value" : "0x0010"
|
||||
},
|
||||
{
|
||||
"enumerant" : "AllowContractFastINTEL",
|
||||
"value" : "0x10000",
|
||||
"capabilities" : [ "FPFastMathModeINTEL" ],
|
||||
"version" : "None"
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "AllowReassocINTEL",
|
||||
"value" : "0x20000",
|
||||
"capabilities" : [ "FPFastMathModeINTEL" ],
|
||||
"version" : "None"
|
||||
"version" : "None"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -10813,12 +10982,12 @@
|
||||
{
|
||||
"enumerant" : "Uniform",
|
||||
"value" : 26,
|
||||
"capabilities" : [ "Shader" ]
|
||||
"capabilities" : [ "Shader", "UniformDecoration" ]
|
||||
},
|
||||
{
|
||||
"enumerant" : "UniformId",
|
||||
"value" : 27,
|
||||
"capabilities" : [ "Shader" ],
|
||||
"capabilities" : [ "Shader", "UniformDecoration" ],
|
||||
"parameters" : [
|
||||
{ "kind" : "IdScope", "name" : "'Execution'" }
|
||||
],
|
||||
@ -11050,11 +11219,18 @@
|
||||
"extensions" : [ "SPV_NV_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "PerVertexKHR",
|
||||
"value" : 5285,
|
||||
"capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
|
||||
"extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "PerVertexNV",
|
||||
"value" : 5285,
|
||||
"capabilities" : [ "FragmentBarycentricNV" ],
|
||||
"extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
|
||||
"capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
|
||||
"extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
@ -11098,6 +11274,30 @@
|
||||
"extensions" : [ "SPV_EXT_physical_storage_buffer" ],
|
||||
"version" : "1.5"
|
||||
},
|
||||
{
|
||||
"enumerant" : "BindlessSamplerNV",
|
||||
"value" : 5398,
|
||||
"capabilities" : [ "BindlessTextureNV" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "BindlessImageNV",
|
||||
"value" : 5399,
|
||||
"capabilities" : [ "BindlessTextureNV" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "BoundSamplerNV",
|
||||
"value" : 5400,
|
||||
"capabilities" : [ "BindlessTextureNV" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "BoundImageNV",
|
||||
"value" : 5401,
|
||||
"capabilities" : [ "BindlessTextureNV" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "SIMTCallINTEL",
|
||||
"value" : 5599,
|
||||
@ -11418,6 +11618,12 @@
|
||||
"value" : 6087,
|
||||
"capabilities" : [ "VectorComputeINTEL" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "MediaBlockIOINTEL",
|
||||
"value" : 6140,
|
||||
"capabilities" : [ "VectorComputeINTEL" ],
|
||||
"version" : "None"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -11885,18 +12091,32 @@
|
||||
"extensions" : [ "SPV_NV_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "BaryCoordKHR",
|
||||
"value" : 5286,
|
||||
"capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
|
||||
"extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "BaryCoordNV",
|
||||
"value" : 5286,
|
||||
"capabilities" : [ "FragmentBarycentricNV" ],
|
||||
"extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
|
||||
"capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
|
||||
"extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "BaryCoordNoPerspKHR",
|
||||
"value" : 5287,
|
||||
"capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
|
||||
"extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "BaryCoordNoPerspNV",
|
||||
"value" : 5287,
|
||||
"capabilities" : [ "FragmentBarycentricNV" ],
|
||||
"extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
|
||||
"capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
|
||||
"extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
@ -12621,6 +12841,11 @@
|
||||
"value" : 70,
|
||||
"version" : "1.5"
|
||||
},
|
||||
{
|
||||
"enumerant" : "UniformDecoration",
|
||||
"value" : 71,
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"enumerant" : "FragmentShadingRateKHR",
|
||||
"value" : 4422,
|
||||
@ -12946,10 +13171,16 @@
|
||||
"extensions" : [ "SPV_NV_shader_image_footprint" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "FragmentBarycentricKHR",
|
||||
"value" : 5284,
|
||||
"extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "FragmentBarycentricNV",
|
||||
"value" : 5284,
|
||||
"extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
|
||||
"extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
@ -13232,11 +13463,23 @@
|
||||
"extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "DemoteToHelperInvocation",
|
||||
"value" : 5379,
|
||||
"capabilities" : [ "Shader" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"enumerant" : "DemoteToHelperInvocationEXT",
|
||||
"value" : 5379,
|
||||
"capabilities" : [ "Shader" ],
|
||||
"extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"enumerant" : "BindlessTextureNV",
|
||||
"value" : 5390,
|
||||
"extensions" : [ "SPV_NV_bindless_texture" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
@ -13470,30 +13713,51 @@
|
||||
"extensions" : [ "SPV_INTEL_fpga_reg" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "DotProductInputAll",
|
||||
"value" : 6016,
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"enumerant" : "DotProductInputAllKHR",
|
||||
"value" : 6016,
|
||||
"extensions" : [ "SPV_KHR_integer_dot_product" ],
|
||||
"version" : "None"
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"enumerant" : "DotProductInput4x8Bit",
|
||||
"value" : 6017,
|
||||
"capabilities" : [ "Int8" ],
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"enumerant" : "DotProductInput4x8BitKHR",
|
||||
"value" : 6017,
|
||||
"capabilities" : [ "Int8" ],
|
||||
"extensions" : [ "SPV_KHR_integer_dot_product" ],
|
||||
"version" : "None"
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"enumerant" : "DotProductInput4x8BitPacked",
|
||||
"value" : 6018,
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"enumerant" : "DotProductInput4x8BitPackedKHR",
|
||||
"value" : 6018,
|
||||
"extensions" : [ "SPV_KHR_integer_dot_product" ],
|
||||
"version" : "None"
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"enumerant" : "DotProduct",
|
||||
"value" : 6019,
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"enumerant" : "DotProductKHR",
|
||||
"value" : 6019,
|
||||
"extensions" : [ "SPV_KHR_integer_dot_product" ],
|
||||
"version" : "None"
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"enumerant" : "BitInstructions",
|
||||
@ -13504,14 +13768,12 @@
|
||||
{
|
||||
"enumerant" : "AtomicFloat32AddEXT",
|
||||
"value" : 6033,
|
||||
"capabilities" : [ "Shader" ],
|
||||
"extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "AtomicFloat64AddEXT",
|
||||
"value" : 6034,
|
||||
"capabilities" : [ "Shader" ],
|
||||
"extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
|
||||
"version" : "None"
|
||||
},
|
||||
@ -13530,7 +13792,6 @@
|
||||
{
|
||||
"enumerant" : "AtomicFloat16AddEXT",
|
||||
"value" : 6095,
|
||||
"capabilities" : [ "Shader" ],
|
||||
"extensions" : [ "SPV_EXT_shader_atomic_float16_add" ],
|
||||
"version" : "None"
|
||||
},
|
||||
@ -13606,11 +13867,16 @@
|
||||
"category" : "ValueEnum",
|
||||
"kind" : "PackedVectorFormat",
|
||||
"enumerants" : [
|
||||
{
|
||||
"enumerant" : "PackedVectorFormat4x8Bit",
|
||||
"value" : 0,
|
||||
"version" : "1.6"
|
||||
},
|
||||
{
|
||||
"enumerant" : "PackedVectorFormat4x8BitKHR",
|
||||
"value" : 0,
|
||||
"extensions" : [ "SPV_KHR_integer_dot_product" ],
|
||||
"version" : "None"
|
||||
"version" : "1.6"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -54,8 +54,8 @@
|
||||
]
|
||||
],
|
||||
"MagicNumber": 119734787,
|
||||
"Version": 66816,
|
||||
"Revision": 4,
|
||||
"Version": 67072,
|
||||
"Revision": 1,
|
||||
"OpCodeMask": 65535,
|
||||
"WordCountShift": 16
|
||||
},
|
||||
@ -395,7 +395,9 @@
|
||||
"VolatileTexel": 11,
|
||||
"VolatileTexelKHR": 11,
|
||||
"SignExtend": 12,
|
||||
"ZeroExtend": 13
|
||||
"ZeroExtend": 13,
|
||||
"Nontemporal": 14,
|
||||
"Offsets": 16
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -520,6 +522,7 @@
|
||||
"PerPrimitiveNV": 5271,
|
||||
"PerViewNV": 5272,
|
||||
"PerTaskNV": 5273,
|
||||
"PerVertexKHR": 5285,
|
||||
"PerVertexNV": 5285,
|
||||
"NonUniform": 5300,
|
||||
"NonUniformEXT": 5300,
|
||||
@ -527,6 +530,10 @@
|
||||
"RestrictPointerEXT": 5355,
|
||||
"AliasedPointer": 5356,
|
||||
"AliasedPointerEXT": 5356,
|
||||
"BindlessSamplerNV": 5398,
|
||||
"BindlessImageNV": 5399,
|
||||
"BoundSamplerNV": 5400,
|
||||
"BoundImageNV": 5401,
|
||||
"SIMTCallINTEL": 5599,
|
||||
"ReferencedIndirectlyINTEL": 5602,
|
||||
"ClobberINTEL": 5607,
|
||||
@ -565,7 +572,8 @@
|
||||
"IOPipeStorageINTEL": 5944,
|
||||
"FunctionFloatingPointModeINTEL": 6080,
|
||||
"SingleElementVectorINTEL": 6085,
|
||||
"VectorComputeCallableFunctionINTEL": 6087
|
||||
"VectorComputeCallableFunctionINTEL": 6087,
|
||||
"MediaBlockIOINTEL": 6140
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -653,7 +661,9 @@
|
||||
"LayerPerViewNV": 5279,
|
||||
"MeshViewCountNV": 5280,
|
||||
"MeshViewIndicesNV": 5281,
|
||||
"BaryCoordKHR": 5286,
|
||||
"BaryCoordNV": 5286,
|
||||
"BaryCoordNoPerspKHR": 5287,
|
||||
"BaryCoordNoPerspNV": 5287,
|
||||
"FragSizeEXT": 5292,
|
||||
"FragmentSizeNV": 5292,
|
||||
@ -900,6 +910,7 @@
|
||||
"GroupNonUniformQuad": 68,
|
||||
"ShaderLayer": 69,
|
||||
"ShaderViewportIndex": 70,
|
||||
"UniformDecoration": 71,
|
||||
"FragmentShadingRateKHR": 4422,
|
||||
"SubgroupBallotKHR": 4423,
|
||||
"DrawParameters": 4427,
|
||||
@ -948,6 +959,7 @@
|
||||
"FragmentFullyCoveredEXT": 5265,
|
||||
"MeshShadingNV": 5266,
|
||||
"ImageFootprintNV": 5282,
|
||||
"FragmentBarycentricKHR": 5284,
|
||||
"FragmentBarycentricNV": 5284,
|
||||
"ComputeDerivativeGroupQuadsNV": 5288,
|
||||
"FragmentDensityEXT": 5291,
|
||||
@ -992,7 +1004,9 @@
|
||||
"FragmentShaderShadingRateInterlockEXT": 5372,
|
||||
"ShaderSMBuiltinsNV": 5373,
|
||||
"FragmentShaderPixelInterlockEXT": 5378,
|
||||
"DemoteToHelperInvocation": 5379,
|
||||
"DemoteToHelperInvocationEXT": 5379,
|
||||
"BindlessTextureNV": 5390,
|
||||
"SubgroupShuffleINTEL": 5568,
|
||||
"SubgroupBufferBlockIOINTEL": 5569,
|
||||
"SubgroupImageBlockIOINTEL": 5570,
|
||||
@ -1031,9 +1045,13 @@
|
||||
"IOPipesINTEL": 5943,
|
||||
"BlockingPipesINTEL": 5945,
|
||||
"FPGARegINTEL": 5948,
|
||||
"DotProductInputAll": 6016,
|
||||
"DotProductInputAllKHR": 6016,
|
||||
"DotProductInput4x8Bit": 6017,
|
||||
"DotProductInput4x8BitKHR": 6017,
|
||||
"DotProductInput4x8BitPacked": 6018,
|
||||
"DotProductInput4x8BitPackedKHR": 6018,
|
||||
"DotProduct": 6019,
|
||||
"DotProductKHR": 6019,
|
||||
"BitInstructions": 6025,
|
||||
"AtomicFloat32AddEXT": 6033,
|
||||
@ -1149,6 +1167,7 @@
|
||||
"Type": "Value",
|
||||
"Values":
|
||||
{
|
||||
"PackedVectorFormat4x8Bit": 0,
|
||||
"PackedVectorFormat4x8BitKHR": 0
|
||||
}
|
||||
},
|
||||
@ -1513,11 +1532,17 @@
|
||||
"OpConvertUToAccelerationStructureKHR": 4447,
|
||||
"OpIgnoreIntersectionKHR": 4448,
|
||||
"OpTerminateRayKHR": 4449,
|
||||
"OpSDot": 4450,
|
||||
"OpSDotKHR": 4450,
|
||||
"OpUDot": 4451,
|
||||
"OpUDotKHR": 4451,
|
||||
"OpSUDot": 4452,
|
||||
"OpSUDotKHR": 4452,
|
||||
"OpSDotAccSat": 4453,
|
||||
"OpSDotAccSatKHR": 4453,
|
||||
"OpUDotAccSat": 4454,
|
||||
"OpUDotAccSatKHR": 4454,
|
||||
"OpSUDotAccSat": 4455,
|
||||
"OpSUDotAccSatKHR": 4455,
|
||||
"OpTypeRayQueryKHR": 4472,
|
||||
"OpRayQueryInitializeKHR": 4473,
|
||||
@ -1557,8 +1582,16 @@
|
||||
"OpCooperativeMatrixLengthNV": 5362,
|
||||
"OpBeginInvocationInterlockEXT": 5364,
|
||||
"OpEndInvocationInterlockEXT": 5365,
|
||||
"OpDemoteToHelperInvocation": 5380,
|
||||
"OpDemoteToHelperInvocationEXT": 5380,
|
||||
"OpIsHelperInvocationEXT": 5381,
|
||||
"OpConvertUToImageNV": 5391,
|
||||
"OpConvertUToSamplerNV": 5392,
|
||||
"OpConvertImageToUNV": 5393,
|
||||
"OpConvertSamplerToUNV": 5394,
|
||||
"OpConvertUToSampledImageNV": 5395,
|
||||
"OpConvertSampledImageToUNV": 5396,
|
||||
"OpSamplerImageAddressingModeNV": 5397,
|
||||
"OpSubgroupShuffleINTEL": 5571,
|
||||
"OpSubgroupShuffleDownINTEL": 5572,
|
||||
"OpSubgroupShuffleUpINTEL": 5573,
|
||||
@ -1583,7 +1616,7 @@
|
||||
"OpUSubSatINTEL": 5596,
|
||||
"OpIMul32x16INTEL": 5597,
|
||||
"OpUMul32x16INTEL": 5598,
|
||||
"OpConstFunctionPointerINTEL": 5600,
|
||||
"OpConstantFunctionPointerINTEL": 5600,
|
||||
"OpFunctionPointerCallINTEL": 5601,
|
||||
"OpAsmTargetINTEL": 5609,
|
||||
"OpAsmINTEL": 5610,
|
||||
|
@ -60,12 +60,22 @@ begin
|
||||
end;
|
||||
|
||||
var
|
||||
Comment:RawByteString;
|
||||
LConstMeta:TStringList;
|
||||
spirv:record
|
||||
Comment:RawByteString;
|
||||
LConstMeta:TStringList;
|
||||
|
||||
LEnums:TStringList;
|
||||
LEnums:TStringList;
|
||||
|
||||
OpInfoSet:TOpInfoSet;
|
||||
OpInfoSet:TOpInfoSet;
|
||||
end;
|
||||
|
||||
glsl:record
|
||||
Comment:RawByteString;
|
||||
|
||||
inst:TMapStr;
|
||||
|
||||
OpInfoSet:TOpInfoSet;
|
||||
end;
|
||||
|
||||
function _getComment(sComment:Tjson):RawByteString;
|
||||
var
|
||||
@ -152,11 +162,14 @@ procedure LoadOp(LGroup:TMapGroup);
|
||||
var
|
||||
IG:TMapGroup.TIterator;
|
||||
begin
|
||||
OpInfoSet:=TOpInfoSet.Create;
|
||||
if (spirv.OpInfoSet=nil) then
|
||||
begin
|
||||
spirv.OpInfoSet:=TOpInfoSet.Create;
|
||||
end;
|
||||
IG:=LGroup.Min;
|
||||
if Assigned(IG) then
|
||||
repeat
|
||||
OpInfoSet.Insert(IG.Value,Default(TOpInfo));
|
||||
spirv.OpInfoSet.Insert(IG.Value,Default(TOpInfo));
|
||||
until (not IG.Next);
|
||||
FreeAndNil(IG);
|
||||
end;
|
||||
@ -171,19 +184,19 @@ Var
|
||||
begin
|
||||
J:=Tjson.NewFromFile(fname);
|
||||
|
||||
Comment:=_getComment(J.Path['spv.meta.Comment']);
|
||||
spirv.Comment:=_getComment(J.Path['spv.meta.Comment']);
|
||||
|
||||
LConstMeta:=TStringList.Create;
|
||||
spirv.LConstMeta:=TStringList.Create;
|
||||
meta:=J.Path['spv.meta'];
|
||||
s:=meta.Count;
|
||||
if (s<>0) then
|
||||
For i:=0 to s-1 do
|
||||
if (meta.Name[i]<>'Comment') then
|
||||
begin
|
||||
LConstMeta.Add(meta.Name[i]+' = '+meta.Item[i].AsStr);
|
||||
spirv.LConstMeta.Add(meta.Name[i]+' = '+meta.Item[i].AsStr);
|
||||
end;
|
||||
|
||||
LEnums:=TStringList.Create;
|
||||
spirv.LEnums:=TStringList.Create;
|
||||
enum:=J.Path['spv.enum'];
|
||||
s:=enum.Count;
|
||||
if (s<>0) then
|
||||
@ -196,7 +209,7 @@ begin
|
||||
LGroup:=_getGroup(tmp.Path['Values'],_type);
|
||||
LGroup._type:=_type;
|
||||
|
||||
LEnums.AddObject(_name,LGroup);
|
||||
spirv.LEnums.AddObject(_name,LGroup);
|
||||
|
||||
if (_name='Op') then
|
||||
LoadOp(LGroup);
|
||||
@ -267,7 +280,7 @@ begin
|
||||
opname:=tmp.Path['opname'].AsStr;
|
||||
OpInfo:=_get_OpInfo(tmp.Path['operands']);
|
||||
|
||||
IT:=OpInfoSet.Find(opname);
|
||||
IT:=spirv.OpInfoSet.Find(opname);
|
||||
if Assigned(IT) then
|
||||
begin
|
||||
IT.Value:=OpInfo;
|
||||
@ -279,6 +292,56 @@ begin
|
||||
J.Free;
|
||||
end;
|
||||
|
||||
{
|
||||
extinst_glsl_std_450:record
|
||||
Comment:RawByteString;
|
||||
|
||||
inst:TMapStr;
|
||||
|
||||
OpInfoSet:TOpInfoSet;
|
||||
end;
|
||||
}
|
||||
|
||||
procedure loadGlslGrammarJson(Const fname:RawByteString);
|
||||
Var
|
||||
J,inst,tmp:Tjson;
|
||||
i,s:Integer;
|
||||
opname,opcode:RawByteString;
|
||||
OpInfo:TOpInfo;
|
||||
IT:TOpInfoSet.TIterator;
|
||||
begin
|
||||
J:=Tjson.NewFromFile(fname);
|
||||
|
||||
if (glsl.OpInfoSet=nil) then
|
||||
begin
|
||||
glsl.OpInfoSet:=TOpInfoSet.Create;
|
||||
end;
|
||||
|
||||
if (glsl.inst=nil) then
|
||||
begin
|
||||
glsl.inst:=TMapStr.Create;
|
||||
end;
|
||||
|
||||
glsl.Comment:=_getComment(J.Path['copyright']);
|
||||
|
||||
inst:=J.Path['instructions'];
|
||||
|
||||
s:=inst.Count;
|
||||
if (s<>0) then
|
||||
For i:=0 to s-1 do
|
||||
begin
|
||||
tmp:=inst.Item[i];
|
||||
opname:=tmp.Path['opname'].AsStr;
|
||||
opcode:=tmp.Path['opcode'].AsStr;
|
||||
OpInfo:=_get_OpInfo(tmp.Path['operands']);
|
||||
|
||||
glsl.inst.Insert(opcode,opname);
|
||||
glsl.OpInfoSet.Insert(opname,OpInfo);
|
||||
end;
|
||||
|
||||
J.Free;
|
||||
end;
|
||||
|
||||
Function IsJson(Const FName:RawByteString):Boolean;
|
||||
begin
|
||||
Result:=False;
|
||||
@ -316,7 +379,12 @@ Const
|
||||
' end;'#$0D#$0A+
|
||||
' function GetInfo(w:Word):TOpInfo; static;'#$0D#$0A;
|
||||
|
||||
LGetInfo_p='function Op.GetInfo(w:Word):TOpInfo; static;'#$0D#$0A+
|
||||
LOpGetInfo_p='function Op.GetInfo(w:Word):TOpInfo; static;'#$0D#$0A+
|
||||
'begin'#$0D#$0A+
|
||||
' Result:=Default(TOpInfo);'#$0D#$0A+
|
||||
' Case w of'#$0D#$0A;
|
||||
|
||||
LGlGetInfo_p='function GlslOp.GetInfo(w:Word):TOpInfo; static;'#$0D#$0A+
|
||||
'begin'#$0D#$0A+
|
||||
' Result:=Default(TOpInfo);'#$0D#$0A+
|
||||
' Case w of'#$0D#$0A;
|
||||
@ -344,29 +412,29 @@ Var
|
||||
|
||||
begin
|
||||
F:=FileCreate(FName);
|
||||
FileWrite(F,PChar(Comment)^,Length(Comment));
|
||||
FileWrite(F,PChar(spirv.Comment)^,Length(spirv.Comment));
|
||||
FileWrite(F,PChar(prologf)^,Length(prologf));
|
||||
|
||||
FileWrite(F,PChar(LConst)^,Length(LConst));
|
||||
s:=LConstMeta.Count;
|
||||
s:=spirv.LConstMeta.Count;
|
||||
if (s<>0) then
|
||||
begin
|
||||
For i:=0 to s-1 do
|
||||
begin
|
||||
_name:=' '+LConstMeta.Strings[i]+';'+NL;
|
||||
_name:=' '+spirv.LConstMeta.Strings[i]+';'+NL;
|
||||
FileWrite(F,PChar(_name)^,Length(_name));
|
||||
end;
|
||||
FileWrite(F,PChar(NL)^,Length(NL));
|
||||
end;
|
||||
|
||||
FileWrite(F,PChar(LType)^,Length(LType));
|
||||
s:=LEnums.Count;
|
||||
s:=spirv.LEnums.Count;
|
||||
if (s<>0) then
|
||||
begin
|
||||
For i:=0 to s-1 do
|
||||
begin
|
||||
LGroup:=TMapGroup(LEnums.Objects[i]);
|
||||
_name:=LEnums.Strings[i];
|
||||
LGroup:=TMapGroup(spirv.LEnums.Objects[i]);
|
||||
_name:=spirv.LEnums.Strings[i];
|
||||
|
||||
_name:=' '+_name+'=object'+' //'+LGroup._type+NL+' '+LConst;
|
||||
FileWrite(F,PChar(_name)^,Length(_name));
|
||||
@ -382,7 +450,7 @@ begin
|
||||
if (LGroup._type='Value') then
|
||||
FileWrite(F,PChar(LGetStr_i)^,Length(LGetStr_i));
|
||||
|
||||
if (LEnums.Strings[i]='Op') then
|
||||
if (spirv.LEnums.Strings[i]='Op') then
|
||||
FileWrite(F,PChar(LGetInfo_i)^,Length(LGetInfo_i));
|
||||
|
||||
FileWrite(F,PChar(LEnd)^,Length(LEnd));
|
||||
@ -390,15 +458,37 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
//glsl.inst
|
||||
|
||||
_name:=' GlslOp=object //extinst.glsl.std.450'+NL+' '+LConst;
|
||||
FileWrite(F,PChar(_name)^,Length(_name));
|
||||
|
||||
IG:=glsl.inst.Min;
|
||||
if Assigned(IG) then
|
||||
repeat
|
||||
_name:=' '+GetPasLabel(IG.Value)+' = '+IG.Key+';'+NL;
|
||||
FileWrite(F,PChar(_name)^,Length(_name));
|
||||
until (not IG.Next);
|
||||
FreeAndNil(IG);
|
||||
|
||||
FileWrite(F,PChar(LGetStr_i)^,Length(LGetStr_i));
|
||||
|
||||
FileWrite(F,PChar(LGetInfo_i)^,Length(LGetInfo_i));
|
||||
|
||||
FileWrite(F,PChar(LEnd)^,Length(LEnd));
|
||||
FileWrite(F,PChar(NLNL)^,Length(NLNL));
|
||||
|
||||
//glsl.inst
|
||||
|
||||
FileWrite(F,PChar(ep_impl)^,Length(ep_impl));
|
||||
s:=LEnums.Count;
|
||||
s:=spirv.LEnums.Count;
|
||||
if (s<>0) then
|
||||
begin
|
||||
For i:=0 to s-1 do
|
||||
begin
|
||||
LGroup:=TMapGroup(LEnums.Objects[i]);
|
||||
LGroup:=TMapGroup(spirv.LEnums.Objects[i]);
|
||||
if (LGroup._type<>'Value') then Continue;
|
||||
_name:=LEnums.Strings[i];
|
||||
_name:=spirv.LEnums.Strings[i];
|
||||
|
||||
_name:=LFunc+_name+LGetStr_p;
|
||||
|
||||
@ -414,15 +504,15 @@ begin
|
||||
|
||||
FileWrite(F,PChar(LGetStr_e)^,Length(LGetStr_e));
|
||||
|
||||
if (LEnums.Strings[i]='Op') then
|
||||
if (spirv.LEnums.Strings[i]='Op') then
|
||||
begin
|
||||
FileWrite(F,PChar(LGetInfo_p)^,Length(LGetInfo_p));
|
||||
FileWrite(F,PChar(LOpGetInfo_p)^,Length(LOpGetInfo_p));
|
||||
|
||||
IG:=LGroup.Min;
|
||||
if Assigned(IG) then
|
||||
repeat
|
||||
|
||||
IT:=OpInfoSet.Find(IG.Value);
|
||||
IT:=spirv.OpInfoSet.Find(IG.Value);
|
||||
if Assigned(IT) then
|
||||
begin
|
||||
_name:=' '+GetPasLabel(IG.Value)+':QWORD(Result):=$'+HexStr(QWORD(IT.Value),16)+';'+NL;
|
||||
@ -439,6 +529,44 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
//LGroup:=glsl.inst;
|
||||
|
||||
_name:=LFunc+'GlslOp'+LGetStr_p;
|
||||
FileWrite(F,PChar(_name)^,Length(_name));
|
||||
|
||||
IG:=glsl.inst.Min;
|
||||
if Assigned(IG) then
|
||||
repeat
|
||||
_name:=' '+GetPasLabel(IG.Value)+':Result:='''+IG.Value+''';'+NL;
|
||||
FileWrite(F,PChar(_name)^,Length(_name));
|
||||
until (not IG.Next);
|
||||
FreeAndNil(IG);
|
||||
|
||||
FileWrite(F,PChar(LGetStr_e)^,Length(LGetStr_e));
|
||||
|
||||
begin
|
||||
FileWrite(F,PChar(LGlGetInfo_p)^,Length(LGlGetInfo_p));
|
||||
|
||||
IG:=glsl.inst.Min;
|
||||
if Assigned(IG) then
|
||||
repeat
|
||||
|
||||
IT:=glsl.OpInfoSet.Find(IG.Value);
|
||||
if Assigned(IT) then
|
||||
begin
|
||||
_name:=' '+GetPasLabel(IG.Value)+':QWORD(Result):=$'+HexStr(QWORD(IT.Value),16)+';'+NL;
|
||||
FileWrite(F,PChar(_name)^,Length(_name));
|
||||
FreeAndNil(IT);
|
||||
end;
|
||||
|
||||
until (not IG.Next);
|
||||
FreeAndNil(IG);
|
||||
|
||||
FileWrite(F,PChar(LGetStr_e)^,Length(LGetStr_e));
|
||||
end;
|
||||
|
||||
//
|
||||
|
||||
FileWrite(F,PChar(ep_func)^,Length(ep_func));
|
||||
FileClose(F);
|
||||
end;
|
||||
@ -452,6 +580,7 @@ begin
|
||||
|
||||
loadSpirvJson('spirv.json');
|
||||
loadSpirvGrammarJson('spirv.core.grammar.json');
|
||||
loadGlslGrammarJson('extinst.glsl.std.450.grammar.json');
|
||||
Writeln('Load is Fin');
|
||||
SaveToPas('spirv.pas');
|
||||
Writeln('Save is Fin');
|
||||
|
Loading…
Reference in New Issue
Block a user