Updated spirv-headers.

This commit is contained in:
Бранимир Караџић 2024-04-12 21:20:55 -07:00
parent 406c8deaba
commit 03279fe3c1
5 changed files with 175 additions and 7 deletions

View File

@ -92,7 +92,9 @@
<id value="39" vendor="SirLynix" tool="Nazara ShaderLang Compiler" comment="Contact Jérôme Leclercq, https://github.com/NazaraEngine/ShaderLang"/> <id value="39" vendor="SirLynix" tool="Nazara ShaderLang Compiler" comment="Contact Jérôme Leclercq, https://github.com/NazaraEngine/ShaderLang"/>
<id value="40" vendor="NVIDIA" tool="Slang Compiler" comment="Contact Theresa Foley, tfoley@nvidia.com, https://github.com/shader-slang/slang/"/> <id value="40" vendor="NVIDIA" tool="Slang Compiler" comment="Contact Theresa Foley, tfoley@nvidia.com, https://github.com/shader-slang/slang/"/>
<id value="41" vendor="Zig Software Foundation" tool="Zig Compiler" comment="Contact Robin Voetter, https://github.com/Snektron"/> <id value="41" vendor="Zig Software Foundation" tool="Zig Compiler" comment="Contact Robin Voetter, https://github.com/Snektron"/>
<unused start="42" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/> <id value="42" vendor="Rendong Liang" tool="spq" comment="Contact Rendong Liang, admin@penguinliong.moe, https://github.com/PENGUINLIONG/spq-rs"/>
<id value="43" vendor="LLVM" tool="LLVM SPIR-V Backend" comment="Contact Michal Paszkowski, michal.paszkowski@intel.com, https://github.com/llvm/llvm-project/tree/main/llvm/lib/Target/SPIRV"/>
<unused start="44" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
</ids> </ids>
<!-- SECTION: SPIR-V Opcodes and Enumerants --> <!-- SECTION: SPIR-V Opcodes and Enumerants -->
@ -208,8 +210,8 @@
<!-- Reserved loop control bits --> <!-- Reserved loop control bits -->
<ids type="LoopControl" start="0" end="15" vendor="Khronos" comment="Reserved LoopControl bits, not available to vendors - see the SPIR-V Specification"/> <ids type="LoopControl" start="0" end="15" vendor="Khronos" comment="Reserved LoopControl bits, not available to vendors - see the SPIR-V Specification"/>
<ids type="LoopControl" start="16" end="25" vendor="Intel" comment="Contact michael.kinsner@intel.com"/> <ids type="LoopControl" start="16" end="27" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
<ids type="LoopControl" start="26" end="30" comment="Unreserved bits reservable for use by vendors"/> <ids type="LoopControl" start="28" end="30" comment="Unreserved bits reservable for use by vendors"/>
<ids type="LoopControl" start="31" end="31" vendor="Khronos" comment="Reserved LoopControl bit, not available to vendors"/> <ids type="LoopControl" start="31" end="31" vendor="Khronos" comment="Reserved LoopControl bit, not available to vendors"/>
@ -269,8 +271,8 @@
<!-- Reserved memory operand bits --> <!-- Reserved memory operand bits -->
<ids type="MemoryOperand" start="0" end="15" vendor="Khronos" comment="Reserved MemoryOperand bits, not available to vendors - see the SPIR-V Specification"/> <ids type="MemoryOperand" start="0" end="15" vendor="Khronos" comment="Reserved MemoryOperand bits, not available to vendors - see the SPIR-V Specification"/>
<ids type="MemoryOperand" start="16" end="17" vendor="Intel" comment="Contact michael.kinsner@intel.com"/> <ids type="MemoryOperand" start="16" end="18" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
<ids type="MemoryOperand" start="18" end="30" comment="Unreserved bits reservable for use by vendors"/> <ids type="MemoryOperand" start="19" end="30" comment="Unreserved bits reservable for use by vendors"/>
<ids type="MemoryOperand" start="31" end="31" vendor="Khronos" comment="Reserved MemoryOperand bit, not available to vendors"/> <ids type="MemoryOperand" start="31" end="31" vendor="Khronos" comment="Reserved MemoryOperand bit, not available to vendors"/>
<!-- SECTION: SPIR-V Image Operand Bit Reservations --> <!-- SECTION: SPIR-V Image Operand Bit Reservations -->

View File

@ -6251,6 +6251,24 @@
"capabilities" : [ "BindlessTextureNV" ], "capabilities" : [ "BindlessTextureNV" ],
"version" : "None" "version" : "None"
}, },
{
"opname" : "OpRawAccessChainNV",
"class" : "Memory",
"opcode" : 5398,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "name" : "'Byte stride'" },
{ "kind" : "IdRef", "name" : "'Element index'" },
{ "kind" : "IdRef", "name" : "'Byte offset'" },
{ "kind" : "RawAccessChainOperands", "quantifier" : "?" }
],
"capabilities" : [
"RawAccessChainsNV"
],
"version" : "None"
},
{ {
"opname" : "OpSubgroupShuffleINTEL", "opname" : "OpSubgroupShuffleINTEL",
"class" : "Group", "class" : "Group",
@ -10667,6 +10685,28 @@
} }
] ]
}, },
{
"category" : "BitEnum",
"kind" : "RawAccessChainOperands",
"enumerants" : [
{
"enumerant" : "None",
"value" : "0x0000"
},
{
"enumerant" : "RobustnessPerComponentNV",
"value" : "0x0001",
"capabilities" : [ "RawAccessChainsNV" ],
"version" : "None"
},
{
"enumerant" : "RobustnessPerElementNV",
"value" : "0x0002",
"capabilities" : [ "RawAccessChainsNV" ],
"version" : "None"
}
]
},
{ {
"category" : "ValueEnum", "category" : "ValueEnum",
"kind" : "SourceLanguage", "kind" : "SourceLanguage",
@ -11660,6 +11700,33 @@
], ],
"capabilities" : [ "VectorComputeINTEL" ], "capabilities" : [ "VectorComputeINTEL" ],
"version" : "None" "version" : "None"
},
{
"enumerant" : "MaximumRegistersINTEL",
"value" : 6461,
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Number of Registers'" }
],
"capabilities" : [ "RegisterLimitsINTEL" ],
"version" : "None"
},
{
"enumerant" : "MaximumRegistersIdINTEL",
"value" : 6462,
"parameters" : [
{ "kind" : "IdRef", "name" : "'Number of Registers'" }
],
"capabilities" : [ "RegisterLimitsINTEL" ],
"version" : "None"
},
{
"enumerant" : "NamedMaximumRegistersINTEL",
"value" : 6463,
"parameters" : [
{ "kind" : "NamedMaximumNumberOfRegisters", "name" : "'Named Maximum Number of Registers'" }
],
"capabilities" : [ "RegisterLimitsINTEL" ],
"version" : "None"
} }
] ]
}, },
@ -16056,6 +16123,12 @@
"extensions" : [ "SPV_NV_displacement_micromap" ], "extensions" : [ "SPV_NV_displacement_micromap" ],
"version" : "None" "version" : "None"
}, },
{
"enumerant" : "RawAccessChainsNV",
"value" : 5414,
"extensions" : [ "SPV_NV_raw_access_chains" ],
"version" : "None"
},
{ {
"enumerant" : "SubgroupShuffleINTEL", "enumerant" : "SubgroupShuffleINTEL",
"value" : 5568, "value" : 5568,
@ -16497,6 +16570,12 @@
"value" : 6441, "value" : 6441,
"extensions" : [ "SPV_INTEL_cache_controls" ], "extensions" : [ "SPV_INTEL_cache_controls" ],
"version" : "None" "version" : "None"
},
{
"enumerant" : "RegisterLimitsINTEL",
"value" : 6460,
"extensions" : [ "SPV_INTEL_maximum_registers" ],
"version" : "None"
} }
] ]
}, },
@ -16734,6 +16813,18 @@
} }
] ]
}, },
{
"category" : "ValueEnum",
"kind" : "NamedMaximumNumberOfRegisters",
"enumerants" : [
{
"enumerant" : "AutoINTEL",
"value" : 0,
"capabilities" : [ "RegisterLimitsINTEL" ],
"version" : "None"
}
]
},
{ {
"category" : "Id", "category" : "Id",
"kind" : "IdResultType", "kind" : "IdResultType",

View File

@ -219,6 +219,9 @@ typedef enum SpvExecutionMode_ {
SpvExecutionModeStreamingInterfaceINTEL = 6154, SpvExecutionModeStreamingInterfaceINTEL = 6154,
SpvExecutionModeRegisterMapInterfaceINTEL = 6160, SpvExecutionModeRegisterMapInterfaceINTEL = 6160,
SpvExecutionModeNamedBarrierCountINTEL = 6417, SpvExecutionModeNamedBarrierCountINTEL = 6417,
SpvExecutionModeMaximumRegistersINTEL = 6461,
SpvExecutionModeMaximumRegistersIdINTEL = 6462,
SpvExecutionModeNamedMaximumRegistersINTEL = 6463,
SpvExecutionModeMax = 0x7fffffff, SpvExecutionModeMax = 0x7fffffff,
} SpvExecutionMode; } SpvExecutionMode;
@ -1156,6 +1159,7 @@ typedef enum SpvCapability_ {
SpvCapabilityRayQueryPositionFetchKHR = 5391, SpvCapabilityRayQueryPositionFetchKHR = 5391,
SpvCapabilityAtomicFloat16VectorNV = 5404, SpvCapabilityAtomicFloat16VectorNV = 5404,
SpvCapabilityRayTracingDisplacementMicromapNV = 5409, SpvCapabilityRayTracingDisplacementMicromapNV = 5409,
SpvCapabilityRawAccessChainsNV = 5414,
SpvCapabilitySubgroupShuffleINTEL = 5568, SpvCapabilitySubgroupShuffleINTEL = 5568,
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569, SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
SpvCapabilitySubgroupImageBlockIOINTEL = 5570, SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
@ -1229,6 +1233,7 @@ typedef enum SpvCapability_ {
SpvCapabilityGroupUniformArithmeticKHR = 6400, SpvCapabilityGroupUniformArithmeticKHR = 6400,
SpvCapabilityMaskedGatherScatterINTEL = 6427, SpvCapabilityMaskedGatherScatterINTEL = 6427,
SpvCapabilityCacheControlsINTEL = 6441, SpvCapabilityCacheControlsINTEL = 6441,
SpvCapabilityRegisterLimitsINTEL = 6460,
SpvCapabilityMax = 0x7fffffff, SpvCapabilityMax = 0x7fffffff,
} SpvCapability; } SpvCapability;
@ -1397,6 +1402,23 @@ typedef enum SpvStoreCacheControl_ {
SpvStoreCacheControlMax = 0x7fffffff, SpvStoreCacheControlMax = 0x7fffffff,
} SpvStoreCacheControl; } SpvStoreCacheControl;
typedef enum SpvNamedMaximumNumberOfRegisters_ {
SpvNamedMaximumNumberOfRegistersAutoINTEL = 0,
SpvNamedMaximumNumberOfRegistersMax = 0x7fffffff,
} SpvNamedMaximumNumberOfRegisters;
typedef enum SpvRawAccessChainOperandsShift_ {
SpvRawAccessChainOperandsRobustnessPerComponentNVShift = 0,
SpvRawAccessChainOperandsRobustnessPerElementNVShift = 1,
SpvRawAccessChainOperandsMax = 0x7fffffff,
} SpvRawAccessChainOperandsShift;
typedef enum SpvRawAccessChainOperandsMask_ {
SpvRawAccessChainOperandsMaskNone = 0,
SpvRawAccessChainOperandsRobustnessPerComponentNVMask = 0x00000001,
SpvRawAccessChainOperandsRobustnessPerElementNVMask = 0x00000002,
} SpvRawAccessChainOperandsMask;
typedef enum SpvOp_ { typedef enum SpvOp_ {
SpvOpNop = 0, SpvOpNop = 0,
SpvOpUndef = 1, SpvOpUndef = 1,
@ -1874,6 +1896,7 @@ typedef enum SpvOp_ {
SpvOpConvertUToSampledImageNV = 5395, SpvOpConvertUToSampledImageNV = 5395,
SpvOpConvertSampledImageToUNV = 5396, SpvOpConvertSampledImageToUNV = 5396,
SpvOpSamplerImageAddressingModeNV = 5397, SpvOpSamplerImageAddressingModeNV = 5397,
SpvOpRawAccessChainNV = 5398,
SpvOpSubgroupShuffleINTEL = 5571, SpvOpSubgroupShuffleINTEL = 5571,
SpvOpSubgroupShuffleDownINTEL = 5572, SpvOpSubgroupShuffleDownINTEL = 5572,
SpvOpSubgroupShuffleUpINTEL = 5573, SpvOpSubgroupShuffleUpINTEL = 5573,
@ -2608,6 +2631,7 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break; case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break; case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break; case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
case SpvOpRawAccessChainNV: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;

View File

@ -215,6 +215,9 @@ enum class ExecutionMode : unsigned {
StreamingInterfaceINTEL = 6154, StreamingInterfaceINTEL = 6154,
RegisterMapInterfaceINTEL = 6160, RegisterMapInterfaceINTEL = 6160,
NamedBarrierCountINTEL = 6417, NamedBarrierCountINTEL = 6417,
MaximumRegistersINTEL = 6461,
MaximumRegistersIdINTEL = 6462,
NamedMaximumRegistersINTEL = 6463,
Max = 0x7fffffff, Max = 0x7fffffff,
}; };
@ -1152,6 +1155,7 @@ enum class Capability : unsigned {
RayQueryPositionFetchKHR = 5391, RayQueryPositionFetchKHR = 5391,
AtomicFloat16VectorNV = 5404, AtomicFloat16VectorNV = 5404,
RayTracingDisplacementMicromapNV = 5409, RayTracingDisplacementMicromapNV = 5409,
RawAccessChainsNV = 5414,
SubgroupShuffleINTEL = 5568, SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569, SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570, SubgroupImageBlockIOINTEL = 5570,
@ -1225,6 +1229,7 @@ enum class Capability : unsigned {
GroupUniformArithmeticKHR = 6400, GroupUniformArithmeticKHR = 6400,
MaskedGatherScatterINTEL = 6427, MaskedGatherScatterINTEL = 6427,
CacheControlsINTEL = 6441, CacheControlsINTEL = 6441,
RegisterLimitsINTEL = 6460,
Max = 0x7fffffff, Max = 0x7fffffff,
}; };
@ -1393,6 +1398,23 @@ enum class StoreCacheControl : unsigned {
Max = 0x7fffffff, Max = 0x7fffffff,
}; };
enum class NamedMaximumNumberOfRegisters : unsigned {
AutoINTEL = 0,
Max = 0x7fffffff,
};
enum class RawAccessChainOperandsShift : unsigned {
RobustnessPerComponentNV = 0,
RobustnessPerElementNV = 1,
Max = 0x7fffffff,
};
enum class RawAccessChainOperandsMask : unsigned {
MaskNone = 0,
RobustnessPerComponentNV = 0x00000001,
RobustnessPerElementNV = 0x00000002,
};
enum class Op : unsigned { enum class Op : unsigned {
OpNop = 0, OpNop = 0,
OpUndef = 1, OpUndef = 1,
@ -1870,6 +1892,7 @@ enum class Op : unsigned {
OpConvertUToSampledImageNV = 5395, OpConvertUToSampledImageNV = 5395,
OpConvertSampledImageToUNV = 5396, OpConvertSampledImageToUNV = 5396,
OpSamplerImageAddressingModeNV = 5397, OpSamplerImageAddressingModeNV = 5397,
OpRawAccessChainNV = 5398,
OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleINTEL = 5571,
OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleDownINTEL = 5572,
OpSubgroupShuffleUpINTEL = 5573, OpSubgroupShuffleUpINTEL = 5573,
@ -2604,6 +2627,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break; case Op::OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
case Op::OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break; case Op::OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
case Op::OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break; case Op::OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
case Op::OpRawAccessChainNV: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
@ -2908,6 +2932,10 @@ constexpr CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask
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, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); }
constexpr CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); } constexpr CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); }
constexpr RawAccessChainOperandsMask operator|(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) | unsigned(b)); }
constexpr RawAccessChainOperandsMask operator&(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) & unsigned(b)); }
constexpr RawAccessChainOperandsMask operator^(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) ^ unsigned(b)); }
constexpr RawAccessChainOperandsMask operator~(RawAccessChainOperandsMask a) { return RawAccessChainOperandsMask(~unsigned(a)); }
} // end namespace spv } // end namespace spv

View File

@ -233,7 +233,10 @@
"FPFastMathDefault": 6028, "FPFastMathDefault": 6028,
"StreamingInterfaceINTEL": 6154, "StreamingInterfaceINTEL": 6154,
"RegisterMapInterfaceINTEL": 6160, "RegisterMapInterfaceINTEL": 6160,
"NamedBarrierCountINTEL": 6417 "NamedBarrierCountINTEL": 6417,
"MaximumRegistersINTEL": 6461,
"MaximumRegistersIdINTEL": 6462,
"NamedMaximumRegistersINTEL": 6463
} }
}, },
{ {
@ -1129,6 +1132,7 @@
"RayQueryPositionFetchKHR": 5391, "RayQueryPositionFetchKHR": 5391,
"AtomicFloat16VectorNV": 5404, "AtomicFloat16VectorNV": 5404,
"RayTracingDisplacementMicromapNV": 5409, "RayTracingDisplacementMicromapNV": 5409,
"RawAccessChainsNV": 5414,
"SubgroupShuffleINTEL": 5568, "SubgroupShuffleINTEL": 5568,
"SubgroupBufferBlockIOINTEL": 5569, "SubgroupBufferBlockIOINTEL": 5569,
"SubgroupImageBlockIOINTEL": 5570, "SubgroupImageBlockIOINTEL": 5570,
@ -1201,7 +1205,8 @@
"GlobalVariableFPGADecorationsINTEL": 6189, "GlobalVariableFPGADecorationsINTEL": 6189,
"GroupUniformArithmeticKHR": 6400, "GroupUniformArithmeticKHR": 6400,
"MaskedGatherScatterINTEL": 6427, "MaskedGatherScatterINTEL": 6427,
"CacheControlsINTEL": 6441 "CacheControlsINTEL": 6441,
"RegisterLimitsINTEL": 6460
} }
}, },
{ {
@ -1388,6 +1393,23 @@
"StreamingINTEL": 3 "StreamingINTEL": 3
} }
}, },
{
"Name": "NamedMaximumNumberOfRegisters",
"Type": "Value",
"Values":
{
"AutoINTEL": 0
}
},
{
"Name": "RawAccessChainOperands",
"Type": "Bit",
"Values":
{
"RobustnessPerComponentNV": 0,
"RobustnessPerElementNV": 1
}
},
{ {
"Name": "Op", "Name": "Op",
"Type": "Value", "Type": "Value",
@ -1869,6 +1891,7 @@
"OpConvertUToSampledImageNV": 5395, "OpConvertUToSampledImageNV": 5395,
"OpConvertSampledImageToUNV": 5396, "OpConvertSampledImageToUNV": 5396,
"OpSamplerImageAddressingModeNV": 5397, "OpSamplerImageAddressingModeNV": 5397,
"OpRawAccessChainNV": 5398,
"OpSubgroupShuffleINTEL": 5571, "OpSubgroupShuffleINTEL": 5571,
"OpSubgroupShuffleDownINTEL": 5572, "OpSubgroupShuffleDownINTEL": 5572,
"OpSubgroupShuffleUpINTEL": 5573, "OpSubgroupShuffleUpINTEL": 5573,