Updated spirv-headers.

This commit is contained in:
Бранимир Караџић 2023-06-24 09:54:48 -07:00
parent 6bab752aca
commit e1211c2909
5 changed files with 317 additions and 4 deletions

View File

@ -82,12 +82,14 @@
<id value="29" vendor="Mikkosoft Productions" tool="MSP Shader Compiler" comment="Contact Mikko Rasa, tdb@tdb.fi"/>
<id value="30" vendor="SpvGenTwo community" tool="SpvGenTwo SPIR-V IR Tools" comment="https://github.com/rAzoR8/SpvGenTwo"/>
<id value="31" vendor="Google" tool="Skia SkSL" comment="Contact Ethan Nicholas, ethannicholas@google.com"/>
<id value="32" vendor="TornadoVM" tool="SPIRV Beehive Toolkit" comment="https://github.com/beehive-lab/spirv-beehive-toolkit"/>
<id value="32" vendor="TornadoVM" tool="Beehive SPIRV Toolkit" comment="https://github.com/beehive-lab/beehive-spirv-toolkit"/>
<id value="33" vendor="DragonJoker" tool="ShaderWriter" comment="Contact Sylvain Doremus, https://github.com/DragonJoker/ShaderWriter"/>
<id value="34" vendor="Rayan Hatout" tool="SPIRVSmith" comment="Contact Rayan Hatout rayan.hatout@gmail.com, Repo https://github.com/rayanht/SPIRVSmith"/>
<id value="35" vendor="Saarland University" tool="Shady" comment="Contact Hugo Devillers devillers@uni-saarland.de, Repo https://github.com/Hugobros3/shady"/>
<id value="36" vendor="Taichi Graphics" tool="Taichi" comment="Contact Rendong Liang rendongliang@taichi.graphics, Repo https://github.com/taichi-dev/taichi"/>
<unused start="37" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
<id value="37" vendor="heroseh" tool="Hero C Compiler" comment="https://github.com/heroseh/hcc"/>
<id value="38" vendor="Meta" tool="SparkSL" comment="Contact Dunfan Lu, dunfanlu@meta.com, https://sparkar.facebook.com/ar-studio/learn/sparksl/sparksl-overview"/>
<unused start="39" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
</ids>
<!-- SECTION: SPIR-V Opcodes and Enumerants -->
@ -143,6 +145,7 @@
<ids type="opcode" start="6464" end="6527" vendor="N/A" comment="Blank range to keep alignment with non-opcodes"/>
<ids type="opcode" start="6528" end="6591" vendor="Codeplay" comment="Contact duncan.brawley@codeplay.com"/>
<ids type="opcode" start="6592" end="6655" vendor="Saarland University" comment="Contact devillers@cg.uni-saarland.de"/>
<ids type="opcode" start="6656" end="6719" vendor="Meta" comment="Contact dunfanlu@meta.com"/>
<!-- Opcode enumerants to reserve for future use. To get a block, allocate
multiples of 64 starting at the lowest available point in this
block and add a corresponding <ids> tag immediately above. Make
@ -175,6 +178,7 @@
<ids type="enumerant" start="6464" end="6527" vendor="Mikkosoft Productions" comment="Contact Mikko Rasa, tdb@tdb.fi"/>
<ids type="enumerant" start="6528" end="6591" vendor="Codeplay" comment="Contact duncan.brawley@codeplay.com"/>
<ids type="enumerant" start="6592" end="6655" vendor="Saarland University" comment="Contact devillers@cg.uni-saarland.de"/>
<ids type="enumerant" start="6656" end="6719" vendor="Meta" comment="Contact dunfanlu@meta.com"/>
<!-- Enumerants to reserve for future use. To get a block, allocate
multiples of 64 starting at the lowest available point in this
block and add a corresponding <ids> tag immediately above. Make

View File

@ -4493,6 +4493,77 @@
"extensions" : [ "SPV_KHR_integer_dot_product" ],
"version" : "1.6"
},
{
"opname" : "OpTypeCooperativeMatrixKHR",
"class" : "Type-Declaration",
"opcode" : 4456,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Component Type'" },
{ "kind" : "IdScope", "name" : "'Scope'" },
{ "kind" : "IdRef", "name" : "'Rows'" },
{ "kind" : "IdRef", "name" : "'Columns'" },
{ "kind" : "IdRef", "name" : "'Use'" }
],
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
},
{
"opname" : "OpCooperativeMatrixLoadKHR",
"class" : "Memory",
"opcode" : 4457,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdRef", "name" : "'MemoryLayout'" },
{ "kind" : "IdRef", "name" : "'Stride'", "quantifier": "?" },
{ "kind" : "MemoryAccess", "name" : "'Memory Operand'", "quantifier" : "?" }
],
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
},
{
"opname" : "OpCooperativeMatrixStoreKHR",
"class" : "Memory",
"opcode" : 4458,
"operands" : [
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdRef", "name" : "'Object'" },
{ "kind" : "IdRef", "name" : "'MemoryLayout'" },
{ "kind" : "IdRef", "name" : "'Stride'", "quantifier": "?" },
{ "kind" : "MemoryAccess", "name" : "'Memory Operand'", "quantifier" : "?" }
],
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
},
{
"opname" : "OpCooperativeMatrixMulAddKHR",
"class" : "Arithmetic",
"opcode" : 4459,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'A'" },
{ "kind" : "IdRef", "name" : "'B'" },
{ "kind" : "IdRef", "name" : "'C'" },
{ "kind" : "CooperativeMatrixOperands", "name" : "'Cooperative Matrix Operands'", "quantifier" : "?" }
],
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
},
{
"opname" : "OpCooperativeMatrixLengthKHR",
"class" : "Miscellaneous",
"opcode" : 4460,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Type'" }
],
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
},
{
"opname" : "OpTypeRayQueryKHR",
"class" : "Reserved",
@ -10084,6 +10155,10 @@
{
"enumerant" : "SYCL",
"value" : 7
},
{
"enumerant" : "HERO_C",
"value" : 8
}
]
},
@ -11606,6 +11681,16 @@
"enumerant" : "UnormInt101010_2",
"value" : 16,
"capabilities" : [ "Kernel" ]
},
{
"enumerant" : "UnsignedIntRaw10EXT",
"value" : 19,
"capabilities" : [ "Kernel" ]
},
{
"enumerant" : "UnsignedIntRaw12EXT",
"value" : 20,
"capabilities" : [ "Kernel" ]
}
]
},
@ -15104,6 +15189,12 @@
"extensions" : [ "SPV_KHR_ray_cull_mask" ],
"version" : "None"
},
{
"enumerant" : "CooperativeMatrixKHR",
"value" : 6022,
"extensions" : [ "SPV_KHR_cooperative_matrix" ],
"version" : "None"
},
{
"enumerant" : "BitInstructions",
"value" : 6025,
@ -15269,6 +15360,90 @@
}
]
},
{
"category" : "BitEnum",
"kind" : "CooperativeMatrixOperands",
"enumerants" : [
{
"enumerant" : "None",
"value" : "0x0000",
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
},
{
"enumerant" : "MatrixASignedComponents",
"value" : "0x0001",
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
},
{
"enumerant" : "MatrixBSignedComponents",
"value" : "0x0002",
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
},
{
"enumerant" : "MatrixCSignedComponents",
"value" : "0x0004",
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
},
{
"enumerant" : "MatrixResultSignedComponents",
"value" : "0x0008",
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
},
{
"enumerant" : "SaturatingAccumulation",
"value" : "0x0010",
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
}
]
},
{
"category" : "ValueEnum",
"kind" : "CooperativeMatrixLayout",
"enumerants" : [
{
"enumerant" : "RowMajorKHR",
"value" : 0,
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
},
{
"enumerant" : "ColumnMajorKHR",
"value" : 1,
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
}
]
},
{
"category" : "ValueEnum",
"kind" : "CooperativeMatrixUse",
"enumerants" : [
{
"enumerant" : "MatrixAKHR",
"value" : 0,
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
},
{
"enumerant" : "MatrixBKHR",
"value" : 1,
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
},
{
"enumerant" : "MatrixAccumulatorKHR",
"value" : 2,
"capabilities" : [ "CooperativeMatrixKHR" ],
"version" : "None"
}
]
},
{
"category" : "Id",
"kind" : "IdResultType",

View File

@ -73,6 +73,7 @@ typedef enum SpvSourceLanguage_ {
SpvSourceLanguageHLSL = 5,
SpvSourceLanguageCPP_for_OpenCL = 6,
SpvSourceLanguageSYCL = 7,
SpvSourceLanguageHERO_C = 8,
SpvSourceLanguageMax = 0x7fffffff,
} SpvSourceLanguage;
@ -360,6 +361,8 @@ typedef enum SpvImageChannelDataType_ {
SpvImageChannelDataTypeFloat = 14,
SpvImageChannelDataTypeUnormInt24 = 15,
SpvImageChannelDataTypeUnormInt101010_2 = 16,
SpvImageChannelDataTypeUnsignedIntRaw10EXT = 19,
SpvImageChannelDataTypeUnsignedIntRaw12EXT = 20,
SpvImageChannelDataTypeMax = 0x7fffffff,
} SpvImageChannelDataType;
@ -1156,6 +1159,7 @@ typedef enum SpvCapability_ {
SpvCapabilityDotProduct = 6019,
SpvCapabilityDotProductKHR = 6019,
SpvCapabilityRayCullMaskKHR = 6020,
SpvCapabilityCooperativeMatrixKHR = 6022,
SpvCapabilityBitInstructions = 6025,
SpvCapabilityGroupNonUniformRotateKHR = 6026,
SpvCapabilityAtomicFloat32AddEXT = 6033,
@ -1276,6 +1280,37 @@ typedef enum SpvPackedVectorFormat_ {
SpvPackedVectorFormatMax = 0x7fffffff,
} SpvPackedVectorFormat;
typedef enum SpvCooperativeMatrixOperandsShift_ {
SpvCooperativeMatrixOperandsMatrixASignedComponentsShift = 0,
SpvCooperativeMatrixOperandsMatrixBSignedComponentsShift = 1,
SpvCooperativeMatrixOperandsMatrixCSignedComponentsShift = 2,
SpvCooperativeMatrixOperandsMatrixResultSignedComponentsShift = 3,
SpvCooperativeMatrixOperandsSaturatingAccumulationShift = 4,
SpvCooperativeMatrixOperandsMax = 0x7fffffff,
} SpvCooperativeMatrixOperandsShift;
typedef enum SpvCooperativeMatrixOperandsMask_ {
SpvCooperativeMatrixOperandsMaskNone = 0,
SpvCooperativeMatrixOperandsMatrixASignedComponentsMask = 0x00000001,
SpvCooperativeMatrixOperandsMatrixBSignedComponentsMask = 0x00000002,
SpvCooperativeMatrixOperandsMatrixCSignedComponentsMask = 0x00000004,
SpvCooperativeMatrixOperandsMatrixResultSignedComponentsMask = 0x00000008,
SpvCooperativeMatrixOperandsSaturatingAccumulationMask = 0x00000010,
} SpvCooperativeMatrixOperandsMask;
typedef enum SpvCooperativeMatrixLayout_ {
SpvCooperativeMatrixLayoutRowMajorKHR = 0,
SpvCooperativeMatrixLayoutColumnMajorKHR = 1,
SpvCooperativeMatrixLayoutMax = 0x7fffffff,
} SpvCooperativeMatrixLayout;
typedef enum SpvCooperativeMatrixUse_ {
SpvCooperativeMatrixUseMatrixAKHR = 0,
SpvCooperativeMatrixUseMatrixBKHR = 1,
SpvCooperativeMatrixUseMatrixAccumulatorKHR = 2,
SpvCooperativeMatrixUseMax = 0x7fffffff,
} SpvCooperativeMatrixUse;
typedef enum SpvOp_ {
SpvOpNop = 0,
SpvOpUndef = 1,
@ -1649,6 +1684,11 @@ typedef enum SpvOp_ {
SpvOpUDotAccSatKHR = 4454,
SpvOpSUDotAccSat = 4455,
SpvOpSUDotAccSatKHR = 4455,
SpvOpTypeCooperativeMatrixKHR = 4456,
SpvOpCooperativeMatrixLoadKHR = 4457,
SpvOpCooperativeMatrixStoreKHR = 4458,
SpvOpCooperativeMatrixMulAddKHR = 4459,
SpvOpCooperativeMatrixLengthKHR = 4460,
SpvOpTypeRayQueryKHR = 4472,
SpvOpRayQueryInitializeKHR = 4473,
SpvOpRayQueryTerminateKHR = 4474,
@ -2367,6 +2407,11 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break;
case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break;
case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
case SpvOpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
case SpvOpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
case SpvOpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;

View File

@ -69,6 +69,7 @@ enum class SourceLanguage : unsigned {
HLSL = 5,
CPP_for_OpenCL = 6,
SYCL = 7,
HERO_C = 8,
Max = 0x7fffffff,
};
@ -356,6 +357,8 @@ enum class ImageChannelDataType : unsigned {
Float = 14,
UnormInt24 = 15,
UnormInt101010_2 = 16,
UnsignedIntRaw10EXT = 19,
UnsignedIntRaw12EXT = 20,
Max = 0x7fffffff,
};
@ -1152,6 +1155,7 @@ enum class Capability : unsigned {
DotProduct = 6019,
DotProductKHR = 6019,
RayCullMaskKHR = 6020,
CooperativeMatrixKHR = 6022,
BitInstructions = 6025,
GroupNonUniformRotateKHR = 6026,
AtomicFloat32AddEXT = 6033,
@ -1272,6 +1276,37 @@ enum class PackedVectorFormat : unsigned {
Max = 0x7fffffff,
};
enum class CooperativeMatrixOperandsShift : unsigned {
MatrixASignedComponents = 0,
MatrixBSignedComponents = 1,
MatrixCSignedComponents = 2,
MatrixResultSignedComponents = 3,
SaturatingAccumulation = 4,
Max = 0x7fffffff,
};
enum class CooperativeMatrixOperandsMask : unsigned {
MaskNone = 0,
MatrixASignedComponents = 0x00000001,
MatrixBSignedComponents = 0x00000002,
MatrixCSignedComponents = 0x00000004,
MatrixResultSignedComponents = 0x00000008,
SaturatingAccumulation = 0x00000010,
};
enum class CooperativeMatrixLayout : unsigned {
RowMajorKHR = 0,
ColumnMajorKHR = 1,
Max = 0x7fffffff,
};
enum class CooperativeMatrixUse : unsigned {
MatrixAKHR = 0,
MatrixBKHR = 1,
MatrixAccumulatorKHR = 2,
Max = 0x7fffffff,
};
enum class Op : unsigned {
OpNop = 0,
OpUndef = 1,
@ -1645,6 +1680,11 @@ enum class Op : unsigned {
OpUDotAccSatKHR = 4454,
OpSUDotAccSat = 4455,
OpSUDotAccSatKHR = 4455,
OpTypeCooperativeMatrixKHR = 4456,
OpCooperativeMatrixLoadKHR = 4457,
OpCooperativeMatrixStoreKHR = 4458,
OpCooperativeMatrixMulAddKHR = 4459,
OpCooperativeMatrixLengthKHR = 4460,
OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474,
@ -2363,6 +2403,11 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
case Op::OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
case Op::OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
case Op::OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
case Op::OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
case Op::OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@ -2745,6 +2790,10 @@ constexpr FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentS
constexpr FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); }
constexpr FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
constexpr FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); }
constexpr CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); }
constexpr CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); }
constexpr CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); }
constexpr CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); }
} // end namespace spv

View File

@ -75,7 +75,8 @@
"OpenCL_CPP": 4,
"HLSL": 5,
"CPP_for_OpenCL": 6,
"SYCL": 7
"SYCL": 7,
"HERO_C": 8
}
},
{
@ -395,7 +396,9 @@
"HalfFloat": 13,
"Float": 14,
"UnormInt24": 15,
"UnormInt101010_2": 16
"UnormInt101010_2": 16,
"UnsignedIntRaw10EXT": 19,
"UnsignedIntRaw12EXT": 20
}
},
{
@ -1132,6 +1135,7 @@
"DotProduct": 6019,
"DotProductKHR": 6019,
"RayCullMaskKHR": 6020,
"CooperativeMatrixKHR": 6022,
"BitInstructions": 6025,
"GroupNonUniformRotateKHR": 6026,
"AtomicFloat32AddEXT": 6033,
@ -1258,6 +1262,37 @@
"PackedVectorFormat4x8BitKHR": 0
}
},
{
"Name": "CooperativeMatrixOperands",
"Type": "Bit",
"Values":
{
"MatrixASignedComponents": 0,
"MatrixBSignedComponents": 1,
"MatrixCSignedComponents": 2,
"MatrixResultSignedComponents": 3,
"SaturatingAccumulation": 4
}
},
{
"Name": "CooperativeMatrixLayout",
"Type": "Value",
"Values":
{
"RowMajorKHR": 0,
"ColumnMajorKHR": 1
}
},
{
"Name": "CooperativeMatrixUse",
"Type": "Value",
"Values":
{
"MatrixAKHR": 0,
"MatrixBKHR": 1,
"MatrixAccumulatorKHR": 2
}
},
{
"Name": "Op",
"Type": "Value",
@ -1635,6 +1670,11 @@
"OpUDotAccSatKHR": 4454,
"OpSUDotAccSat": 4455,
"OpSUDotAccSatKHR": 4455,
"OpTypeCooperativeMatrixKHR": 4456,
"OpCooperativeMatrixLoadKHR": 4457,
"OpCooperativeMatrixStoreKHR": 4458,
"OpCooperativeMatrixMulAddKHR": 4459,
"OpCooperativeMatrixLengthKHR": 4460,
"OpTypeRayQueryKHR": 4472,
"OpRayQueryInitializeKHR": 4473,
"OpRayQueryTerminateKHR": 4474,