diff --git a/renderdoc/driver/shaders/spirv/spir-v.xml b/renderdoc/driver/shaders/spirv/spir-v.xml
index 34453f83a..5b4f9ce4a 100644
--- a/renderdoc/driver/shaders/spirv/spir-v.xml
+++ b/renderdoc/driver/shaders/spirv/spir-v.xml
@@ -55,7 +55,7 @@
-
+
@@ -82,7 +82,9 @@
-
+
+
+
@@ -119,7 +121,7 @@
-
+
@@ -148,7 +150,7 @@
-
+
diff --git a/renderdoc/driver/shaders/spirv/spirv.core.grammar.json b/renderdoc/driver/shaders/spirv/spirv.core.grammar.json
index 53aaf354e..766a4ed21 100644
--- a/renderdoc/driver/shaders/spirv/spirv.core.grammar.json
+++ b/renderdoc/driver/shaders/spirv/spirv.core.grammar.json
@@ -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"
@@ -1735,7 +1735,8 @@
{ "kind" : "IdRef", "name" : "'x'" },
{ "kind" : "IdRef", "name" : "'y'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "lastVersion" : "1.5"
},
{
"opname" : "OpOrdered",
@@ -4109,7 +4110,7 @@
"SPV_KHR_terminate_invocation"
],
"capabilities" : [ "Shader" ],
- "version" : "None"
+ "version" : "1.6"
},
{
"opname" : "OpSubgroupBallotKHR",
@@ -4260,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",
@@ -4272,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",
@@ -4286,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",
@@ -4300,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",
@@ -4315,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",
@@ -4330,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",
@@ -4345,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",
@@ -4925,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",
@@ -4944,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",
@@ -5256,7 +5438,7 @@
"version" : "None"
},
{
- "opname" : "OpConstFunctionPointerINTEL",
+ "opname" : "OpConstantFunctionPointerINTEL",
"class" : "@exclude",
"opcode" : 5600,
"operands" : [
@@ -8476,6 +8658,11 @@
"value" : "0x2000",
"version" : "1.4"
},
+ {
+ "enumerant" : "Nontemporal",
+ "value" : "0x4000",
+ "version" : "1.6"
+ },
{
"enumerant" : "Offsets",
"value" : "0x10000",
@@ -10795,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'" }
],
@@ -11032,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"
},
{
@@ -11080,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,
@@ -11400,6 +11618,12 @@
"value" : 6087,
"capabilities" : [ "VectorComputeINTEL" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "MediaBlockIOINTEL",
+ "value" : 6140,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
}
]
},
@@ -11867,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"
},
{
@@ -12603,6 +12841,11 @@
"value" : 70,
"version" : "1.5"
},
+ {
+ "enumerant" : "UniformDecoration",
+ "value" : 71,
+ "version" : "1.6"
+ },
{
"enumerant" : "FragmentShadingRateKHR",
"value" : 4422,
@@ -12928,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"
},
{
@@ -13214,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"
},
{
@@ -13452,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",
@@ -13486,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"
},
@@ -13512,7 +13792,6 @@
{
"enumerant" : "AtomicFloat16AddEXT",
"value" : 6095,
- "capabilities" : [ "Shader" ],
"extensions" : [ "SPV_EXT_shader_atomic_float16_add" ],
"version" : "None"
},
@@ -13588,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"
}
]
},
diff --git a/renderdoc/driver/shaders/spirv/spirv_debug.cpp b/renderdoc/driver/shaders/spirv/spirv_debug.cpp
index b9cb2d662..8ec5c5ba9 100644
--- a/renderdoc/driver/shaders/spirv/spirv_debug.cpp
+++ b/renderdoc/driver/shaders/spirv/spirv_debug.cpp
@@ -3731,7 +3731,7 @@ void ThreadState::StepNext(ShaderDebugState *state, const rdcarray
case Op::VariableLengthArrayINTEL:
case Op::TraceMotionNV:
case Op::TraceRayMotionNV:
- case Op::ConstFunctionPointerINTEL:
+ case Op::ConstantFunctionPointerINTEL:
case Op::AsmTargetINTEL:
case Op::AsmCallINTEL:
case Op::SaveMemoryINTEL:
@@ -3794,6 +3794,13 @@ void ThreadState::StepNext(ShaderDebugState *state, const rdcarray
case Op::TypeStructContinuedINTEL:
case Op::ConstantCompositeContinuedINTEL:
case Op::SpecConstantCompositeContinuedINTEL:
+ case Op::ConvertUToImageNV:
+ case Op::ConvertUToSamplerNV:
+ case Op::ConvertUToSampledImageNV:
+ case Op::ConvertImageToUNV:
+ case Op::ConvertSamplerToUNV:
+ case Op::ConvertSampledImageToUNV:
+ case Op::SamplerImageAddressingModeNV:
{
RDCERR("Unsupported extension opcode used %s", ToStr(opdata.op).c_str());
diff --git a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp
index d4d295339..3e21d9c28 100644
--- a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp
+++ b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp
@@ -365,6 +365,7 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
case Capability::Int64ImageEXT:
case Capability::ExpectAssumeKHR:
case Capability::BitInstructions:
+ case Capability::UniformDecoration:
{
supported = true;
break;
@@ -516,6 +517,7 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
case Capability::IOPipesINTEL:
case Capability::LongConstantCompositeINTEL:
case Capability::DebugInfoModuleINTEL:
+ case Capability::BindlessTextureNV:
case Capability::Max:
case Capability::Invalid:
{
diff --git a/renderdoc/driver/shaders/spirv/spirv_gen.cpp b/renderdoc/driver/shaders/spirv/spirv_gen.cpp
index 854336e9e..7f7afba00 100644
--- a/renderdoc/driver/shaders/spirv/spirv_gen.cpp
+++ b/renderdoc/driver/shaders/spirv/spirv_gen.cpp
@@ -83,6 +83,7 @@ rdcstr DoStringise(const rdcspv::ImageOperands &el)
STRINGISE_BITFIELD_CLASS_BIT(VolatileTexel);
STRINGISE_BITFIELD_CLASS_BIT(SignExtend);
STRINGISE_BITFIELD_CLASS_BIT(ZeroExtend);
+ STRINGISE_BITFIELD_CLASS_BIT(Nontemporal);
STRINGISE_BITFIELD_CLASS_BIT(Offsets);
}
END_BITFIELD_STRINGISE();
@@ -738,10 +739,14 @@ rdcstr DoStringise(const rdcspv::Decoration &el)
STRINGISE_ENUM_CLASS(PerPrimitiveNV);
STRINGISE_ENUM_CLASS(PerViewNV);
STRINGISE_ENUM_CLASS(PerTaskNV);
- STRINGISE_ENUM_CLASS(PerVertexNV);
+ STRINGISE_ENUM_CLASS(PerVertexKHR);
STRINGISE_ENUM_CLASS(NonUniform);
STRINGISE_ENUM_CLASS(RestrictPointer);
STRINGISE_ENUM_CLASS(AliasedPointer);
+ STRINGISE_ENUM_CLASS(BindlessSamplerNV);
+ STRINGISE_ENUM_CLASS(BindlessImageNV);
+ STRINGISE_ENUM_CLASS(BoundSamplerNV);
+ STRINGISE_ENUM_CLASS(BoundImageNV);
STRINGISE_ENUM_CLASS(SIMTCallINTEL);
STRINGISE_ENUM_CLASS(ReferencedIndirectlyINTEL);
STRINGISE_ENUM_CLASS(ClobberINTEL);
@@ -779,6 +784,7 @@ rdcstr DoStringise(const rdcspv::Decoration &el)
STRINGISE_ENUM_CLASS(FunctionFloatingPointModeINTEL);
STRINGISE_ENUM_CLASS(SingleElementVectorINTEL);
STRINGISE_ENUM_CLASS(VectorComputeCallableFunctionINTEL);
+ STRINGISE_ENUM_CLASS(MediaBlockIOINTEL);
}
END_ENUM_STRINGISE();
}
@@ -863,8 +869,8 @@ rdcstr DoStringise(const rdcspv::BuiltIn &el)
STRINGISE_ENUM_CLASS(LayerPerViewNV);
STRINGISE_ENUM_CLASS(MeshViewCountNV);
STRINGISE_ENUM_CLASS(MeshViewIndicesNV);
- STRINGISE_ENUM_CLASS(BaryCoordNV);
- STRINGISE_ENUM_CLASS(BaryCoordNoPerspNV);
+ STRINGISE_ENUM_CLASS(BaryCoordKHR);
+ STRINGISE_ENUM_CLASS(BaryCoordNoPerspKHR);
STRINGISE_ENUM_CLASS(FragSizeEXT);
STRINGISE_ENUM_CLASS(FragInvocationCountEXT);
STRINGISE_ENUM_CLASS(LaunchIdNV);
@@ -1009,6 +1015,7 @@ rdcstr DoStringise(const rdcspv::Capability &el)
STRINGISE_ENUM_CLASS(GroupNonUniformQuad);
STRINGISE_ENUM_CLASS(ShaderLayer);
STRINGISE_ENUM_CLASS(ShaderViewportIndex);
+ STRINGISE_ENUM_CLASS(UniformDecoration);
STRINGISE_ENUM_CLASS(FragmentShadingRateKHR);
STRINGISE_ENUM_CLASS(SubgroupBallotKHR);
STRINGISE_ENUM_CLASS(DrawParameters);
@@ -1054,7 +1061,7 @@ rdcstr DoStringise(const rdcspv::Capability &el)
STRINGISE_ENUM_CLASS(FragmentFullyCoveredEXT);
STRINGISE_ENUM_CLASS(MeshShadingNV);
STRINGISE_ENUM_CLASS(ImageFootprintNV);
- STRINGISE_ENUM_CLASS(FragmentBarycentricNV);
+ STRINGISE_ENUM_CLASS(FragmentBarycentricKHR);
STRINGISE_ENUM_CLASS(ComputeDerivativeGroupQuadsNV);
STRINGISE_ENUM_CLASS(FragmentDensityEXT);
STRINGISE_ENUM_CLASS(GroupNonUniformPartitionedNV);
@@ -1082,7 +1089,8 @@ rdcstr DoStringise(const rdcspv::Capability &el)
STRINGISE_ENUM_CLASS(FragmentShaderShadingRateInterlockEXT);
STRINGISE_ENUM_CLASS(ShaderSMBuiltinsNV);
STRINGISE_ENUM_CLASS(FragmentShaderPixelInterlockEXT);
- STRINGISE_ENUM_CLASS(DemoteToHelperInvocationEXT);
+ STRINGISE_ENUM_CLASS(DemoteToHelperInvocation);
+ STRINGISE_ENUM_CLASS(BindlessTextureNV);
STRINGISE_ENUM_CLASS(SubgroupShuffleINTEL);
STRINGISE_ENUM_CLASS(SubgroupBufferBlockIOINTEL);
STRINGISE_ENUM_CLASS(SubgroupImageBlockIOINTEL);
@@ -1121,10 +1129,10 @@ rdcstr DoStringise(const rdcspv::Capability &el)
STRINGISE_ENUM_CLASS(IOPipesINTEL);
STRINGISE_ENUM_CLASS(BlockingPipesINTEL);
STRINGISE_ENUM_CLASS(FPGARegINTEL);
- STRINGISE_ENUM_CLASS(DotProductInputAllKHR);
- STRINGISE_ENUM_CLASS(DotProductInput4x8BitKHR);
- STRINGISE_ENUM_CLASS(DotProductInput4x8BitPackedKHR);
- STRINGISE_ENUM_CLASS(DotProductKHR);
+ STRINGISE_ENUM_CLASS(DotProductInputAll);
+ STRINGISE_ENUM_CLASS(DotProductInput4x8Bit);
+ STRINGISE_ENUM_CLASS(DotProductInput4x8BitPacked);
+ STRINGISE_ENUM_CLASS(DotProduct);
STRINGISE_ENUM_CLASS(BitInstructions);
STRINGISE_ENUM_CLASS(AtomicFloat32AddEXT);
STRINGISE_ENUM_CLASS(AtomicFloat64AddEXT);
@@ -1175,7 +1183,7 @@ rdcstr DoStringise(const rdcspv::PackedVectorFormat &el)
{
BEGIN_ENUM_STRINGISE(rdcspv::PackedVectorFormat);
{
- STRINGISE_ENUM_CLASS(PackedVectorFormat4x8BitKHR);
+ STRINGISE_ENUM_CLASS(PackedVectorFormat4x8Bit);
}
END_ENUM_STRINGISE();
}
@@ -1541,12 +1549,12 @@ rdcstr DoStringise(const rdcspv::Op &el)
STRINGISE_ENUM_CLASS(ConvertUToAccelerationStructureKHR);
STRINGISE_ENUM_CLASS(IgnoreIntersectionKHR);
STRINGISE_ENUM_CLASS(TerminateRayKHR);
- STRINGISE_ENUM_CLASS(SDotKHR);
- STRINGISE_ENUM_CLASS(UDotKHR);
- STRINGISE_ENUM_CLASS(SUDotKHR);
- STRINGISE_ENUM_CLASS(SDotAccSatKHR);
- STRINGISE_ENUM_CLASS(UDotAccSatKHR);
- STRINGISE_ENUM_CLASS(SUDotAccSatKHR);
+ STRINGISE_ENUM_CLASS(SDot);
+ STRINGISE_ENUM_CLASS(UDot);
+ STRINGISE_ENUM_CLASS(SUDot);
+ STRINGISE_ENUM_CLASS(SDotAccSat);
+ STRINGISE_ENUM_CLASS(UDotAccSat);
+ STRINGISE_ENUM_CLASS(SUDotAccSat);
STRINGISE_ENUM_CLASS(TypeRayQueryKHR);
STRINGISE_ENUM_CLASS(RayQueryInitializeKHR);
STRINGISE_ENUM_CLASS(RayQueryTerminateKHR);
@@ -1583,8 +1591,15 @@ rdcstr DoStringise(const rdcspv::Op &el)
STRINGISE_ENUM_CLASS(CooperativeMatrixLengthNV);
STRINGISE_ENUM_CLASS(BeginInvocationInterlockEXT);
STRINGISE_ENUM_CLASS(EndInvocationInterlockEXT);
- STRINGISE_ENUM_CLASS(DemoteToHelperInvocationEXT);
+ STRINGISE_ENUM_CLASS(DemoteToHelperInvocation);
STRINGISE_ENUM_CLASS(IsHelperInvocationEXT);
+ STRINGISE_ENUM_CLASS(ConvertUToImageNV);
+ STRINGISE_ENUM_CLASS(ConvertUToSamplerNV);
+ STRINGISE_ENUM_CLASS(ConvertImageToUNV);
+ STRINGISE_ENUM_CLASS(ConvertSamplerToUNV);
+ STRINGISE_ENUM_CLASS(ConvertUToSampledImageNV);
+ STRINGISE_ENUM_CLASS(ConvertSampledImageToUNV);
+ STRINGISE_ENUM_CLASS(SamplerImageAddressingModeNV);
STRINGISE_ENUM_CLASS(SubgroupShuffleINTEL);
STRINGISE_ENUM_CLASS(SubgroupShuffleDownINTEL);
STRINGISE_ENUM_CLASS(SubgroupShuffleUpINTEL);
@@ -1609,7 +1624,7 @@ rdcstr DoStringise(const rdcspv::Op &el)
STRINGISE_ENUM_CLASS(USubSatINTEL);
STRINGISE_ENUM_CLASS(IMul32x16INTEL);
STRINGISE_ENUM_CLASS(UMul32x16INTEL);
- STRINGISE_ENUM_CLASS(ConstFunctionPointerINTEL);
+ STRINGISE_ENUM_CLASS(ConstantFunctionPointerINTEL);
STRINGISE_ENUM_CLASS(FunctionPointerCallINTEL);
STRINGISE_ENUM_CLASS(AsmTargetINTEL);
STRINGISE_ENUM_CLASS(AsmINTEL);
@@ -1893,6 +1908,8 @@ rdcstr ParamToStr(const std::function &idName, const rdcspv:
ret += "SignExtend" ", ";
if(el.flags & ImageOperands::ZeroExtend)
ret += "ZeroExtend" ", ";
+ if(el.flags & ImageOperands::Nontemporal)
+ ret += "Nontemporal" ", ";
if(el.flags & ImageOperands::Offsets)
ret += "Offsets" "(" + idName(el.offsets) + ")" ", ";
@@ -4090,39 +4107,39 @@ void OpDecoder::ForEachID(const ConstIter &it, const std::functionop = OpCode;
@@ -12685,8 +12685,8 @@ struct OpSDotKHR
this->vector2 = Id::fromWord(it.word(4));
this->packedVectorFormat = (it.size() > 5) ? (PackedVectorFormat)it.word(5) : PackedVectorFormat::Invalid;
}
- OpSDotKHR(IdResultType resultType, IdResult result, Id vector1, Id vector2, PackedVectorFormat packedVectorFormat = PackedVectorFormat::Invalid)
- : op(Op::SDotKHR)
+ OpSDot(IdResultType resultType, IdResult result, Id vector1, Id vector2, PackedVectorFormat packedVectorFormat = PackedVectorFormat::Invalid)
+ : op(Op::SDot)
, wordCount(MinWordSize + OptionalWordCount(packedVectorFormat))
{
this->resultType = resultType;
@@ -12706,7 +12706,7 @@ struct OpSDotKHR
return Operation(OpCode, words);
}
- static constexpr Op OpCode = Op::SDotKHR;
+ static constexpr Op OpCode = Op::SDot;
static constexpr uint16_t MinWordSize = 5U;
Op op;
uint16_t wordCount;
@@ -12719,9 +12719,9 @@ struct OpSDotKHR
bool HasPackedVectorFormat() const { return wordCount > 5; }
};
-struct OpUDotKHR
+struct OpUDot
{
- OpUDotKHR(const ConstIter &it)
+ OpUDot(const ConstIter &it)
{
uint32_t word = 0;(void)word;
this->op = OpCode;
@@ -12732,8 +12732,8 @@ struct OpUDotKHR
this->vector2 = Id::fromWord(it.word(4));
this->packedVectorFormat = (it.size() > 5) ? (PackedVectorFormat)it.word(5) : PackedVectorFormat::Invalid;
}
- OpUDotKHR(IdResultType resultType, IdResult result, Id vector1, Id vector2, PackedVectorFormat packedVectorFormat = PackedVectorFormat::Invalid)
- : op(Op::UDotKHR)
+ OpUDot(IdResultType resultType, IdResult result, Id vector1, Id vector2, PackedVectorFormat packedVectorFormat = PackedVectorFormat::Invalid)
+ : op(Op::UDot)
, wordCount(MinWordSize + OptionalWordCount(packedVectorFormat))
{
this->resultType = resultType;
@@ -12753,7 +12753,7 @@ struct OpUDotKHR
return Operation(OpCode, words);
}
- static constexpr Op OpCode = Op::UDotKHR;
+ static constexpr Op OpCode = Op::UDot;
static constexpr uint16_t MinWordSize = 5U;
Op op;
uint16_t wordCount;
@@ -12766,9 +12766,9 @@ struct OpUDotKHR
bool HasPackedVectorFormat() const { return wordCount > 5; }
};
-struct OpSUDotKHR
+struct OpSUDot
{
- OpSUDotKHR(const ConstIter &it)
+ OpSUDot(const ConstIter &it)
{
uint32_t word = 0;(void)word;
this->op = OpCode;
@@ -12779,8 +12779,8 @@ struct OpSUDotKHR
this->vector2 = Id::fromWord(it.word(4));
this->packedVectorFormat = (it.size() > 5) ? (PackedVectorFormat)it.word(5) : PackedVectorFormat::Invalid;
}
- OpSUDotKHR(IdResultType resultType, IdResult result, Id vector1, Id vector2, PackedVectorFormat packedVectorFormat = PackedVectorFormat::Invalid)
- : op(Op::SUDotKHR)
+ OpSUDot(IdResultType resultType, IdResult result, Id vector1, Id vector2, PackedVectorFormat packedVectorFormat = PackedVectorFormat::Invalid)
+ : op(Op::SUDot)
, wordCount(MinWordSize + OptionalWordCount(packedVectorFormat))
{
this->resultType = resultType;
@@ -12800,7 +12800,7 @@ struct OpSUDotKHR
return Operation(OpCode, words);
}
- static constexpr Op OpCode = Op::SUDotKHR;
+ static constexpr Op OpCode = Op::SUDot;
static constexpr uint16_t MinWordSize = 5U;
Op op;
uint16_t wordCount;
@@ -12813,9 +12813,9 @@ struct OpSUDotKHR
bool HasPackedVectorFormat() const { return wordCount > 5; }
};
-struct OpSDotAccSatKHR
+struct OpSDotAccSat
{
- OpSDotAccSatKHR(const ConstIter &it)
+ OpSDotAccSat(const ConstIter &it)
{
uint32_t word = 0;(void)word;
this->op = OpCode;
@@ -12827,8 +12827,8 @@ struct OpSDotAccSatKHR
this->accumulator = Id::fromWord(it.word(5));
this->packedVectorFormat = (it.size() > 6) ? (PackedVectorFormat)it.word(6) : PackedVectorFormat::Invalid;
}
- OpSDotAccSatKHR(IdResultType resultType, IdResult result, Id vector1, Id vector2, Id accumulator, PackedVectorFormat packedVectorFormat = PackedVectorFormat::Invalid)
- : op(Op::SDotAccSatKHR)
+ OpSDotAccSat(IdResultType resultType, IdResult result, Id vector1, Id vector2, Id accumulator, PackedVectorFormat packedVectorFormat = PackedVectorFormat::Invalid)
+ : op(Op::SDotAccSat)
, wordCount(MinWordSize + OptionalWordCount(packedVectorFormat))
{
this->resultType = resultType;
@@ -12850,7 +12850,7 @@ struct OpSDotAccSatKHR
return Operation(OpCode, words);
}
- static constexpr Op OpCode = Op::SDotAccSatKHR;
+ static constexpr Op OpCode = Op::SDotAccSat;
static constexpr uint16_t MinWordSize = 6U;
Op op;
uint16_t wordCount;
@@ -12864,9 +12864,9 @@ struct OpSDotAccSatKHR
bool HasPackedVectorFormat() const { return wordCount > 6; }
};
-struct OpUDotAccSatKHR
+struct OpUDotAccSat
{
- OpUDotAccSatKHR(const ConstIter &it)
+ OpUDotAccSat(const ConstIter &it)
{
uint32_t word = 0;(void)word;
this->op = OpCode;
@@ -12878,8 +12878,8 @@ struct OpUDotAccSatKHR
this->accumulator = Id::fromWord(it.word(5));
this->packedVectorFormat = (it.size() > 6) ? (PackedVectorFormat)it.word(6) : PackedVectorFormat::Invalid;
}
- OpUDotAccSatKHR(IdResultType resultType, IdResult result, Id vector1, Id vector2, Id accumulator, PackedVectorFormat packedVectorFormat = PackedVectorFormat::Invalid)
- : op(Op::UDotAccSatKHR)
+ OpUDotAccSat(IdResultType resultType, IdResult result, Id vector1, Id vector2, Id accumulator, PackedVectorFormat packedVectorFormat = PackedVectorFormat::Invalid)
+ : op(Op::UDotAccSat)
, wordCount(MinWordSize + OptionalWordCount(packedVectorFormat))
{
this->resultType = resultType;
@@ -12901,7 +12901,7 @@ struct OpUDotAccSatKHR
return Operation(OpCode, words);
}
- static constexpr Op OpCode = Op::UDotAccSatKHR;
+ static constexpr Op OpCode = Op::UDotAccSat;
static constexpr uint16_t MinWordSize = 6U;
Op op;
uint16_t wordCount;
@@ -12915,9 +12915,9 @@ struct OpUDotAccSatKHR
bool HasPackedVectorFormat() const { return wordCount > 6; }
};
-struct OpSUDotAccSatKHR
+struct OpSUDotAccSat
{
- OpSUDotAccSatKHR(const ConstIter &it)
+ OpSUDotAccSat(const ConstIter &it)
{
uint32_t word = 0;(void)word;
this->op = OpCode;
@@ -12929,8 +12929,8 @@ struct OpSUDotAccSatKHR
this->accumulator = Id::fromWord(it.word(5));
this->packedVectorFormat = (it.size() > 6) ? (PackedVectorFormat)it.word(6) : PackedVectorFormat::Invalid;
}
- OpSUDotAccSatKHR(IdResultType resultType, IdResult result, Id vector1, Id vector2, Id accumulator, PackedVectorFormat packedVectorFormat = PackedVectorFormat::Invalid)
- : op(Op::SUDotAccSatKHR)
+ OpSUDotAccSat(IdResultType resultType, IdResult result, Id vector1, Id vector2, Id accumulator, PackedVectorFormat packedVectorFormat = PackedVectorFormat::Invalid)
+ : op(Op::SUDotAccSat)
, wordCount(MinWordSize + OptionalWordCount(packedVectorFormat))
{
this->resultType = resultType;
@@ -12952,7 +12952,7 @@ struct OpSUDotAccSatKHR
return Operation(OpCode, words);
}
- static constexpr Op OpCode = Op::SUDotAccSatKHR;
+ static constexpr Op OpCode = Op::SUDotAccSat;
static constexpr uint16_t MinWordSize = 6U;
Op op;
uint16_t wordCount;
@@ -13982,20 +13982,20 @@ struct OpEndInvocationInterlockEXT
// no operands
};
-struct OpDemoteToHelperInvocationEXT
+struct OpDemoteToHelperInvocation
{
- OpDemoteToHelperInvocationEXT(const ConstIter &it)
+ OpDemoteToHelperInvocation(const ConstIter &it)
{
memcpy(this, it.words(), sizeof(*this));
}
- OpDemoteToHelperInvocationEXT()
- : op(Op::DemoteToHelperInvocationEXT)
+ OpDemoteToHelperInvocation()
+ : op(Op::DemoteToHelperInvocation)
, wordCount(FixedWordSize)
{
// no operands
}
- static constexpr Op OpCode = Op::DemoteToHelperInvocationEXT;
+ static constexpr Op OpCode = Op::DemoteToHelperInvocation;
static constexpr uint16_t FixedWordSize = 1U;
Op op;
uint16_t wordCount;
@@ -14024,6 +14024,170 @@ struct OpIsHelperInvocationEXT
IdResult result;
};
+struct OpConvertUToImageNV
+{
+ OpConvertUToImageNV(const ConstIter &it)
+ {
+ memcpy(this, it.words(), sizeof(*this));
+ }
+ OpConvertUToImageNV(IdResultType resultType, IdResult result, Id operand)
+ : op(Op::ConvertUToImageNV)
+ , wordCount(FixedWordSize)
+ {
+ this->resultType = resultType;
+ this->result = result;
+ this->operand = operand;
+ }
+
+ static constexpr Op OpCode = Op::ConvertUToImageNV;
+ static constexpr uint16_t FixedWordSize = 4U;
+ Op op;
+ uint16_t wordCount;
+ IdResultType resultType;
+ IdResult result;
+ Id operand;
+};
+
+struct OpConvertUToSamplerNV
+{
+ OpConvertUToSamplerNV(const ConstIter &it)
+ {
+ memcpy(this, it.words(), sizeof(*this));
+ }
+ OpConvertUToSamplerNV(IdResultType resultType, IdResult result, Id operand)
+ : op(Op::ConvertUToSamplerNV)
+ , wordCount(FixedWordSize)
+ {
+ this->resultType = resultType;
+ this->result = result;
+ this->operand = operand;
+ }
+
+ static constexpr Op OpCode = Op::ConvertUToSamplerNV;
+ static constexpr uint16_t FixedWordSize = 4U;
+ Op op;
+ uint16_t wordCount;
+ IdResultType resultType;
+ IdResult result;
+ Id operand;
+};
+
+struct OpConvertImageToUNV
+{
+ OpConvertImageToUNV(const ConstIter &it)
+ {
+ memcpy(this, it.words(), sizeof(*this));
+ }
+ OpConvertImageToUNV(IdResultType resultType, IdResult result, Id operand)
+ : op(Op::ConvertImageToUNV)
+ , wordCount(FixedWordSize)
+ {
+ this->resultType = resultType;
+ this->result = result;
+ this->operand = operand;
+ }
+
+ static constexpr Op OpCode = Op::ConvertImageToUNV;
+ static constexpr uint16_t FixedWordSize = 4U;
+ Op op;
+ uint16_t wordCount;
+ IdResultType resultType;
+ IdResult result;
+ Id operand;
+};
+
+struct OpConvertSamplerToUNV
+{
+ OpConvertSamplerToUNV(const ConstIter &it)
+ {
+ memcpy(this, it.words(), sizeof(*this));
+ }
+ OpConvertSamplerToUNV(IdResultType resultType, IdResult result, Id operand)
+ : op(Op::ConvertSamplerToUNV)
+ , wordCount(FixedWordSize)
+ {
+ this->resultType = resultType;
+ this->result = result;
+ this->operand = operand;
+ }
+
+ static constexpr Op OpCode = Op::ConvertSamplerToUNV;
+ static constexpr uint16_t FixedWordSize = 4U;
+ Op op;
+ uint16_t wordCount;
+ IdResultType resultType;
+ IdResult result;
+ Id operand;
+};
+
+struct OpConvertUToSampledImageNV
+{
+ OpConvertUToSampledImageNV(const ConstIter &it)
+ {
+ memcpy(this, it.words(), sizeof(*this));
+ }
+ OpConvertUToSampledImageNV(IdResultType resultType, IdResult result, Id operand)
+ : op(Op::ConvertUToSampledImageNV)
+ , wordCount(FixedWordSize)
+ {
+ this->resultType = resultType;
+ this->result = result;
+ this->operand = operand;
+ }
+
+ static constexpr Op OpCode = Op::ConvertUToSampledImageNV;
+ static constexpr uint16_t FixedWordSize = 4U;
+ Op op;
+ uint16_t wordCount;
+ IdResultType resultType;
+ IdResult result;
+ Id operand;
+};
+
+struct OpConvertSampledImageToUNV
+{
+ OpConvertSampledImageToUNV(const ConstIter &it)
+ {
+ memcpy(this, it.words(), sizeof(*this));
+ }
+ OpConvertSampledImageToUNV(IdResultType resultType, IdResult result, Id operand)
+ : op(Op::ConvertSampledImageToUNV)
+ , wordCount(FixedWordSize)
+ {
+ this->resultType = resultType;
+ this->result = result;
+ this->operand = operand;
+ }
+
+ static constexpr Op OpCode = Op::ConvertSampledImageToUNV;
+ static constexpr uint16_t FixedWordSize = 4U;
+ Op op;
+ uint16_t wordCount;
+ IdResultType resultType;
+ IdResult result;
+ Id operand;
+};
+
+struct OpSamplerImageAddressingModeNV
+{
+ OpSamplerImageAddressingModeNV(const ConstIter &it)
+ {
+ memcpy(this, it.words(), sizeof(*this));
+ }
+ OpSamplerImageAddressingModeNV(uint32_t bitWidth)
+ : op(Op::SamplerImageAddressingModeNV)
+ , wordCount(FixedWordSize)
+ {
+ this->bitWidth = bitWidth;
+ }
+
+ static constexpr Op OpCode = Op::SamplerImageAddressingModeNV;
+ static constexpr uint16_t FixedWordSize = 2U;
+ Op op;
+ uint16_t wordCount;
+ uint32_t bitWidth;
+};
+
struct OpSubgroupShuffleINTEL
{
OpSubgroupShuffleINTEL(const ConstIter &it)
@@ -14646,14 +14810,14 @@ struct OpUMul32x16INTEL
Id operand2;
};
-struct OpConstFunctionPointerINTEL
+struct OpConstantFunctionPointerINTEL
{
- OpConstFunctionPointerINTEL(const ConstIter &it)
+ OpConstantFunctionPointerINTEL(const ConstIter &it)
{
memcpy(this, it.words(), sizeof(*this));
}
- OpConstFunctionPointerINTEL(IdResultType resultType, IdResult result, Id function)
- : op(Op::ConstFunctionPointerINTEL)
+ OpConstantFunctionPointerINTEL(IdResultType resultType, IdResult result, Id function)
+ : op(Op::ConstantFunctionPointerINTEL)
, wordCount(FixedWordSize)
{
this->resultType = resultType;
@@ -14661,7 +14825,7 @@ struct OpConstFunctionPointerINTEL
this->function = function;
}
- static constexpr Op OpCode = Op::ConstFunctionPointerINTEL;
+ static constexpr Op OpCode = Op::ConstantFunctionPointerINTEL;
static constexpr uint16_t FixedWordSize = 4U;
Op op;
uint16_t wordCount;