diff --git a/renderdoc/driver/shaders/spirv/extinst.glsl.std.450.grammar.json b/renderdoc/driver/shaders/spirv/extinst.glsl.std.450.grammar.json index 3d9f39e76..ac8fc6dda 100644 --- a/renderdoc/driver/shaders/spirv/extinst.glsl.std.450.grammar.json +++ b/renderdoc/driver/shaders/spirv/extinst.glsl.std.450.grammar.json @@ -1,6 +1,6 @@ { "copyright" : [ - "Copyright (c) 2014-2016 The Khronos Group Inc.", + "Copyright (c) 2014-2024 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\"),", diff --git a/renderdoc/driver/shaders/spirv/extinst.nonsemantic.shader.debuginfo.100.grammar.json b/renderdoc/driver/shaders/spirv/extinst.nonsemantic.shader.debuginfo.100.grammar.json index f3621b0b4..1eb2859a1 100644 --- a/renderdoc/driver/shaders/spirv/extinst.nonsemantic.shader.debuginfo.100.grammar.json +++ b/renderdoc/driver/shaders/spirv/extinst.nonsemantic.shader.debuginfo.100.grammar.json @@ -1,6 +1,6 @@ { "copyright" : [ - "Copyright (c) 2018 The Khronos Group Inc.", + "Copyright (c) 2018-2024 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\"),", diff --git a/renderdoc/driver/shaders/spirv/gen_spirv_code.py b/renderdoc/driver/shaders/spirv/gen_spirv_code.py index 73cfa6cce..6ffbf9af2 100644 --- a/renderdoc/driver/shaders/spirv/gen_spirv_code.py +++ b/renderdoc/driver/shaders/spirv/gen_spirv_code.py @@ -369,10 +369,18 @@ rdcstr DoStringise(const rdcspv::{name} &el) elif operand_kind['category'] == 'BitEnum': operand_kind['size'] = 1 operand_kind['def_name'] = name[0].lower() + name[1:] - operand_kind['def_value'] = name + '::None' operand_kind['type'] = name used = [] + + none = [v['enumerant'] for v in operand_kind['enumerants'] if 'None' in v['enumerant']] + + if len(none) > 0: + none = none[0] + else: + none = 'NoDefValueAvailable' + + operand_kind['def_value'] = name + '::' + none decl = '' stringise = '' @@ -384,8 +392,8 @@ rdcstr DoStringise(const rdcspv::{name} &el) used.append(value['value']) - if value['enumerant'] == 'None': - stringise += ' STRINGISE_BITFIELD_CLASS_VALUE(None);\n\n' + if value['enumerant'] == none: + stringise += ' STRINGISE_BITFIELD_CLASS_VALUE({});\n\n'.format(none) else: stringise += ' STRINGISE_BITFIELD_CLASS_BIT({});\n'.format(value['enumerant']) @@ -438,6 +446,11 @@ rdcstr DoStringise(const rdcspv::{name} &el) operand_kind['def_name'] = 'num' operand_kind['def_value'] = '0' operand_kind['type'] = 'uint32_t' + elif (operand_kind['kind'] == 'LiteralFloat'): + operand_kind['size'] = 1 + operand_kind['def_name'] = 'flt' + operand_kind['def_value'] = '0.0f' + operand_kind['type'] = 'float' elif (operand_kind['kind'] == 'LiteralString'): operand_kind['size'] = -1000000 operand_kind['type'] = 'rdcstr' @@ -504,6 +517,10 @@ for operand_kind in spirv['operand_kinds']: if not operand_kind['has_params']: if operand_kind['category'] == 'ValueEnum': ops_header.write('inline uint16_t OptionalWordCount(const {0} val) {{ return val != {0}::Invalid ? 1 : 0; }}\n\n'.format(name)) + elif operand_kind['category'] == 'BitEnum': + none = [v['enumerant'] for v in operand_kind['enumerants'] if 'None' in v['enumerant']] + if len(none) > 0: + ops_header.write('inline uint16_t OptionalWordCount(const {0} val) {{ return val != {0}::{1} ? 1 : 0; }}\n\n'.format(name, none[0])) continue values = '' diff --git a/renderdoc/driver/shaders/spirv/spir-v.xml b/renderdoc/driver/shaders/spirv/spir-v.xml index b6cad390c..4a2de8314 100644 --- a/renderdoc/driver/shaders/spirv/spir-v.xml +++ b/renderdoc/driver/shaders/spirv/spir-v.xml @@ -1,7 +1,7 @@ @@ -246,7 +249,8 @@ - + + diff --git a/renderdoc/driver/shaders/spirv/spirv.core.grammar.json b/renderdoc/driver/shaders/spirv/spirv.core.grammar.json index 6908d84de..ba4493352 100644 --- a/renderdoc/driver/shaders/spirv/spirv.core.grammar.json +++ b/renderdoc/driver/shaders/spirv/spirv.core.grammar.json @@ -1,6 +1,6 @@ { "copyright" : [ - "Copyright (c) 2014-2020 The Khronos Group Inc.", + "Copyright (c) 2014-2024 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\"),", @@ -137,7 +137,8 @@ { "opname" : "OpNop", "class" : "Miscellaneous", - "opcode" : 0 + "opcode" : 0, + "version" : "1.0" }, { "opname" : "OpUndef", @@ -146,7 +147,8 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } - ] + ], + "version" : "1.0" }, { "opname" : "OpSourceContinued", @@ -154,7 +156,8 @@ "opcode" : 2, "operands" : [ { "kind" : "LiteralString", "name" : "'Continued Source'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSource", @@ -165,7 +168,8 @@ { "kind" : "LiteralInteger", "name" : "'Version'" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'File'" }, { "kind" : "LiteralString", "quantifier" : "?", "name" : "'Source'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSourceExtension", @@ -173,7 +177,8 @@ "opcode" : 4, "operands" : [ { "kind" : "LiteralString", "name" : "'Extension'" } - ] + ], + "version": "1.0" }, { "opname" : "OpName", @@ -182,7 +187,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "LiteralString", "name" : "'Name'" } - ] + ], + "version": "1.0" }, { "opname" : "OpMemberName", @@ -192,7 +198,8 @@ { "kind" : "IdRef", "name" : "'Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "LiteralString", "name" : "'Name'" } - ] + ], + "version": "1.0" }, { "opname" : "OpString", @@ -201,7 +208,8 @@ "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "'String'" } - ] + ], + "version": "1.0" }, { "opname" : "OpLine", @@ -211,7 +219,8 @@ { "kind" : "IdRef", "name" : "'File'" }, { "kind" : "LiteralInteger", "name" : "'Line'" }, { "kind" : "LiteralInteger", "name" : "'Column'" } - ] + ], + "version": "1.0" }, { "opname" : "OpExtension", @@ -219,7 +228,8 @@ "opcode" : 10, "operands" : [ { "kind" : "LiteralString", "name" : "'Name'" } - ] + ], + "version": "1.0" }, { "opname" : "OpExtInstImport", @@ -228,7 +238,8 @@ "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "'Name'" } - ] + ], + "version": "1.0" }, { "opname" : "OpExtInst", @@ -240,7 +251,8 @@ { "kind" : "IdRef", "name" : "'Set'" }, { "kind" : "LiteralExtInstInteger", "name" : "'Instruction'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." } - ] + ], + "version": "1.0" }, { "opname" : "OpMemoryModel", @@ -249,7 +261,8 @@ "operands" : [ { "kind" : "AddressingModel" }, { "kind" : "MemoryModel" } - ] + ], + "version": "1.0" }, { "opname" : "OpEntryPoint", @@ -260,7 +273,8 @@ { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "LiteralString", "name" : "'Name'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Interface'" } - ] + ], + "version": "1.0" }, { "opname" : "OpExecutionMode", @@ -269,7 +283,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Entry Point'" }, { "kind" : "ExecutionMode", "name" : "'Mode'" } - ] + ], + "version": "1.0" }, { "opname" : "OpCapability", @@ -277,7 +292,8 @@ "opcode" : 17, "operands" : [ { "kind" : "Capability", "name" : "'Capability'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeVoid", @@ -285,7 +301,8 @@ "opcode" : 19, "operands" : [ { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeBool", @@ -293,7 +310,8 @@ "opcode" : 20, "operands" : [ { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeInt", @@ -303,7 +321,8 @@ { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Width'" }, { "kind" : "LiteralInteger", "name" : "'Signedness'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeFloat", @@ -312,7 +331,8 @@ "operands" : [ { "kind" : "IdResult" }, { "kind" : "LiteralInteger", "name" : "'Width'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeVector", @@ -322,7 +342,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Component Type'" }, { "kind" : "LiteralInteger", "name" : "'Component Count'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeMatrix", @@ -333,7 +354,8 @@ { "kind" : "IdRef", "name" : "'Column Type'" }, { "kind" : "LiteralInteger", "name" : "'Column Count'" } ], - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "opname" : "OpTypeImage", @@ -349,7 +371,8 @@ { "kind" : "LiteralInteger", "name" : "'Sampled'" }, { "kind" : "ImageFormat" }, { "kind" : "AccessQualifier", "quantifier" : "?" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeSampler", @@ -357,7 +380,8 @@ "opcode" : 26, "operands" : [ { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeSampledImage", @@ -366,7 +390,8 @@ "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image Type'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeArray", @@ -376,7 +401,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Element Type'" }, { "kind" : "IdRef", "name" : "'Length'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeRuntimeArray", @@ -386,7 +412,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Element Type'" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpTypeStruct", @@ -395,7 +422,8 @@ "operands" : [ { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeOpaque", @@ -405,7 +433,8 @@ { "kind" : "IdResult" }, { "kind" : "LiteralString", "name" : "The name of the opaque type." } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpTypePointer", @@ -415,7 +444,8 @@ { "kind" : "IdResult" }, { "kind" : "StorageClass" }, { "kind" : "IdRef", "name" : "'Type'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeFunction", @@ -425,7 +455,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Return Type'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." } - ] + ], + "version": "1.0" }, { "opname" : "OpTypeEvent", @@ -434,7 +465,8 @@ "operands" : [ { "kind" : "IdResult" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpTypeDeviceEvent", @@ -443,7 +475,8 @@ "operands" : [ { "kind" : "IdResult" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpTypeReserveId", @@ -452,7 +485,8 @@ "operands" : [ { "kind" : "IdResult" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpTypeQueue", @@ -461,7 +495,8 @@ "operands" : [ { "kind" : "IdResult" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpTypePipe", @@ -471,7 +506,8 @@ { "kind" : "IdResult" }, { "kind" : "AccessQualifier", "name" : "'Qualifier'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpTypeForwardPointer", @@ -484,7 +520,8 @@ "capabilities" : [ "Addresses", "PhysicalStorageBufferAddresses" - ] + ], + "version": "1.0" }, { "opname" : "OpConstantTrue", @@ -493,7 +530,8 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpConstantFalse", @@ -502,7 +540,8 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpConstant", @@ -512,7 +551,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpConstantComposite", @@ -522,7 +562,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } - ] + ], + "version": "1.0" }, { "opname" : "OpConstantSampler", @@ -535,7 +576,8 @@ { "kind" : "LiteralInteger", "name" : "'Param'" }, { "kind" : "SamplerFilterMode" } ], - "capabilities" : [ "LiteralSampler" ] + "capabilities" : [ "LiteralSampler" ], + "version": "1.0" }, { "opname" : "OpConstantNull", @@ -544,7 +586,8 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpSpecConstantTrue", @@ -553,7 +596,8 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpSpecConstantFalse", @@ -562,7 +606,8 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpSpecConstant", @@ -572,7 +617,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSpecConstantComposite", @@ -582,7 +628,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSpecConstantOp", @@ -592,7 +639,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFunction", @@ -603,7 +651,8 @@ { "kind" : "IdResult" }, { "kind" : "FunctionControl" }, { "kind" : "IdRef", "name" : "'Function Type'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFunctionParameter", @@ -612,12 +661,14 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpFunctionEnd", "class" : "Function", - "opcode" : 56 + "opcode" : 56, + "version" : "1.0" }, { "opname" : "OpFunctionCall", @@ -628,7 +679,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Function'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." } - ] + ], + "version": "1.0" }, { "opname" : "OpVariable", @@ -639,7 +691,8 @@ { "kind" : "IdResult" }, { "kind" : "StorageClass" }, { "kind" : "IdRef", "quantifier" : "?", "name" : "'Initializer'" } - ] + ], + "version": "1.0" }, { "opname" : "OpImageTexelPointer", @@ -651,7 +704,8 @@ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Sample'" } - ] + ], + "version": "1.0" }, { "opname" : "OpLoad", @@ -662,7 +716,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } - ] + ], + "version": "1.0" }, { "opname" : "OpStore", @@ -672,7 +727,8 @@ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdRef", "name" : "'Object'" }, { "kind" : "MemoryAccess", "quantifier" : "?" } - ] + ], + "version": "1.0" }, { "opname" : "OpCopyMemory", @@ -683,7 +739,8 @@ { "kind" : "IdRef", "name" : "'Source'" }, { "kind" : "MemoryAccess", "quantifier" : "?" }, { "kind" : "MemoryAccess", "quantifier" : "?" } - ] + ], + "version": "1.0" }, { "opname" : "OpCopyMemorySized", @@ -696,7 +753,8 @@ { "kind" : "MemoryAccess", "quantifier" : "?" }, { "kind" : "MemoryAccess", "quantifier" : "?" } ], - "capabilities" : [ "Addresses" ] + "capabilities" : [ "Addresses" ], + "version": "1.0" }, { "opname" : "OpAccessChain", @@ -707,7 +765,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } - ] + ], + "version": "1.0" }, { "opname" : "OpInBoundsAccessChain", @@ -718,7 +777,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } - ] + ], + "version": "1.0" }, { "opname" : "OpPtrAccessChain", @@ -736,7 +796,8 @@ "VariablePointers", "VariablePointersStorageBuffer", "PhysicalStorageBufferAddresses" - ] + ], + "version": "1.0" }, { "opname" : "OpArrayLength", @@ -748,7 +809,8 @@ { "kind" : "IdRef", "name" : "'Structure'" }, { "kind" : "LiteralInteger", "name" : "'Array member'" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpGenericPtrMemSemantics", @@ -759,7 +821,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpInBoundsPtrAccessChain", @@ -772,7 +835,8 @@ { "kind" : "IdRef", "name" : "'Element'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" } ], - "capabilities" : [ "Addresses" ] + "capabilities" : [ "Addresses" ], + "version": "1.0" }, { "opname" : "OpDecorate", @@ -781,7 +845,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } - ] + ], + "version": "1.0" }, { "opname" : "OpMemberDecorate", @@ -791,7 +856,8 @@ { "kind" : "IdRef", "name" : "'Structure Type'" }, { "kind" : "LiteralInteger", "name" : "'Member'" }, { "kind" : "Decoration" } - ] + ], + "version": "1.0" }, { "opname" : "OpDecorationGroup", @@ -799,7 +865,8 @@ "opcode" : 73, "operands" : [ { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpGroupDecorate", @@ -808,7 +875,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Decoration Group'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" } - ] + ], + "version": "1.0" }, { "opname" : "OpGroupMemberDecorate", @@ -817,7 +885,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Decoration Group'" }, { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" } - ] + ], + "version": "1.0" }, { "opname" : "OpVectorExtractDynamic", @@ -828,7 +897,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Index'" } - ] + ], + "version": "1.0" }, { "opname" : "OpVectorInsertDynamic", @@ -840,7 +910,8 @@ { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "IdRef", "name" : "'Index'" } - ] + ], + "version": "1.0" }, { "opname" : "OpVectorShuffle", @@ -852,7 +923,8 @@ { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" } - ] + ], + "version": "1.0" }, { "opname" : "OpCompositeConstruct", @@ -862,7 +934,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } - ] + ], + "version": "1.0" }, { "opname" : "OpCompositeExtract", @@ -873,7 +946,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Composite'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" } - ] + ], + "version": "1.0" }, { "opname" : "OpCompositeInsert", @@ -885,7 +959,8 @@ { "kind" : "IdRef", "name" : "'Object'" }, { "kind" : "IdRef", "name" : "'Composite'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" } - ] + ], + "version": "1.0" }, { "opname" : "OpCopyObject", @@ -895,7 +970,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } - ] + ], + "version": "1.0" }, { "opname" : "OpTranspose", @@ -906,7 +982,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Matrix'" } ], - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "opname" : "OpSampledImage", @@ -917,7 +994,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Sampler'" } - ] + ], + "version": "1.0" }, { "opname" : "OpImageSampleImplicitLod", @@ -930,7 +1008,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageSampleExplicitLod", @@ -942,7 +1021,8 @@ { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } - ] + ], + "version": "1.0" }, { "opname" : "OpImageSampleDrefImplicitLod", @@ -956,7 +1036,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageSampleDrefExplicitLod", @@ -970,7 +1051,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageSampleProjImplicitLod", @@ -983,7 +1065,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageSampleProjExplicitLod", @@ -996,7 +1079,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageSampleProjDrefImplicitLod", @@ -1010,7 +1094,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageSampleProjDrefExplicitLod", @@ -1024,7 +1109,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageFetch", @@ -1036,7 +1122,8 @@ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } - ] + ], + "version": "1.0" }, { "opname" : "OpImageGather", @@ -1050,7 +1137,8 @@ { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageDrefGather", @@ -1064,7 +1152,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpImageRead", @@ -1076,7 +1165,8 @@ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } - ] + ], + "version": "1.0" }, { "opname" : "OpImageWrite", @@ -1087,7 +1177,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "IdRef", "name" : "'Texel'" }, { "kind" : "ImageOperands", "quantifier" : "?" } - ] + ], + "version": "1.0" }, { "opname" : "OpImage", @@ -1097,7 +1188,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Sampled Image'" } - ] + ], + "version": "1.0" }, { "opname" : "OpImageQueryFormat", @@ -1108,7 +1200,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpImageQueryOrder", @@ -1119,7 +1212,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpImageQuerySizeLod", @@ -1131,7 +1225,8 @@ { "kind" : "IdRef", "name" : "'Image'" }, { "kind" : "IdRef", "name" : "'Level of Detail'" } ], - "capabilities" : [ "Kernel", "ImageQuery" ] + "capabilities" : [ "Kernel", "ImageQuery" ], + "version": "1.0" }, { "opname" : "OpImageQuerySize", @@ -1142,7 +1237,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], - "capabilities" : [ "Kernel", "ImageQuery" ] + "capabilities" : [ "Kernel", "ImageQuery" ], + "version": "1.0" }, { "opname" : "OpImageQueryLod", @@ -1154,7 +1250,8 @@ { "kind" : "IdRef", "name" : "'Sampled Image'" }, { "kind" : "IdRef", "name" : "'Coordinate'" } ], - "capabilities" : [ "ImageQuery" ] + "capabilities" : [ "ImageQuery" ], + "version": "1.0" }, { "opname" : "OpImageQueryLevels", @@ -1165,7 +1262,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], - "capabilities" : [ "Kernel", "ImageQuery" ] + "capabilities" : [ "Kernel", "ImageQuery" ], + "version": "1.0" }, { "opname" : "OpImageQuerySamples", @@ -1176,7 +1274,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Image'" } ], - "capabilities" : [ "Kernel", "ImageQuery" ] + "capabilities" : [ "Kernel", "ImageQuery" ], + "version": "1.0" }, { "opname" : "OpConvertFToU", @@ -1186,7 +1285,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpConvertFToS", @@ -1196,7 +1296,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpConvertSToF", @@ -1206,7 +1307,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpConvertUToF", @@ -1216,7 +1318,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpUConvert", @@ -1226,7 +1329,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSConvert", @@ -1236,7 +1340,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFConvert", @@ -1246,7 +1351,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Float Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpQuantizeToF16", @@ -1256,7 +1362,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpConvertPtrToU", @@ -1270,7 +1377,8 @@ "capabilities" : [ "Addresses", "PhysicalStorageBufferAddresses" - ] + ], + "version": "1.0" }, { "opname" : "OpSatConvertSToU", @@ -1281,7 +1389,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Signed Value'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpSatConvertUToS", @@ -1292,7 +1401,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Unsigned Value'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpConvertUToPtr", @@ -1306,7 +1416,8 @@ "capabilities" : [ "Addresses", "PhysicalStorageBufferAddresses" - ] + ], + "version": "1.0" }, { "opname" : "OpPtrCastToGeneric", @@ -1317,7 +1428,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpGenericCastToPtr", @@ -1328,7 +1440,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Pointer'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpGenericCastToPtrExplicit", @@ -1340,7 +1453,8 @@ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "StorageClass", "name" : "'Storage'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpBitcast", @@ -1350,7 +1464,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSNegate", @@ -1360,7 +1475,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFNegate", @@ -1370,7 +1486,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } - ] + ], + "version": "1.0" }, { "opname" : "OpIAdd", @@ -1381,7 +1498,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFAdd", @@ -1392,7 +1510,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpISub", @@ -1403,7 +1522,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFSub", @@ -1414,7 +1534,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpIMul", @@ -1425,7 +1546,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFMul", @@ -1436,7 +1558,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpUDiv", @@ -1447,7 +1570,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSDiv", @@ -1458,7 +1582,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFDiv", @@ -1469,7 +1594,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpUMod", @@ -1480,7 +1606,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSRem", @@ -1491,7 +1618,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSMod", @@ -1502,7 +1630,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFRem", @@ -1513,7 +1642,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFMod", @@ -1524,7 +1654,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpVectorTimesScalar", @@ -1535,7 +1666,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Scalar'" } - ] + ], + "version": "1.0" }, { "opname" : "OpMatrixTimesScalar", @@ -1547,7 +1679,8 @@ { "kind" : "IdRef", "name" : "'Matrix'" }, { "kind" : "IdRef", "name" : "'Scalar'" } ], - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "opname" : "OpVectorTimesMatrix", @@ -1559,7 +1692,8 @@ { "kind" : "IdRef", "name" : "'Vector'" }, { "kind" : "IdRef", "name" : "'Matrix'" } ], - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "opname" : "OpMatrixTimesVector", @@ -1571,7 +1705,8 @@ { "kind" : "IdRef", "name" : "'Matrix'" }, { "kind" : "IdRef", "name" : "'Vector'" } ], - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "opname" : "OpMatrixTimesMatrix", @@ -1583,7 +1718,8 @@ { "kind" : "IdRef", "name" : "'LeftMatrix'" }, { "kind" : "IdRef", "name" : "'RightMatrix'" } ], - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "opname" : "OpOuterProduct", @@ -1595,7 +1731,8 @@ { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" } ], - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "opname" : "OpDot", @@ -1606,7 +1743,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector 1'" }, { "kind" : "IdRef", "name" : "'Vector 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpIAddCarry", @@ -1617,7 +1755,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpISubBorrow", @@ -1628,7 +1767,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpUMulExtended", @@ -1639,7 +1779,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSMulExtended", @@ -1650,7 +1791,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAny", @@ -1660,7 +1802,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAll", @@ -1670,7 +1813,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Vector'" } - ] + ], + "version": "1.0" }, { "opname" : "OpIsNan", @@ -1680,7 +1824,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } - ] + ], + "version": "1.0" }, { "opname" : "OpIsInf", @@ -1690,7 +1835,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } - ] + ], + "version": "1.0" }, { "opname" : "OpIsFinite", @@ -1701,7 +1847,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpIsNormal", @@ -1712,7 +1859,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpSignBitSet", @@ -1723,7 +1871,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'x'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpLessOrGreater", @@ -1736,6 +1885,7 @@ { "kind" : "IdRef", "name" : "'y'" } ], "capabilities" : [ "Kernel" ], + "version" : "1.0", "lastVersion" : "1.5" }, { @@ -1748,7 +1898,8 @@ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpUnordered", @@ -1760,7 +1911,8 @@ { "kind" : "IdRef", "name" : "'x'" }, { "kind" : "IdRef", "name" : "'y'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpLogicalEqual", @@ -1771,7 +1923,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpLogicalNotEqual", @@ -1782,7 +1935,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpLogicalOr", @@ -1793,7 +1947,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpLogicalAnd", @@ -1804,7 +1959,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version" : "1.0" }, { "opname" : "OpLogicalNot", @@ -1814,7 +1970,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSelect", @@ -1826,7 +1983,8 @@ { "kind" : "IdRef", "name" : "'Condition'" }, { "kind" : "IdRef", "name" : "'Object 1'" }, { "kind" : "IdRef", "name" : "'Object 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpIEqual", @@ -1837,7 +1995,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpINotEqual", @@ -1848,7 +2007,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpUGreaterThan", @@ -1859,7 +2019,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSGreaterThan", @@ -1870,7 +2031,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpUGreaterThanEqual", @@ -1881,7 +2043,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSGreaterThanEqual", @@ -1892,7 +2055,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpULessThan", @@ -1903,7 +2067,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSLessThan", @@ -1914,7 +2079,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpULessThanEqual", @@ -1925,7 +2091,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSLessThanEqual", @@ -1936,7 +2103,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFOrdEqual", @@ -1947,7 +2115,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFUnordEqual", @@ -1958,7 +2127,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFOrdNotEqual", @@ -1969,7 +2139,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFUnordNotEqual", @@ -1980,7 +2151,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFOrdLessThan", @@ -1991,7 +2163,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFUnordLessThan", @@ -2002,7 +2175,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFOrdGreaterThan", @@ -2013,7 +2187,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFUnordGreaterThan", @@ -2024,7 +2199,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFOrdLessThanEqual", @@ -2035,7 +2211,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFUnordLessThanEqual", @@ -2046,7 +2223,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFOrdGreaterThanEqual", @@ -2057,7 +2235,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpFUnordGreaterThanEqual", @@ -2068,7 +2247,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpShiftRightLogical", @@ -2079,7 +2259,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } - ] + ], + "version": "1.0" }, { "opname" : "OpShiftRightArithmetic", @@ -2090,7 +2271,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } - ] + ], + "version": "1.0" }, { "opname" : "OpShiftLeftLogical", @@ -2101,7 +2283,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" }, { "kind" : "IdRef", "name" : "'Shift'" } - ] + ], + "version": "1.0" }, { "opname" : "OpBitwiseOr", @@ -2112,7 +2295,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpBitwiseXor", @@ -2123,7 +2307,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpBitwiseAnd", @@ -2134,7 +2319,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand 1'" }, { "kind" : "IdRef", "name" : "'Operand 2'" } - ] + ], + "version": "1.0" }, { "opname" : "OpNot", @@ -2144,7 +2330,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Operand'" } - ] + ], + "version": "1.0" }, { "opname" : "OpBitFieldInsert", @@ -2158,7 +2345,8 @@ { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], - "capabilities" : [ "Shader", "BitInstructions" ] + "capabilities" : [ "Shader", "BitInstructions" ], + "version": "1.0" }, { "opname" : "OpBitFieldSExtract", @@ -2171,7 +2359,8 @@ { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], - "capabilities" : [ "Shader", "BitInstructions" ] + "capabilities" : [ "Shader", "BitInstructions" ], + "version": "1.0" }, { "opname" : "OpBitFieldUExtract", @@ -2184,7 +2373,8 @@ { "kind" : "IdRef", "name" : "'Offset'" }, { "kind" : "IdRef", "name" : "'Count'" } ], - "capabilities" : [ "Shader", "BitInstructions" ] + "capabilities" : [ "Shader", "BitInstructions" ], + "version": "1.0" }, { "opname" : "OpBitReverse", @@ -2195,7 +2385,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" } ], - "capabilities" : [ "Shader", "BitInstructions" ] + "capabilities" : [ "Shader", "BitInstructions" ], + "version": "1.0" }, { "opname" : "OpBitCount", @@ -2205,7 +2396,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Base'" } - ] + ], + "version": "1.0" }, { "opname" : "OpDPdx", @@ -2216,7 +2408,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpDPdy", @@ -2227,7 +2420,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpFwidth", @@ -2238,7 +2432,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpDPdxFine", @@ -2249,7 +2444,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "DerivativeControl" ] + "capabilities" : [ "DerivativeControl" ], + "version": "1.0" }, { "opname" : "OpDPdyFine", @@ -2260,7 +2456,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "DerivativeControl" ] + "capabilities" : [ "DerivativeControl" ], + "version": "1.0" }, { "opname" : "OpFwidthFine", @@ -2271,7 +2468,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "DerivativeControl" ] + "capabilities" : [ "DerivativeControl" ], + "version": "1.0" }, { "opname" : "OpDPdxCoarse", @@ -2282,7 +2480,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "DerivativeControl" ] + "capabilities" : [ "DerivativeControl" ], + "version": "1.0" }, { "opname" : "OpDPdyCoarse", @@ -2293,7 +2492,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "DerivativeControl" ] + "capabilities" : [ "DerivativeControl" ], + "version": "1.0" }, { "opname" : "OpFwidthCoarse", @@ -2304,19 +2504,22 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'P'" } ], - "capabilities" : [ "DerivativeControl" ] + "capabilities" : [ "DerivativeControl" ], + "version": "1.0" }, { "opname" : "OpEmitVertex", "class" : "Primitive", "opcode" : 218, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "opname" : "OpEndPrimitive", "class" : "Primitive", "opcode" : 219, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "opname" : "OpEmitStreamVertex", @@ -2325,7 +2528,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Stream'" } ], - "capabilities" : [ "GeometryStreams" ] + "capabilities" : [ "GeometryStreams" ], + "version": "1.0" }, { "opname" : "OpEndStreamPrimitive", @@ -2334,7 +2538,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Stream'" } ], - "capabilities" : [ "GeometryStreams" ] + "capabilities" : [ "GeometryStreams" ], + "version": "1.0" }, { "opname" : "OpControlBarrier", @@ -2344,7 +2549,8 @@ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } - ] + ], + "version": "1.0" }, { "opname" : "OpMemoryBarrier", @@ -2353,7 +2559,8 @@ "operands" : [ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicLoad", @@ -2365,7 +2572,8 @@ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicStore", @@ -2376,7 +2584,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicExchange", @@ -2389,7 +2598,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicCompareExchange", @@ -2404,7 +2614,8 @@ { "kind" : "IdMemorySemantics", "name" : "'Unequal'" }, { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Comparator'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicCompareExchangeWeak", @@ -2421,6 +2632,7 @@ { "kind" : "IdRef", "name" : "'Comparator'" } ], "capabilities" : [ "Kernel" ], + "version" : "1.0", "lastVersion" : "1.3" }, { @@ -2433,7 +2645,8 @@ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicIDecrement", @@ -2445,7 +2658,8 @@ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicIAdd", @@ -2458,7 +2672,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicISub", @@ -2471,7 +2686,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicSMin", @@ -2484,7 +2700,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicUMin", @@ -2497,7 +2714,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicSMax", @@ -2510,7 +2728,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicUMax", @@ -2523,7 +2742,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicAnd", @@ -2536,7 +2756,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicOr", @@ -2549,7 +2770,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpAtomicXor", @@ -2562,7 +2784,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpPhi", @@ -2572,7 +2795,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" } - ] + ], + "version": "1.0" }, { "opname" : "OpLoopMerge", @@ -2582,7 +2806,8 @@ { "kind" : "IdRef", "name" : "'Merge Block'" }, { "kind" : "IdRef", "name" : "'Continue Target'" }, { "kind" : "LoopControl" } - ] + ], + "version": "1.0" }, { "opname" : "OpSelectionMerge", @@ -2591,7 +2816,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Merge Block'" }, { "kind" : "SelectionControl" } - ] + ], + "version": "1.0" }, { "opname" : "OpLabel", @@ -2599,7 +2825,8 @@ "opcode" : 248, "operands" : [ { "kind" : "IdResult" } - ] + ], + "version": "1.0" }, { "opname" : "OpBranch", @@ -2607,7 +2834,8 @@ "opcode" : 249, "operands" : [ { "kind" : "IdRef", "name" : "'Target Label'" } - ] + ], + "version": "1.0" }, { "opname" : "OpBranchConditional", @@ -2618,7 +2846,8 @@ { "kind" : "IdRef", "name" : "'True Label'" }, { "kind" : "IdRef", "name" : "'False Label'" }, { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" } - ] + ], + "version": "1.0" }, { "opname" : "OpSwitch", @@ -2628,18 +2857,21 @@ { "kind" : "IdRef", "name" : "'Selector'" }, { "kind" : "IdRef", "name" : "'Default'" }, { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" } - ] + ], + "version": "1.0" }, { "opname" : "OpKill", "class" : "Control-Flow", "opcode" : 252, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "opname" : "OpReturn", "class" : "Control-Flow", - "opcode" : 253 + "opcode" : 253, + "version" : "1.0" }, { "opname" : "OpReturnValue", @@ -2647,12 +2879,14 @@ "opcode" : 254, "operands" : [ { "kind" : "IdRef", "name" : "'Value'" } - ] + ], + "version": "1.0" }, { "opname" : "OpUnreachable", "class" : "Control-Flow", - "opcode" : 255 + "opcode" : 255, + "version" : "1.0" }, { "opname" : "OpLifetimeStart", @@ -2662,7 +2896,8 @@ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "LiteralInteger", "name" : "'Size'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpLifetimeStop", @@ -2672,7 +2907,8 @@ { "kind" : "IdRef", "name" : "'Pointer'" }, { "kind" : "LiteralInteger", "name" : "'Size'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpGroupAsyncCopy", @@ -2688,7 +2924,8 @@ { "kind" : "IdRef", "name" : "'Stride'" }, { "kind" : "IdRef", "name" : "'Event'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpGroupWaitEvents", @@ -2699,7 +2936,8 @@ { "kind" : "IdRef", "name" : "'Num Events'" }, { "kind" : "IdRef", "name" : "'Events List'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpGroupAll", @@ -2711,7 +2949,8 @@ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupAny", @@ -2723,7 +2962,8 @@ { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "IdRef", "name" : "'Predicate'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupBroadcast", @@ -2736,7 +2976,8 @@ { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'LocalId'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupIAdd", @@ -2749,7 +2990,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupFAdd", @@ -2762,7 +3004,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupFMin", @@ -2775,7 +3018,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupUMin", @@ -2788,7 +3032,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupSMin", @@ -2801,7 +3046,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupFMax", @@ -2814,7 +3060,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupUMax", @@ -2827,7 +3074,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpGroupSMax", @@ -2840,7 +3088,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version": "1.0" }, { "opname" : "OpReadPipe", @@ -2854,7 +3103,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpWritePipe", @@ -2868,7 +3118,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpReservedReadPipe", @@ -2884,7 +3135,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpReservedWritePipe", @@ -2900,7 +3152,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpReserveReadPipePackets", @@ -2914,7 +3167,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpReserveWritePipePackets", @@ -2928,7 +3182,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpCommitReadPipe", @@ -2940,7 +3195,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpCommitWritePipe", @@ -2952,7 +3208,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpIsValidReserveId", @@ -2963,7 +3220,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Reserve Id'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpGetNumPipePackets", @@ -2976,7 +3234,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpGetMaxPipePackets", @@ -2989,7 +3248,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpGroupReserveReadPipePackets", @@ -3004,7 +3264,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpGroupReserveWritePipePackets", @@ -3019,7 +3280,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpGroupCommitReadPipe", @@ -3032,7 +3294,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpGroupCommitWritePipe", @@ -3045,7 +3308,8 @@ { "kind" : "IdRef", "name" : "'Packet Size'" }, { "kind" : "IdRef", "name" : "'Packet Alignment'" } ], - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version": "1.0" }, { "opname" : "OpEnqueueMarker", @@ -3059,7 +3323,8 @@ { "kind" : "IdRef", "name" : "'Wait Events'" }, { "kind" : "IdRef", "name" : "'Ret Event'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpEnqueueKernel", @@ -3080,7 +3345,8 @@ { "kind" : "IdRef", "name" : "'Param Align'" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "'Local Size'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpGetKernelNDrangeSubGroupCount", @@ -3095,7 +3361,8 @@ { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpGetKernelNDrangeMaxSubGroupSize", @@ -3110,7 +3377,8 @@ { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpGetKernelWorkGroupSize", @@ -3124,7 +3392,8 @@ { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple", @@ -3138,7 +3407,8 @@ { "kind" : "IdRef", "name" : "'Param Size'" }, { "kind" : "IdRef", "name" : "'Param Align'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpRetainEvent", @@ -3147,7 +3417,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Event'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpReleaseEvent", @@ -3156,7 +3427,8 @@ "operands" : [ { "kind" : "IdRef", "name" : "'Event'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpCreateUserEvent", @@ -3166,7 +3438,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpIsValidEvent", @@ -3177,7 +3450,8 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Event'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpSetUserEventStatus", @@ -3187,7 +3461,8 @@ { "kind" : "IdRef", "name" : "'Event'" }, { "kind" : "IdRef", "name" : "'Status'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpCaptureEventProfilingInfo", @@ -3198,7 +3473,8 @@ { "kind" : "IdRef", "name" : "'Profiling Info'" }, { "kind" : "IdRef", "name" : "'Value'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpGetDefaultQueue", @@ -3208,7 +3484,8 @@ { "kind" : "IdResultType" }, { "kind" : "IdResult" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpBuildNDRange", @@ -3221,7 +3498,8 @@ { "kind" : "IdRef", "name" : "'LocalWorkSize'" }, { "kind" : "IdRef", "name" : "'GlobalWorkOffset'" } ], - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version": "1.0" }, { "opname" : "OpImageSparseSampleImplicitLod", @@ -3234,7 +3512,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpImageSparseSampleExplicitLod", @@ -3247,7 +3526,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpImageSparseSampleDrefImplicitLod", @@ -3261,7 +3541,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpImageSparseSampleDrefExplicitLod", @@ -3275,7 +3556,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpImageSparseSampleProjImplicitLod", @@ -3346,7 +3628,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpImageSparseGather", @@ -3360,7 +3643,8 @@ { "kind" : "IdRef", "name" : "'Component'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpImageSparseDrefGather", @@ -3374,7 +3658,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpImageSparseTexelsResident", @@ -3385,12 +3670,14 @@ { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "'Resident Code'" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpNoLine", "class" : "Debug", - "opcode" : 317 + "opcode" : 317, + "version" : "1.0" }, { "opname" : "OpAtomicFlagTestAndSet", @@ -3403,7 +3690,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpAtomicFlagClear", @@ -3414,7 +3702,8 @@ { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "opname" : "OpImageSparseRead", @@ -3427,7 +3716,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version": "1.0" }, { "opname" : "OpSizeOf", @@ -4493,9 +4783,80 @@ "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", + "class" : "Type-Declaration", "opcode" : 4472, "operands" : [ { "kind" : "IdResult" } @@ -4689,6 +5050,70 @@ "capabilities" : [ "TextureBlockMatchQCOM" ], "version" : "None" }, + { + "opname" : "OpImageBlockMatchWindowSSDQCOM", + "class" : "Image", + "opcode" : 4500, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Target Sampled Image'" }, + { "kind" : "IdRef", "name" : "'Target Coordinates'" }, + { "kind" : "IdRef", "name" : "'Reference Sampled Image'" }, + { "kind" : "IdRef", "name" : "'Reference Coordinates'" }, + { "kind" : "IdRef", "name" : "'Block Size'" } + ], + "capabilities" : [ "TextureBlockMatch2QCOM" ], + "version" : "None" + }, + { + "opname" : "OpImageBlockMatchWindowSADQCOM", + "class" : "Image", + "opcode" : 4501, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Target Sampled Image'" }, + { "kind" : "IdRef", "name" : "'Target Coordinates'" }, + { "kind" : "IdRef", "name" : "'Reference Sampled Image'" }, + { "kind" : "IdRef", "name" : "'Reference Coordinates'" }, + { "kind" : "IdRef", "name" : "'Block Size'" } + ], + "capabilities" : [ "TextureBlockMatch2QCOM" ], + "version" : "None" + }, + { + "opname" : "OpImageBlockMatchGatherSSDQCOM", + "class" : "Image", + "opcode" : 4502, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Target Sampled Image'" }, + { "kind" : "IdRef", "name" : "'Target Coordinates'" }, + { "kind" : "IdRef", "name" : "'Reference Sampled Image'" }, + { "kind" : "IdRef", "name" : "'Reference Coordinates'" }, + { "kind" : "IdRef", "name" : "'Block Size'" } + ], + "capabilities" : [ "TextureBlockMatch2QCOM" ], + "version" : "None" + }, + { + "opname" : "OpImageBlockMatchGatherSADQCOM", + "class" : "Image", + "opcode" : 4503, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Target Sampled Image'" }, + { "kind" : "IdRef", "name" : "'Target Coordinates'" }, + { "kind" : "IdRef", "name" : "'Reference Sampled Image'" }, + { "kind" : "IdRef", "name" : "'Reference Coordinates'" }, + { "kind" : "IdRef", "name" : "'Block Size'" } + ], + "capabilities" : [ "TextureBlockMatch2QCOM" ], + "version" : "None" + }, { "opname" : "OpGroupIAddNonUniformAMD", "class" : "Group", @@ -4850,6 +5275,65 @@ "capabilities" : [ "ShaderClockKHR" ], "version" : "None" }, + { + "opname" : "OpFinalizeNodePayloadsAMDX", + "class" : "Reserved", + "opcode" : 5075, + "operands" : [ + { "kind" : "IdRef", "name": "'Payload Array'" } + ], + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, + { + "opname" : "OpFinishWritingNodePayloadAMDX", + "class" : "Reserved", + "opcode" : 5078, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name": "'Payload'" } + ], + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, + { + "opname" : "OpInitializeNodePayloadsAMDX", + "class" : "Reserved", + "opcode" : 5090, + "operands" : [ + { "kind" : "IdRef", "name": "'Payload Array'" }, + { "kind" : "IdScope", "name": "'Visibility'" }, + { "kind" : "IdRef", "name": "'Payload Count'" }, + { "kind" : "IdRef", "name": "'Node Index'" } + ], + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, + { + "opname" : "OpGroupNonUniformQuadAllKHR", + "class" : "Non-Uniform", + "opcode" : 5110, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Predicate'" } + ], + "capabilities" : [ "QuadControlKHR" ], + "version" : "None" + }, + { + "opname" : "OpGroupNonUniformQuadAnyKHR", + "class" : "Non-Uniform", + "opcode" : 5111, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Predicate'" } + ], + "capabilities" : [ "QuadControlKHR" ], + "version" : "None" + }, { "opname" : "OpHitObjectRecordHitMotionNV", "class" : "Reserved", @@ -5297,7 +5781,7 @@ }, { "opname" : "OpTypeHitObjectNV", - "class" : "Reserved", + "class" : "Type-Declaration", "opcode" : 5281, "operands" : [ { "kind" : "IdResult" } @@ -5371,6 +5855,38 @@ "extensions" : [ "SPV_NV_mesh_shader" ], "version" : "None" }, + { + "opname" : "OpFetchMicroTriangleVertexPositionNV", + "class" : "Reserved", + "opcode" : 5300, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Accel'" }, + { "kind" : "IdRef", "name" : "'Instance Id'" }, + { "kind" : "IdRef", "name" : "'Geometry Index'" }, + { "kind" : "IdRef", "name" : "'Primitive Index'" }, + { "kind" : "IdRef", "name" : "'Barycentric'" } + ], + "capabilities" : [ "DisplacementMicromapNV" ], + "version" : "None" + }, + { + "opname" : "OpFetchMicroTriangleVertexBarycentricNV", + "class" : "Reserved", + "opcode" : 5301, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Accel'" }, + { "kind" : "IdRef", "name" : "'Instance Id'" }, + { "kind" : "IdRef", "name" : "'Geometry Index'" }, + { "kind" : "IdRef", "name" : "'Primitive Index'" }, + { "kind" : "IdRef", "name" : "'Barycentric'" } + ], + "capabilities" : [ "DisplacementMicromapNV" ], + "version" : "None" + }, { "opname" : "OpReportIntersectionNV", "class" : "Reserved", @@ -5504,7 +6020,7 @@ }, { "opname" : "OpTypeAccelerationStructureNV", - "class" : "Reserved", + "class" : "Type-Declaration", "opcode" : 5341, "operands" : [ { "kind" : "IdResult" } @@ -5515,7 +6031,7 @@ }, { "opname" : "OpTypeAccelerationStructureKHR", - "class" : "Reserved", + "class" : "Type-Declaration", "opcode" : 5341, "operands" : [ { "kind" : "IdResult" } @@ -5539,7 +6055,7 @@ }, { "opname" : "OpTypeCooperativeMatrixNV", - "class" : "Reserved", + "class" : "Type-Declaration", "opcode" : 5358, "operands" : [ { "kind" : "IdResult" }, @@ -6124,7 +6640,7 @@ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], - "capabilities" : [ "AtomicFloat16MinMaxEXT", "AtomicFloat32MinMaxEXT", "AtomicFloat64MinMaxEXT" ], + "capabilities" : [ "AtomicFloat16MinMaxEXT", "AtomicFloat32MinMaxEXT", "AtomicFloat64MinMaxEXT", "AtomicFloat16VectorNV" ], "version" : "None" }, { @@ -6139,7 +6655,7 @@ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], - "capabilities" : [ "AtomicFloat16MinMaxEXT", "AtomicFloat32MinMaxEXT", "AtomicFloat64MinMaxEXT" ], + "capabilities" : [ "AtomicFloat16MinMaxEXT", "AtomicFloat32MinMaxEXT", "AtomicFloat64MinMaxEXT", "AtomicFloat16VectorNV" ], "version" : "None" }, { @@ -9111,7 +9627,7 @@ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }, { "kind" : "IdRef", "name" : "'Value'" } ], - "capabilities" : [ "AtomicFloat16AddEXT", "AtomicFloat32AddEXT", "AtomicFloat64AddEXT" ], + "capabilities" : [ "AtomicFloat16AddEXT", "AtomicFloat32AddEXT", "AtomicFloat64AddEXT", "AtomicFloat16VectorNV" ], "extensions" : [ "SPV_EXT_shader_atomic_float_add" ], "version" : "None" }, @@ -9136,7 +9652,7 @@ "operands" : [ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." } ], - "capabilities" : [ "LongConstantCompositeINTEL" ], + "capabilities" : [ "LongCompositesINTEL" ], "version" : "None" }, { @@ -9146,7 +9662,7 @@ "operands" : [ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ], - "capabilities" : [ "LongConstantCompositeINTEL" ], + "capabilities" : [ "LongCompositesINTEL" ], "version" : "None" }, { @@ -9156,9 +9672,21 @@ "operands" : [ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } ], - "capabilities" : [ "LongConstantCompositeINTEL" ], + "capabilities" : [ "LongCompositesINTEL" ], "version" : "None" }, + { + "opname" : "OpCompositeConstructContinuedINTEL", + "class" : "Composite", + "opcode" : 6096, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" } + ], + "capabilities" : [ "LongCompositesINTEL" ], + "version": "None" + }, { "opname" : "OpConvertFToBF16INTEL", "class" : "Conversion", @@ -9318,6 +9846,34 @@ ], "capabilities" : [ "GroupUniformArithmeticKHR" ], "version" : "None" + }, + { + "opname" : "OpMaskedGatherINTEL", + "class" : "Memory", + "opcode" : 6428, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'PtrVector'" }, + { "kind" : "LiteralInteger", "name" : "'Alignment'" }, + { "kind" : "IdRef", "name" : "'Mask'" }, + { "kind" : "IdRef", "name" : "'FillEmpty'" } + ], + "capabilities" : [ "MaskedGatherScatterINTEL" ], + "version" : "None" + }, + { + "opname" : "OpMaskedScatterINTEL", + "class" : "Memory", + "opcode" : 6429, + "operands" : [ + { "kind" : "IdRef", "name" : "'InputVector'" }, + { "kind" : "IdRef", "name" : "'PtrVector'" }, + { "kind" : "LiteralInteger", "name" : "'Alignment'" }, + { "kind" : "IdRef", "name" : "'Mask'" } + ], + "capabilities" : [ "MaskedGatherScatterINTEL" ], + "version" : "None" } ], "operand_kinds" : [ @@ -9335,14 +9891,16 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "Lod", "value" : "0x0002", "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "Grad", @@ -9350,14 +9908,16 @@ "parameters" : [ { "kind" : "IdRef" }, { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "ConstOffset", "value" : "0x0008", "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "Offset", @@ -9365,7 +9925,8 @@ "capabilities" : [ "ImageGatherExtended" ], "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "ConstOffsets", @@ -9373,14 +9934,16 @@ "capabilities" : [ "ImageGatherExtended" ], "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "Sample", "value" : "0x0040", "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "MinLod", @@ -9388,7 +9951,8 @@ "capabilities" : [ "MinLod" ], "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" }, { "enumerant" : "MakeTexelAvailable", @@ -9474,7 +10038,8 @@ "value" : "0x10000", "parameters" : [ { "kind" : "IdRef" } - ] + ], + "version": "1.0" } ] }, @@ -9484,38 +10049,62 @@ "enumerants" : [ { "enumerant" : "None", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "NotNaN", - "value" : "0x0001" + "value" : "0x0001", + "version" : "1.0" }, { "enumerant" : "NotInf", - "value" : "0x0002" + "value" : "0x0002", + "version" : "1.0" }, { "enumerant" : "NSZ", - "value" : "0x0004" + "value" : "0x0004", + "version" : "1.0" }, { "enumerant" : "AllowRecip", - "value" : "0x0008" + "value" : "0x0008", + "version" : "1.0" }, { "enumerant" : "Fast", - "value" : "0x0010" + "value" : "0x0010", + "version" : "1.0" + }, + { + "enumerant" : "AllowContract", + "value" : "0x10000", + "capabilities" : [ "FloatControls2", "FPFastMathModeINTEL" ], + "version" : "None" }, { "enumerant" : "AllowContractFastINTEL", "value" : "0x10000", - "capabilities" : [ "FPFastMathModeINTEL" ], + "capabilities" : [ "FloatControls2", "FPFastMathModeINTEL" ], + "version" : "None" + }, + { + "enumerant" : "AllowReassoc", + "value" : "0x20000", + "capabilities" : [ "FloatControls2", "FPFastMathModeINTEL" ], "version" : "None" }, { "enumerant" : "AllowReassocINTEL", "value" : "0x20000", - "capabilities" : [ "FPFastMathModeINTEL" ], + "capabilities" : [ "FloatControls2", "FPFastMathModeINTEL" ], + "version" : "None" + }, + { + "enumerant" : "AllowTransform", + "value" : "0x40000", + "capabilities" : [ "FloatControls2" ], "version" : "None" } ] @@ -9526,15 +10115,18 @@ "enumerants" : [ { "enumerant" : "None", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "Flatten", - "value" : "0x0001" + "value" : "0x0001", + "version" : "1.0" }, { "enumerant" : "DontFlatten", - "value" : "0x0002" + "value" : "0x0002", + "version" : "1.0" } ] }, @@ -9544,15 +10136,18 @@ "enumerants" : [ { "enumerant" : "None", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "Unroll", - "value" : "0x0001" + "value" : "0x0001", + "version" : "1.0" }, { "enumerant" : "DontUnroll", - "value" : "0x0002" + "value" : "0x0002", + "version" : "1.0" }, { "enumerant" : "DependencyInfinite", @@ -9702,23 +10297,28 @@ "enumerants" : [ { "enumerant" : "None", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "Inline", - "value" : "0x0001" + "value" : "0x0001", + "version" : "1.0" }, { "enumerant" : "DontInline", - "value" : "0x0002" + "value" : "0x0002", + "version" : "1.0" }, { "enumerant" : "Pure", - "value" : "0x0004" + "value" : "0x0004", + "version" : "1.0" }, { "enumerant" : "Const", - "value" : "0x0008" + "value" : "0x0008", + "version" : "1.0" }, { "enumerant" : "OptNoneINTEL", @@ -9734,53 +10334,65 @@ "enumerants" : [ { "enumerant" : "Relaxed", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "None", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "Acquire", - "value" : "0x0002" + "value" : "0x0002", + "version" : "1.0" }, { "enumerant" : "Release", - "value" : "0x0004" + "value" : "0x0004", + "version" : "1.0" }, { "enumerant" : "AcquireRelease", - "value" : "0x0008" + "value" : "0x0008", + "version" : "1.0" }, { "enumerant" : "SequentiallyConsistent", - "value" : "0x0010" + "value" : "0x0010", + "version" : "1.0" }, { "enumerant" : "UniformMemory", "value" : "0x0040", - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "SubgroupMemory", - "value" : "0x0080" + "value" : "0x0080", + "version" : "1.0" }, { "enumerant" : "WorkgroupMemory", - "value" : "0x0100" + "value" : "0x0100", + "version" : "1.0" }, { "enumerant" : "CrossWorkgroupMemory", - "value" : "0x0200" + "value" : "0x0200", + "version" : "1.0" }, { "enumerant" : "AtomicCounterMemory", "value" : "0x0400", - "capabilities" : [ "AtomicStorage" ] + "capabilities" : [ "AtomicStorage" ], + "version": "1.0" }, { "enumerant" : "ImageMemory", - "value" : "0x0800" + "value" : "0x0800", + "version" : "1.0" }, { "enumerant" : "OutputMemory", @@ -9836,22 +10448,26 @@ "enumerants" : [ { "enumerant" : "None", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "Volatile", - "value" : "0x0001" + "value" : "0x0001", + "version" : "1.0" }, { "enumerant" : "Aligned", "value" : "0x0002", "parameters" : [ { "kind" : "LiteralInteger" } - ] + ], + "version" : "1.0" }, { "enumerant" : "Nontemporal", - "value" : "0x0004" + "value" : "0x0004", + "version" : "1.0" }, { "enumerant" : "MakePointerAvailable", @@ -9932,12 +10548,14 @@ "enumerants" : [ { "enumerant" : "None", - "value" : "0x0000" + "value" : "0x0000", + "version" : "1.0" }, { "enumerant" : "CmdExecTime", "value" : "0x0001", - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" } ] }, @@ -10055,39 +10673,68 @@ "enumerants" : [ { "enumerant" : "Unknown", - "value" : 0 + "value" : 0, + "version" : "1.0" }, { "enumerant" : "ESSL", - "value" : 1 + "value" : 1, + "version" : "1.0" }, { "enumerant" : "GLSL", - "value" : 2 + "value" : 2, + "version" : "1.0" }, { "enumerant" : "OpenCL_C", - "value" : 3 + "value" : 3, + "version" : "1.0" }, { "enumerant" : "OpenCL_CPP", - "value" : 4 + "value" : 4, + "version" : "1.0" }, { "enumerant" : "HLSL", - "value" : 5 + "value" : 5, + "version" : "1.0" }, { "enumerant" : "CPP_for_OpenCL", - "value" : 6 + "value" : 6, + "version" : "1.0" }, { "enumerant" : "SYCL", - "value" : 7 + "value" : 7, + "version" : "1.0" }, { "enumerant" : "HERO_C", - "value" : 8 + "value" : 8, + "version" : "1.0" + }, + { + "enumerant" : "NZSL", + "value" : 9, + "version" : "1.0" + }, + { + "enumerant" : "WGSL", + "value" : 10, + "version" : "1.0" + }, + { + "enumerant" : "Slang", + "value" : 11, + "version" : "1.0" + }, + { + "enumerant" : "Zig", + "value" : 12, + "version" : "1.0" } ] }, @@ -10098,37 +10745,44 @@ { "enumerant" : "Vertex", "value" : 0, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "TessellationControl", "value" : 1, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "TessellationEvaluation", "value" : 2, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "Geometry", "value" : 3, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "Fragment", "value" : 4, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "GLCompute", "value" : 5, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Kernel", "value" : 6, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "TaskNV", @@ -10234,17 +10888,20 @@ "enumerants" : [ { "enumerant" : "Logical", - "value" : 0 + "value" : 0, + "version" : "1.0" }, { "enumerant" : "Physical32", "value" : 1, - "capabilities" : [ "Addresses" ] + "capabilities" : [ "Addresses" ], + "version": "1.0" }, { "enumerant" : "Physical64", "value" : 2, - "capabilities" : [ "Addresses" ] + "capabilities" : [ "Addresses" ], + "version": "1.0" }, { "enumerant" : "PhysicalStorageBuffer64", @@ -10269,17 +10926,20 @@ { "enumerant" : "Simple", "value" : 0, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "GLSL450", "value" : 1, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "OpenCL", "value" : 2, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Vulkan", @@ -10306,82 +10966,98 @@ "capabilities" : [ "Geometry" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Number of <>'" } - ] + ], + "version": "1.0" }, { "enumerant" : "SpacingEqual", "value" : 1, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "SpacingFractionalEven", "value" : 2, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "SpacingFractionalOdd", "value" : 3, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "VertexOrderCw", "value" : 4, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "VertexOrderCcw", "value" : 5, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "PixelCenterInteger", "value" : 6, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "OriginUpperLeft", "value" : 7, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "OriginLowerLeft", "value" : 8, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "EarlyFragmentTests", "value" : 9, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "PointMode", "value" : 10, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "Xfb", "value" : 11, - "capabilities" : [ "TransformFeedback" ] + "capabilities" : [ "TransformFeedback" ], + "version": "1.0" }, { "enumerant" : "DepthReplacing", "value" : 12, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "DepthGreater", "value" : 14, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "DepthLess", "value" : 15, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "DepthUnchanged", "value" : 16, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "LocalSize", @@ -10390,7 +11066,8 @@ { "kind" : "LiteralInteger", "name" : "'x size'" }, { "kind" : "LiteralInteger", "name" : "'y size'" }, { "kind" : "LiteralInteger", "name" : "'z size'" } - ] + ], + "version": "1.0" }, { "enumerant" : "LocalSizeHint", @@ -10400,42 +11077,50 @@ { "kind" : "LiteralInteger", "name" : "'x size'" }, { "kind" : "LiteralInteger", "name" : "'y size'" }, { "kind" : "LiteralInteger", "name" : "'z size'" } - ] + ], + "version": "1.0" }, { "enumerant" : "InputPoints", "value" : 19, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "InputLines", "value" : 20, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "InputLinesAdjacency", "value" : 21, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "Triangles", "value" : 22, - "capabilities" : [ "Geometry", "Tessellation" ] + "capabilities" : [ "Geometry", "Tessellation" ], + "version": "1.0" }, { "enumerant" : "InputTrianglesAdjacency", "value" : 23, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "Quads", "value" : 24, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "Isolines", "value" : 25, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "OutputVertices", @@ -10443,22 +11128,26 @@ "capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV", "MeshShadingEXT" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Vertex count'" } - ] + ], + "version": "1.0" }, { "enumerant" : "OutputPoints", "value" : 27, - "capabilities" : [ "Geometry", "MeshShadingNV", "MeshShadingEXT" ] + "capabilities" : [ "Geometry", "MeshShadingNV", "MeshShadingEXT" ], + "version": "1.0" }, { "enumerant" : "OutputLineStrip", "value" : 28, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "OutputTriangleStrip", "value" : 29, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "VecTypeHint", @@ -10466,12 +11155,14 @@ "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Vector type'" } - ] + ], + "version": "1.0" }, { "enumerant" : "ContractionOff", "value" : 31, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Initializer", @@ -10629,6 +11320,52 @@ "extensions" : [ "SPV_EXT_shader_stencil_export" ], "version" : "None" }, + { + "enumerant" : "CoalescingAMDX", + "value" : 5069, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, + { + "enumerant" : "MaxNodeRecursionAMDX", + "value" : 5071, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "parameters" : [ + { "kind" : "IdRef", "name" : "'Number of recursions'" } + ], + "version" : "None" + }, + { + "enumerant" : "StaticNumWorkgroupsAMDX", + "value" : 5072, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "parameters" : [ + { "kind" : "IdRef", "name" : "'x size'" }, + { "kind" : "IdRef", "name" : "'y size'" }, + { "kind" : "IdRef", "name" : "'z size'" } + ], + "version" : "None" + }, + { + "enumerant" : "ShaderIndexAMDX", + "value" : 5073, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "parameters" : [ + { "kind" : "IdRef", "name" : "'Shader Index'" } + ], + "version" : "None" + }, + { + "enumerant" : "MaxNumWorkgroupsAMDX", + "value" : 5077, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "parameters" : [ + { "kind" : "IdRef", "name" : "'x size'" }, + { "kind" : "IdRef", "name" : "'y size'" }, + { "kind" : "IdRef", "name" : "'z size'" } + ], + "version" : "None" + }, { "enumerant": "StencilRefUnchangedFrontAMD", "value": 5079, @@ -10671,6 +11408,18 @@ "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests", "SPV_EXT_shader_stencil_export" ], "version": "None" }, + { + "enumerant": "QuadDerivativesKHR", + "value": 5088, + "capabilities": [ "QuadControlKHR" ], + "version": "None" + }, + { + "enumerant" : "RequireFullQuadsKHR", + "value" : 5089, + "capabilities" : [ "QuadControlKHR" ], + "version" : "None" + }, { "enumerant" : "OutputLinesNV", "value" : 5269, @@ -10869,6 +11618,23 @@ "version" : "None" }, { + "enumerant" : "MaximallyReconvergesKHR", + "value" : 6023, + "capabilities" : [ "Shader" ], + "extensions" : [ "SPV_KHR_maximal_reconvergence" ], + "version" : "None" + }, + { + "enumerant" : "FPFastMathDefault", + "value" : 6028, + "parameters" : [ + { "kind" : "IdRef", "name" : "'Target Type'" }, + { "kind" : "IdRef", "name" : "'Fast-Math Mode'" } + ], + "capabilities" : [ "FloatControls2" ], + "version" : "None" + }, + { "enumerant" : "StreamingInterfaceINTEL", "value" : 6154, "parameters" : [ @@ -10894,6 +11660,33 @@ ], "capabilities" : [ "VectorComputeINTEL" ], "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" } ] }, @@ -10903,57 +11696,69 @@ "enumerants" : [ { "enumerant" : "UniformConstant", - "value" : 0 + "value" : 0, + "version" : "1.0" }, { "enumerant" : "Input", - "value" : 1 + "value" : 1, + "version" : "1.0" }, { "enumerant" : "Uniform", "value" : 2, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Output", "value" : 3, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Workgroup", - "value" : 4 + "value" : 4, + "version" : "1.0" }, { "enumerant" : "CrossWorkgroup", - "value" : 5 + "value" : 5, + "version" : "1.0" }, { "enumerant" : "Private", "value" : 6, - "capabilities" : [ "Shader", "VectorComputeINTEL" ] + "capabilities" : [ "Shader", "VectorComputeINTEL" ], + "version": "1.0" }, { "enumerant" : "Function", - "value" : 7 + "value" : 7, + "version" : "1.0" }, { "enumerant" : "Generic", "value" : 8, - "capabilities" : [ "GenericPointer" ] + "capabilities" : [ "GenericPointer" ], + "version": "1.0" }, { "enumerant" : "PushConstant", "value" : 9, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "AtomicCounter", "value" : 10, - "capabilities" : [ "AtomicStorage" ] + "capabilities" : [ "AtomicStorage" ], + "version": "1.0" }, { "enumerant" : "Image", - "value" : 11 + "value" : 11, + "version" : "1.0" }, { "enumerant" : "StorageBuffer", @@ -10971,6 +11776,18 @@ "capabilities" : [ "TileImageColorReadAccessEXT" ], "version" : "None" }, + { + "enumerant" : "NodePayloadAMDX", + "value" : 5068, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, + { + "enumerant" : "NodeOutputPayloadAMDX", + "value" : 5076, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, { "enumerant" : "CallableDataNV", "value" : 5328, @@ -11116,35 +11933,42 @@ { "enumerant" : "1D", "value" : 0, - "capabilities" : [ "Sampled1D" ] + "capabilities" : [ "Sampled1D" ], + "version": "1.0" }, { "enumerant" : "2D", - "value" : 1 + "value" : 1, + "version" : "1.0" }, { "enumerant" : "3D", - "value" : 2 + "value" : 2, + "version" : "1.0" }, { "enumerant" : "Cube", "value" : 3, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rect", "value" : 4, - "capabilities" : [ "SampledRect" ] + "capabilities" : [ "SampledRect" ], + "version": "1.0" }, { "enumerant" : "Buffer", "value" : 5, - "capabilities" : [ "SampledBuffer" ] + "capabilities" : [ "SampledBuffer" ], + "version": "1.0" }, { "enumerant" : "SubpassData", "value" : 6, - "capabilities" : [ "InputAttachment" ] + "capabilities" : [ "InputAttachment" ], + "version": "1.0" }, { "enumerant" : "TileImageDataEXT", @@ -11161,27 +11985,27 @@ { "enumerant" : "None", "value" : 0, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "ClampToEdge", "value" : 1, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "Clamp", "value" : 2, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "Repeat", "value" : 3, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "RepeatMirrored", "value" : 4, - "capabilities" : [ "Kernel" ] + "version": "1.0" } ] }, @@ -11192,12 +12016,12 @@ { "enumerant" : "Nearest", "value" : 0, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "Linear", "value" : 1, - "capabilities" : [ "Kernel" ] + "version": "1.0" } ] }, @@ -11207,212 +12031,254 @@ "enumerants" : [ { "enumerant" : "Unknown", - "value" : 0 + "value" : 0, + "version" : "1.0" }, { "enumerant" : "Rgba32f", "value" : 1, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgba16f", "value" : 2, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "R32f", "value" : 3, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgba8", "value" : 4, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgba8Snorm", "value" : 5, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rg32f", "value" : 6, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg16f", "value" : 7, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R11fG11fB10f", "value" : 8, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R16f", "value" : 9, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rgba16", "value" : 10, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rgb10A2", "value" : 11, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg16", "value" : 12, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg8", "value" : 13, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R16", "value" : 14, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R8", "value" : 15, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rgba16Snorm", "value" : 16, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg16Snorm", "value" : 17, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg8Snorm", "value" : 18, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R16Snorm", "value" : 19, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R8Snorm", "value" : 20, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rgba32i", "value" : 21, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgba16i", "value" : 22, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgba8i", "value" : 23, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "R32i", "value" : 24, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rg32i", "value" : 25, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg16i", "value" : 26, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg8i", "value" : 27, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R16i", "value" : 28, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R8i", "value" : 29, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rgba32ui", "value" : 30, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgba16ui", "value" : 31, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgba8ui", "value" : 32, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "R32ui", "value" : 33, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Rgb10a2ui", "value" : 34, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg32ui", "value" : 35, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg16ui", "value" : 36, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "Rg8ui", "value" : 37, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R16ui", "value" : 38, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, { "enumerant" : "R8ui", "value" : 39, - "capabilities" : [ "StorageImageExtendedFormats" ] + "capabilities" : [ "StorageImageExtendedFormats" ], + "version": "1.0" }, - { + { "enumerant" : "R64ui", "value" : 40, - "capabilities" : [ "Int64ImageEXT" ] + "capabilities" : [ "Int64ImageEXT" ], + "version": "1.0" }, { "enumerant" : "R64i", "value" : 41, - "capabilities" : [ "Int64ImageEXT" ] + "capabilities" : [ "Int64ImageEXT" ], + "version": "1.0" } ] }, @@ -11423,102 +12289,102 @@ { "enumerant" : "R", "value" : 0, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "A", "value" : 1, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "RG", "value" : 2, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "RA", "value" : 3, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "RGB", "value" : 4, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "RGBA", "value" : 5, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "BGRA", "value" : 6, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "ARGB", "value" : 7, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "Intensity", "value" : 8, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "Luminance", "value" : 9, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "Rx", "value" : 10, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "RGx", "value" : 11, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "RGBx", "value" : 12, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "Depth", "value" : 13, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "DepthStencil", "value" : 14, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "sRGB", "value" : 15, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "sRGBx", "value" : 16, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "sRGBA", "value" : 17, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "sBGRA", "value" : 18, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "ABGR", "value" : 19, - "capabilities" : [ "Kernel" ] + "version": "1.0" } ] }, @@ -11529,87 +12395,97 @@ { "enumerant" : "SnormInt8", "value" : 0, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "SnormInt16", "value" : 1, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "UnormInt8", "value" : 2, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "UnormInt16", "value" : 3, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "UnormShort565", "value" : 4, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "UnormShort555", "value" : 5, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "UnormInt101010", "value" : 6, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "SignedInt8", "value" : 7, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "SignedInt16", "value" : 8, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "SignedInt32", "value" : 9, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "UnsignedInt8", "value" : 10, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "UnsignedInt16", "value" : 11, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "UnsignedInt32", "value" : 12, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "HalfFloat", "value" : 13, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "Float", "value" : 14, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "UnormInt24", "value" : 15, - "capabilities" : [ "Kernel" ] + "version": "1.0" }, { "enumerant" : "UnormInt101010_2", "value" : 16, - "capabilities" : [ "Kernel" ] + "version": "1.0" + }, + { + "enumerant" : "UnsignedIntRaw10EXT", + "value" : 19, + "version": "1.0" + }, + { + "enumerant" : "UnsignedIntRaw12EXT", + "value" : 20, + "version": "1.0" } ] }, @@ -11619,19 +12495,23 @@ "enumerants" : [ { "enumerant" : "RTE", - "value" : 0 + "value" : 0, + "version" : "1.0" }, { "enumerant" : "RTZ", - "value" : 1 + "value" : 1, + "version" : "1.0" }, { "enumerant" : "RTP", - "value" : 2 + "value" : 2, + "version" : "1.0" }, { "enumerant" : "RTN", - "value" : 3 + "value" : 3, + "version" : "1.0" } ] }, @@ -11650,7 +12530,7 @@ "value" : 1, "capabilities" : [ "FunctionFloatControlINTEL" ], "version" : "None" - } + } ] }, { @@ -11762,12 +12642,14 @@ { "enumerant" : "Export", "value" : 0, - "capabilities" : [ "Linkage" ] + "capabilities" : [ "Linkage" ], + "version": "1.0" }, { "enumerant" : "Import", "value" : 1, - "capabilities" : [ "Linkage" ] + "capabilities" : [ "Linkage" ], + "version": "1.0" }, { "enumerant" : "LinkOnceODR", @@ -11785,17 +12667,50 @@ { "enumerant" : "ReadOnly", "value" : 0, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "WriteOnly", "value" : 1, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "ReadWrite", "value" : 2, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" + } + ] + }, + { + "category" : "ValueEnum", + "kind" : "HostAccessQualifier", + "enumerants" : [ + { + "enumerant" : "NoneINTEL", + "value" : 0, + "capabilities" : [ "GlobalVariableHostAccessINTEL" ], + "version" : "None" + }, + { + "enumerant" : "ReadINTEL", + "value" : 1, + "capabilities" : [ "GlobalVariableHostAccessINTEL" ], + "version" : "None" + }, + { + "enumerant" : "WriteINTEL", + "value" : 2, + "capabilities" : [ "GlobalVariableHostAccessINTEL" ], + "version" : "None" + }, + { + "enumerant" : "ReadWriteINTEL", + "value" : 3, + "capabilities" : [ "GlobalVariableHostAccessINTEL" ], + "version" : "None" } ] }, @@ -11806,47 +12721,56 @@ { "enumerant" : "Zext", "value" : 0, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Sext", "value" : 1, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "ByVal", "value" : 2, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Sret", "value" : 3, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "NoAlias", "value" : 4, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "NoCapture", "value" : 5, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "NoWrite", "value" : 6, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "NoReadWrite", "value" : 7, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "RuntimeAlignedINTEL", "value" : 5940, - "capabilities" : [ "RuntimeAlignedAttributeINTEL" ] + "capabilities" : [ "RuntimeAlignedAttributeINTEL" ], + "version": "1.0" } ] }, @@ -11857,7 +12781,8 @@ { "enumerant" : "RelaxedPrecision", "value" : 0, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "SpecId", @@ -11865,28 +12790,33 @@ "capabilities" : [ "Shader", "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" } - ] + ], + "version": "1.0" }, { "enumerant" : "Block", "value" : 2, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "BufferBlock", "value" : 3, "capabilities" : [ "Shader" ], + "version": "1.0", "lastVersion" : "1.3" }, { "enumerant" : "RowMajor", "value" : 4, - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "enumerant" : "ColMajor", "value" : 5, - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "enumerant" : "ArrayStride", @@ -11894,7 +12824,8 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Array Stride'" } - ] + ], + "version": "1.0" }, { "enumerant" : "MatrixStride", @@ -11902,93 +12833,112 @@ "capabilities" : [ "Matrix" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" } - ] + ], + "version": "1.0" }, { "enumerant" : "GLSLShared", "value" : 8, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "GLSLPacked", "value" : 9, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "CPacked", "value" : 10, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "BuiltIn", "value" : 11, "parameters" : [ { "kind" : "BuiltIn" } - ] + ], + "version": "1.0" }, { "enumerant" : "NoPerspective", "value" : 13, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Flat", "value" : 14, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Patch", "value" : 15, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "Centroid", "value" : 16, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Sample", "value" : 17, - "capabilities" : [ "SampleRateShading" ] + "capabilities" : [ "SampleRateShading" ], + "version": "1.0" }, { "enumerant" : "Invariant", "value" : 18, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Restrict", - "value" : 19 + "value" : 19, + "version" : "1.0" }, { "enumerant" : "Aliased", - "value" : 20 + "value" : 20, + "version" : "1.0" }, { "enumerant" : "Volatile", - "value" : 21 + "value" : 21, + "version" : "1.0" }, { "enumerant" : "Constant", "value" : 22, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Coherent", - "value" : 23 + "value" : 23, + "version": "1.0" }, { "enumerant" : "NonWritable", - "value" : 24 + "value" : 24, + "version": "1.0" }, { "enumerant" : "NonReadable", - "value" : 25 + "value" : 25, + "version": "1.0" }, { "enumerant" : "Uniform", "value" : 26, - "capabilities" : [ "Shader", "UniformDecoration" ] + "capabilities" : [ "Shader", "UniformDecoration" ], + "version": "1.0" }, { "enumerant" : "UniformId", @@ -12002,7 +12952,8 @@ { "enumerant" : "SaturatedConversion", "value" : 28, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Stream", @@ -12010,7 +12961,8 @@ "capabilities" : [ "GeometryStreams" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Stream Number'" } - ] + ], + "version": "1.0" }, { "enumerant" : "Location", @@ -12018,7 +12970,8 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Location'" } - ] + ], + "version": "1.0" }, { "enumerant" : "Component", @@ -12026,7 +12979,8 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Component'" } - ] + ], + "version": "1.0" }, { "enumerant" : "Index", @@ -12034,7 +12988,8 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Index'" } - ] + ], + "version": "1.0" }, { "enumerant" : "Binding", @@ -12042,7 +12997,8 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Binding Point'" } - ] + ], + "version": "1.0" }, { "enumerant" : "DescriptorSet", @@ -12050,7 +13006,8 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" } - ] + ], + "version": "1.0" }, { "enumerant" : "Offset", @@ -12058,7 +13015,8 @@ "capabilities" : [ "Shader" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Byte Offset'" } - ] + ], + "version": "1.0" }, { "enumerant" : "XfbBuffer", @@ -12066,7 +13024,8 @@ "capabilities" : [ "TransformFeedback" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" } - ] + ], + "version": "1.0" }, { "enumerant" : "XfbStride", @@ -12074,7 +13033,8 @@ "capabilities" : [ "TransformFeedback" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'XFB Stride'" } - ] + ], + "version": "1.0" }, { "enumerant" : "FuncParamAttr", @@ -12082,22 +13042,25 @@ "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" } - ] + ], + "version": "1.0" }, { "enumerant" : "FPRoundingMode", "value" : 39, "parameters" : [ { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" } - ] + ], + "version": "1.0" }, { "enumerant" : "FPFastMathMode", "value" : 40, - "capabilities" : [ "Kernel" ], + "capabilities" : [ "Kernel", "FloatControls2" ], "parameters" : [ { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" } - ] + ], + "version": "1.0" }, { "enumerant" : "LinkageAttributes", @@ -12106,12 +13069,14 @@ "parameters" : [ { "kind" : "LiteralString", "name" : "'Name'" }, { "kind" : "LinkageType", "name" : "'Linkage Type'" } - ] + ], + "version": "1.0" }, { "enumerant" : "NoContraction", "value" : 42, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "InputAttachmentIndex", @@ -12119,7 +13084,8 @@ "capabilities" : [ "InputAttachment" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Attachment Index'" } - ] + ], + "version": "1.0" }, { "enumerant" : "Alignment", @@ -12127,7 +13093,8 @@ "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Alignment'" } - ] + ], + "version": "1.0" }, { "enumerant" : "MaxByteOffset", @@ -12180,12 +13147,51 @@ "extensions" : [ "SPV_QCOM_image_processing" ], "version" : "None" }, + { + "enumerant" : "BlockMatchSamplerQCOM", + "value" : 4499, + "extensions" : [ "SPV_QCOM_image_processing2" ], + "version" : "None" + }, { "enumerant" : "ExplicitInterpAMD", "value" : 4999, "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ], "version" : "None" }, + { + "enumerant" : "NodeSharesPayloadLimitsWithAMDX", + "value" : 5019, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "parameters" : [ + { "kind" : "IdRef", "name" : "'Payload Array'" } + ], + "version" : "None" + }, + { + "enumerant" : "NodeMaxPayloadsAMDX", + "value" : 5020, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "parameters" : [ + { "kind" : "IdRef", "name" : "'Max number of payloads'" } + ], + "version" : "None" + }, + { + "enumerant" : "TrackFinishWritingAMDX", + "value" : 5078, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, + { + "enumerant" : "PayloadNodeNameAMDX", + "value" : 5091, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "parameters" : [ + { "kind" : "LiteralString", "name" : "'Node Name'" } + ], + "version" : "None" + }, { "enumerant" : "OverrideCoverageNV", "value" : 5248, @@ -12568,6 +13574,30 @@ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, + { + "enumerant" : "StridesizeINTEL", + "value" : 5883, + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Stride Size'" } + ], + "capabilities" : [ "FPGAMemoryAttributesINTEL" ], + "version" : "None" + }, + { + "enumerant" : "WordsizeINTEL", + "value" : 5884, + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Word Size'" } + ], + "capabilities" : [ "FPGAMemoryAttributesINTEL" ], + "version" : "None" + }, + { + "enumerant" : "TrueDualPortINTEL", + "value" : 5885, + "capabilities" : [ "FPGAMemoryAttributesINTEL" ], + "version" : "None" + }, { "enumerant" : "BurstCoalesceINTEL", "value" : 5899, @@ -12711,6 +13741,21 @@ "capabilities" : [ "VectorComputeINTEL" ], "version" : "None" }, + { + "enumerant" : "StallFreeINTEL", + "value" : 6151, + "capabilities" : [ "FPGAClusterAttributesV2INTEL" ], + "version" : "None" + }, + { + "enumerant" : "FPMaxErrorDecorationINTEL", + "value" : 6170, + "parameters" : [ + { "kind" : "LiteralFloat", "name" : "'Max Error'" } + ], + "capabilities" : [ "FPMaxErrorINTEL" ], + "version" : "None" + }, { "enumerant" : "LatencyControlLabelINTEL", "value" : 6172, @@ -12802,6 +13847,54 @@ "value" : 6183, "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], "version" : "None" + }, + { + "enumerant" : "HostAccessINTEL", + "value" : 6188, + "parameters": [ + { "kind" : "HostAccessQualifier", "name" : "'Access'" }, + { "kind" : "LiteralString", "name" : "'Name'" } + ], + "capabilities" : [ "GlobalVariableHostAccessINTEL" ], + "version" : "None" + }, + { + "enumerant" : "InitModeINTEL", + "value" : 6190, + "parameters": [ + { "kind" : "InitializationModeQualifier", "name" : "'Trigger'" } + ], + "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "ImplementInRegisterMapINTEL", + "value" : 6191, + "parameters": [ + { "kind" : "LiteralInteger", "name" : "Value" } + ], + "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "CacheControlLoadINTEL", + "value" : 6442, + "capabilities" : [ "CacheControlsINTEL" ], + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Cache Level'" }, + { "kind" : "LoadCacheControl", "name" : "'Cache Control'" } + ], + "version" : "None" + }, + { + "enumerant" : "CacheControlStoreINTEL", + "value" : 6443, + "capabilities" : [ "CacheControlsINTEL" ], + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Cache Level'" }, + { "kind" : "StoreCacheControl", "name" : "'Cache Control'" } + ], + "version" : "None" } ] }, @@ -12812,226 +13905,272 @@ { "enumerant" : "Position", "value" : 0, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "PointSize", "value" : 1, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "ClipDistance", "value" : 3, - "capabilities" : [ "ClipDistance" ] + "capabilities" : [ "ClipDistance" ], + "version": "1.0" }, { "enumerant" : "CullDistance", "value" : 4, - "capabilities" : [ "CullDistance" ] + "capabilities" : [ "CullDistance" ], + "version": "1.0" }, { "enumerant" : "VertexId", "value" : 5, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "InstanceId", "value" : 6, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "PrimitiveId", "value" : 7, - "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV", "MeshShadingEXT" ] + "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV", "MeshShadingEXT" ], + "version": "1.0" }, { "enumerant" : "InvocationId", "value" : 8, - "capabilities" : [ "Geometry", "Tessellation" ] + "capabilities" : [ "Geometry", "Tessellation" ], + "version": "1.0" }, { "enumerant" : "Layer", "value" : 9, - "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ] + "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ], + "version": "1.0" }, { "enumerant" : "ViewportIndex", "value" : 10, - "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ] + "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ], + "version": "1.0" }, { "enumerant" : "TessLevelOuter", "value" : 11, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "TessLevelInner", "value" : 12, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "TessCoord", "value" : 13, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "PatchVertices", "value" : 14, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "FragCoord", "value" : 15, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "PointCoord", "value" : 16, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "FrontFacing", "value" : 17, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "SampleId", "value" : 18, - "capabilities" : [ "SampleRateShading" ] + "capabilities" : [ "SampleRateShading" ], + "version": "1.0" }, { "enumerant" : "SamplePosition", "value" : 19, - "capabilities" : [ "SampleRateShading" ] + "capabilities" : [ "SampleRateShading" ], + "version": "1.0" }, { "enumerant" : "SampleMask", "value" : 20, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "FragDepth", "value" : 22, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "HelperInvocation", "value" : 23, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "NumWorkgroups", - "value" : 24 + "value" : 24, + "version" : "1.0" }, { "enumerant" : "WorkgroupSize", - "value" : 25 + "value" : 25, + "version" : "1.0" }, { "enumerant" : "WorkgroupId", - "value" : 26 + "value" : 26, + "version" : "1.0" }, { "enumerant" : "LocalInvocationId", - "value" : 27 + "value" : 27, + "version" : "1.0" }, { "enumerant" : "GlobalInvocationId", - "value" : 28 + "value" : 28, + "version" : "1.0" }, { "enumerant" : "LocalInvocationIndex", - "value" : 29 + "value" : 29, + "version" : "1.0" }, { "enumerant" : "WorkDim", "value" : 30, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "GlobalSize", "value" : 31, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "EnqueuedWorkgroupSize", "value" : 32, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "GlobalOffset", "value" : 33, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "GlobalLinearId", "value" : 34, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "SubgroupSize", "value" : 36, - "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ] + "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ], + "version": "1.0" }, { "enumerant" : "SubgroupMaxSize", "value" : 37, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "NumSubgroups", "value" : 38, - "capabilities" : [ "Kernel", "GroupNonUniform" ] + "capabilities" : [ "Kernel", "GroupNonUniform" ], + "version": "1.0" }, { "enumerant" : "NumEnqueuedSubgroups", "value" : 39, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "SubgroupId", "value" : 40, - "capabilities" : [ "Kernel", "GroupNonUniform" ] + "capabilities" : [ "Kernel", "GroupNonUniform" ], + "version": "1.0" }, { "enumerant" : "SubgroupLocalInvocationId", "value" : 41, - "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ] + "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ], + "version": "1.0" }, { "enumerant" : "VertexIndex", "value" : 42, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "InstanceIndex", "value" : 43, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "CoreIDARM", "value" : 4160, - "capabilities" : [ "CoreBuiltinsARM" ] + "capabilities" : [ "CoreBuiltinsARM" ], + "version": "1.0" }, { "enumerant" : "CoreCountARM", "value" : 4161, - "capabilities" : [ "CoreBuiltinsARM" ] + "capabilities" : [ "CoreBuiltinsARM" ], + "version": "1.0" }, { "enumerant" : "CoreMaxIDARM", "value" : 4162, - "capabilities" : [ "CoreBuiltinsARM" ] + "capabilities" : [ "CoreBuiltinsARM" ], + "version": "1.0" }, { "enumerant" : "WarpIDARM", "value" : 4163, - "capabilities" : [ "CoreBuiltinsARM" ] + "capabilities" : [ "CoreBuiltinsARM" ], + "version": "1.0" }, { "enumerant" : "WarpMaxIDARM", "value" : 4164, - "capabilities" : [ "CoreBuiltinsARM" ] + "capabilities" : [ "CoreBuiltinsARM" ], + "version": "1.0" }, { "enumerant" : "SubgroupEqMask", @@ -13196,6 +14335,18 @@ "extensions" : [ "SPV_EXT_shader_stencil_export" ], "version" : "None" }, + { + "enumerant" : "CoalescedInputCountAMDX", + "value" : 5021, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, + { + "enumerant" : "ShaderIndexAMDX", + "value" : 5073, + "capabilities" : [ "ShaderEnqueueAMDX" ], + "version" : "None" + }, { "enumerant" : "ViewportMaskNV", "value" : 5253, @@ -13566,6 +14717,18 @@ "capabilities" : [ "RayTracingPositionFetchKHR" ], "version" : "None" }, + { + "enumerant" : "HitMicroTriangleVertexPositionsNV", + "value" : 5337, + "capabilities" : [ "RayTracingDisplacementMicromapNV" ], + "version" : "None" + }, + { + "enumerant" : "HitMicroTriangleVertexBarycentricsNV", + "value" : 5344, + "capabilities" : [ "RayTracingDisplacementMicromapNV" ], + "version" : "None" + }, { "enumerant" : "IncomingRayFlagsNV", "value" : 5351, @@ -13615,6 +14778,18 @@ "extensions" : [ "SPV_NV_shader_sm_builtins" ], "version" : "None" }, + { + "enumerant" : "HitKindFrontFacingMicroTriangleNV", + "value" : 5405, + "capabilities" : [ "RayTracingDisplacementMicromapNV" ], + "version" : "None" + }, + { + "enumerant" : "HitKindBackFacingMicroTriangleNV", + "value" : 5406, + "capabilities" : [ "RayTracingDisplacementMicromapNV" ], + "version" : "None" + }, { "enumerant" : "CullMaskKHR", "value" : 6021, @@ -13630,23 +14805,28 @@ "enumerants" : [ { "enumerant" : "CrossDevice", - "value" : 0 + "value" : 0, + "version" : "1.0" }, { "enumerant" : "Device", - "value" : 1 + "value" : 1, + "version" : "1.0" }, { "enumerant" : "Workgroup", - "value" : 2 + "value" : 2, + "version" : "1.0" }, { "enumerant" : "Subgroup", - "value" : 3 + "value" : 3, + "version" : "1.0" }, { "enumerant" : "Invocation", - "value" : 4 + "value" : 4, + "version" : "1.0" }, { "enumerant" : "QueueFamily", @@ -13675,17 +14855,20 @@ { "enumerant" : "Reduce", "value" : 0, - "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ] + "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ], + "version": "1.0" }, { "enumerant" : "InclusiveScan", "value" : 1, - "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ] + "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ], + "version": "1.0" }, { "enumerant" : "ExclusiveScan", "value" : 2, - "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ] + "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ], + "version": "1.0" }, { "enumerant" : "ClusteredReduce", @@ -13723,17 +14906,20 @@ { "enumerant" : "NoWait", "value" : 0, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "WaitKernel", "value" : 1, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "WaitWorkGroup", "value" : 2, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" } ] }, @@ -13743,272 +14929,328 @@ "enumerants" : [ { "enumerant" : "Matrix", - "value" : 0 + "value" : 0, + "version" : "1.0" }, { "enumerant" : "Shader", "value" : 1, - "capabilities" : [ "Matrix" ] + "capabilities" : [ "Matrix" ], + "version": "1.0" }, { "enumerant" : "Geometry", "value" : 2, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Tessellation", "value" : 3, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Addresses", - "value" : 4 + "value" : 4, + "version" : "1.0" }, { "enumerant" : "Linkage", - "value" : 5 + "value" : 5, + "version" : "1.0" }, { "enumerant" : "Kernel", - "value" : 6 + "value" : 6, + "version" : "1.0" }, { "enumerant" : "Vector16", "value" : 7, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Float16Buffer", "value" : 8, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Float16", - "value" : 9 + "value" : 9, + "version" : "1.0" }, { "enumerant" : "Float64", - "value" : 10 + "value" : 10, + "version" : "1.0" }, { "enumerant" : "Int64", - "value" : 11 + "value" : 11, + "version" : "1.0" }, { "enumerant" : "Int64Atomics", "value" : 12, - "capabilities" : [ "Int64" ] + "capabilities" : [ "Int64" ], + "version": "1.0" }, { "enumerant" : "ImageBasic", "value" : 13, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "ImageReadWrite", "value" : 14, - "capabilities" : [ "ImageBasic" ] + "capabilities" : [ "ImageBasic" ], + "version": "1.0" }, { "enumerant" : "ImageMipmap", "value" : 15, - "capabilities" : [ "ImageBasic" ] + "capabilities" : [ "ImageBasic" ], + "version": "1.0" }, { "enumerant" : "Pipes", "value" : 17, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "Groups", "value" : 18, - "extensions" : [ "SPV_AMD_shader_ballot" ] + "extensions" : [ "SPV_AMD_shader_ballot" ], + "version": "1.0" }, { "enumerant" : "DeviceEnqueue", "value" : 19, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "LiteralSampler", "value" : 20, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version": "1.0" }, { "enumerant" : "AtomicStorage", "value" : 21, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Int16", - "value" : 22 + "value" : 22, + "version" : "1.0" }, { "enumerant" : "TessellationPointSize", "value" : 23, - "capabilities" : [ "Tessellation" ] + "capabilities" : [ "Tessellation" ], + "version": "1.0" }, { "enumerant" : "GeometryPointSize", "value" : 24, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "ImageGatherExtended", "value" : 25, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "StorageImageMultisample", "value" : 27, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "UniformBufferArrayDynamicIndexing", "value" : 28, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "SampledImageArrayDynamicIndexing", "value" : 29, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "StorageBufferArrayDynamicIndexing", "value" : 30, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "StorageImageArrayDynamicIndexing", "value" : 31, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "ClipDistance", "value" : 32, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "CullDistance", "value" : 33, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "ImageCubeArray", "value" : 34, - "capabilities" : [ "SampledCubeArray" ] + "capabilities" : [ "SampledCubeArray" ], + "version": "1.0" }, { "enumerant" : "SampleRateShading", "value" : 35, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "ImageRect", "value" : 36, - "capabilities" : [ "SampledRect" ] + "capabilities" : [ "SampledRect" ], + "version": "1.0" }, { "enumerant" : "SampledRect", "value" : 37, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "GenericPointer", "value" : 38, - "capabilities" : [ "Addresses" ] + "capabilities" : [ "Addresses" ], + "version": "1.0" }, { "enumerant" : "Int8", - "value" : 39 + "value" : 39, + "version" : "1.0" }, { "enumerant" : "InputAttachment", "value" : 40, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "SparseResidency", "value" : 41, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "MinLod", "value" : 42, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "Sampled1D", - "value" : 43 + "value" : 43, + "version" : "1.0" }, { "enumerant" : "Image1D", "value" : 44, - "capabilities" : [ "Sampled1D" ] + "capabilities" : [ "Sampled1D" ], + "version": "1.0" }, { "enumerant" : "SampledCubeArray", "value" : 45, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "SampledBuffer", - "value" : 46 + "value" : 46, + "version" : "1.0" }, { "enumerant" : "ImageBuffer", "value" : 47, - "capabilities" : [ "SampledBuffer" ] + "capabilities" : [ "SampledBuffer" ], + "version": "1.0" }, { "enumerant" : "ImageMSArray", "value" : 48, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "StorageImageExtendedFormats", "value" : 49, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "ImageQuery", "value" : 50, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "DerivativeControl", "value" : 51, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "InterpolationFunction", "value" : 52, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "TransformFeedback", "value" : 53, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "GeometryStreams", "value" : 54, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "StorageImageReadWithoutFormat", "value" : 55, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "StorageImageWriteWithoutFormat", "value" : 56, - "capabilities" : [ "Shader" ] + "capabilities" : [ "Shader" ], + "version": "1.0" }, { "enumerant" : "MultiViewport", "value" : 57, - "capabilities" : [ "Geometry" ] + "capabilities" : [ "Geometry" ], + "version": "1.0" }, { "enumerant" : "SubgroupDispatch", @@ -14093,7 +15335,8 @@ { "enumerant" : "CoreBuiltinsARM", "value" : 4165, - "extensions" : [ "SPV_ARM_core_builtins" ] + "extensions" : [ "SPV_ARM_core_builtins" ], + "version": "None" }, { "enumerant" : "TileImageColorReadAccessEXT", @@ -14150,7 +15393,7 @@ { "enumerant" : "WorkgroupMemoryExplicitLayout16BitAccessKHR", "value" : 4430, - "capabilities" : [ "Shader" ], + "capabilities" : [ "WorkgroupMemoryExplicitLayoutKHR" ], "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ], "version" : "None" }, @@ -14338,6 +15581,12 @@ "extensions" : [ "SPV_QCOM_image_processing" ], "version" : "None" }, + { + "enumerant" : "TextureBlockMatch2QCOM", + "value" : 4498, + "extensions" : [ "SPV_QCOM_image_processing2" ], + "version" : "None" + }, { "enumerant" : "Float16ImageAMD", "value" : 5008, @@ -14386,6 +15635,19 @@ "extensions" : [ "SPV_KHR_shader_clock" ], "version" : "None" }, + { + "enumerant" : "ShaderEnqueueAMDX", + "value" : 5067, + "capabilities" : [ "Shader" ], + "extensions" : [ "SPV_AMDX_shader_enqueue" ], + "version" : "None" + }, + { + "enumerant" : "QuadControlKHR", + "value" : 5087, + "extensions" : [ "SPV_KHR_quad_control" ], + "version" : "None" + }, { "enumerant" : "SampleMaskOverrideCoverageNV", "value" : 5249, @@ -14774,6 +16036,13 @@ "extensions" : [ "SPV_EXT_demote_to_helper_invocation" ], "version" : "1.6" }, + { + "enumerant" : "DisplacementMicromapNV", + "value" : 5380, + "capabilities" : [ "Shader" ], + "extensions" : [ "SPV_NV_displacement_micromap" ], + "version" : "None" + }, { "enumerant" : "RayTracingOpacityMicromapEXT", "value" : 5381, @@ -14801,6 +16070,19 @@ "extensions" : [ "SPV_KHR_ray_tracing_position_fetch" ], "version" : "None" }, + { + "enumerant" : "AtomicFloat16VectorNV", + "value" : 5404, + "extensions" : [ "SPV_NV_shader_atomic_fp16_vector" ], + "version" : "None" + }, + { + "enumerant" : "RayTracingDisplacementMicromapNV", + "value" : 5409, + "capabilities" : [ "RayTracingKHR" ], + "extensions" : [ "SPV_NV_displacement_micromap" ], + "version" : "None" + }, { "enumerant" : "SubgroupShuffleINTEL", "value" : 5568, @@ -15108,6 +16390,12 @@ "extensions" : [ "SPV_KHR_ray_cull_mask" ], "version" : "None" }, + { + "enumerant" : "CooperativeMatrixKHR", + "value" : 6022, + "extensions" : [ "SPV_KHR_cooperative_matrix" ], + "version" : "None" + }, { "enumerant" : "BitInstructions", "value" : 6025, @@ -15121,6 +16409,12 @@ "extensions" : [ "SPV_KHR_subgroup_rotate" ], "version" : "None" }, + { + "enumerant" : "FloatControls2", + "value" : 6029, + "extensions" : [ "SPV_KHR_float_controls2" ], + "version" : "None" + }, { "enumerant" : "AtomicFloat32AddEXT", "value" : 6033, @@ -15134,9 +16428,9 @@ "version" : "None" }, { - "enumerant" : "LongConstantCompositeINTEL", + "enumerant" : "LongCompositesINTEL", "value" : 6089, - "extensions" : [ "SPV_INTEL_long_constant_composite" ], + "extensions" : [ "SPV_INTEL_long_composites" ], "version" : "None" }, { @@ -15169,6 +16463,13 @@ "extensions" : [ "SPV_INTEL_split_barrier" ], "version" : "None" }, + { + "enumerant" : "FPGAClusterAttributesV2INTEL", + "value" : 6150, + "capabilities" : [ "FPGAClusterAttributesINTEL" ], + "extensions" : [ "SPV_INTEL_fpga_cluster_attributes" ], + "version" : "None" + }, { "enumerant" : "FPGAKernelAttributesv2INTEL", "value" : 6161, @@ -15176,6 +16477,12 @@ "extensions" : [ "SPV_INTEL_kernel_attributes" ], "version" : "None" }, + { + "enumerant" : "FPMaxErrorINTEL", + "value" : 6169, + "extensions" : [ "SPV_INTEL_fp_max_error" ], + "version" : "None" + }, { "enumerant" : "FPGALatencyControlINTEL", "value" : 6171, @@ -15188,11 +16495,41 @@ "extensions" : [ "SPV_INTEL_fpga_argument_interfaces" ], "version" : "None" }, + { + "enumerant" : "GlobalVariableHostAccessINTEL", + "value" : 6187, + "extensions": [ "SPV_INTEL_global_variable_host_access" ], + "version" : "None" + }, + { + "enumerant" : "GlobalVariableFPGADecorationsINTEL", + "value" : 6189, + "extensions": [ "SPV_INTEL_global_variable_fpga_decorations" ], + "version" : "None" + }, { "enumerant" : "GroupUniformArithmeticKHR", "value" : 6400, "extensions" : [ "SPV_KHR_uniform_group_instructions"], "version" : "None" + }, + { + "enumerant" : "MaskedGatherScatterINTEL", + "value" : 6427, + "extensions" : [ "SPV_INTEL_masked_gather_scatter"], + "version" : "None" + }, + { + "enumerant" : "CacheControlsINTEL", + "value" : 6441, + "extensions" : [ "SPV_INTEL_cache_controls" ], + "version" : "None" + }, + { + "enumerant" : "RegisterLimitsINTEL", + "value" : 6460, + "extensions" : [ "SPV_INTEL_maximum_registers" ], + "version" : "None" } ] }, @@ -15273,6 +16610,175 @@ } ] }, + { + "category" : "BitEnum", + "kind" : "CooperativeMatrixOperands", + "enumerants" : [ + { + "enumerant" : "NoneKHR", + "value" : "0x0000", + "version" : "None" + }, + { + "enumerant" : "MatrixASignedComponentsKHR", + "value" : "0x0001", + "version" : "None" + }, + { + "enumerant" : "MatrixBSignedComponentsKHR", + "value" : "0x0002", + "version" : "None" + }, + { + "enumerant" : "MatrixCSignedComponentsKHR", + "value" : "0x0004", + "version" : "None" + }, + { + "enumerant" : "MatrixResultSignedComponentsKHR", + "value" : "0x0008", + "version" : "None" + }, + { + "enumerant" : "SaturatingAccumulationKHR", + "value" : "0x0010", + "version" : "None" + } + ] + }, + { + "category" : "ValueEnum", + "kind" : "CooperativeMatrixLayout", + "enumerants" : [ + { + "enumerant" : "RowMajorKHR", + "value" : 0, + "version" : "None" + }, + { + "enumerant" : "ColumnMajorKHR", + "value" : 1, + "version" : "None" + } + ] + }, + { + "category" : "ValueEnum", + "kind" : "CooperativeMatrixUse", + "enumerants" : [ + { + "enumerant" : "MatrixAKHR", + "value" : 0, + "version" : "None" + }, + { + "enumerant" : "MatrixBKHR", + "value" : 1, + "version" : "None" + }, + { + "enumerant" : "MatrixAccumulatorKHR", + "value" : 2, + "version" : "None" + } + ] + }, + { + "category" : "ValueEnum", + "kind" : "InitializationModeQualifier", + "enumerants" : [ + { + "enumerant" : "InitOnDeviceReprogramINTEL", + "value" : 0, + "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "InitOnDeviceResetINTEL", + "value" : 1, + "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], + "version" : "None" + } + ] + }, + { + "category" : "ValueEnum", + "kind" : "LoadCacheControl", + "enumerants" : [ + { + "enumerant" : "UncachedINTEL", + "value" : 0, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "CachedINTEL", + "value" : 1, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "StreamingINTEL", + "value" : 2, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "InvalidateAfterReadINTEL", + "value" : 3, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "ConstCachedINTEL", + "value" : 4, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + } + ] + }, + { + "category" : "ValueEnum", + "kind" : "StoreCacheControl", + "enumerants" : [ + { + "enumerant" : "UncachedINTEL", + "value" : 0, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "WriteThroughINTEL", + "value" : 1, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "WriteBackINTEL", + "value" : 2, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + }, + { + "enumerant" : "StreamingINTEL", + "value" : 3, + "capabilities" : [ "CacheControlsINTEL" ], + "version" : "None" + } + ] + }, + { + "category" : "ValueEnum", + "kind" : "NamedMaximumNumberOfRegisters", + "enumerants" : [ + { + "enumerant" : "AutoINTEL", + "value" : 0, + "capabilities" : [ "RegisterLimitsINTEL" ], + "version" : "None" + } + ] + }, { "category" : "Id", "kind" : "IdResultType", @@ -15308,6 +16814,11 @@ "kind" : "LiteralString", "doc" : "A null-terminated stream of characters consuming an integral number of words" }, + { + "category" : "Literal", + "kind" : "LiteralFloat", + "doc" : "A float consuming one word" + }, { "category" : "Literal", "kind" : "LiteralContextDependentNumber", diff --git a/renderdoc/driver/shaders/spirv/spirv_debug.cpp b/renderdoc/driver/shaders/spirv/spirv_debug.cpp index 7e13f7099..b1350aee7 100644 --- a/renderdoc/driver/shaders/spirv/spirv_debug.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_debug.cpp @@ -3796,6 +3796,25 @@ void ThreadState::StepNext(ShaderDebugState *state, const rdcarray case Op::RayQueryGetIntersectionTriangleVertexPositionsKHR: case Op::ConvertBF16ToFINTEL: case Op::ConvertFToBF16INTEL: + case Op::TypeCooperativeMatrixKHR: + case Op::CooperativeMatrixLoadKHR: + case Op::CooperativeMatrixStoreKHR: + case Op::CooperativeMatrixMulAddKHR: + case Op::CooperativeMatrixLengthKHR: + case Op::ImageBlockMatchWindowSSDQCOM: + case Op::ImageBlockMatchWindowSADQCOM: + case Op::ImageBlockMatchGatherSSDQCOM: + case Op::ImageBlockMatchGatherSADQCOM: + case Op::FinalizeNodePayloadsAMDX: + case Op::FinishWritingNodePayloadAMDX: + case Op::InitializeNodePayloadsAMDX: + case Op::GroupNonUniformQuadAllKHR: + case Op::GroupNonUniformQuadAnyKHR: + case Op::FetchMicroTriangleVertexBarycentricNV: + case Op::FetchMicroTriangleVertexPositionNV: + case Op::CompositeConstructContinuedINTEL: + case Op::MaskedGatherINTEL: + case Op::MaskedScatterINTEL: { 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 9c9311c22..c650f4f73 100644 --- a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp @@ -721,7 +721,7 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const case Capability::FPGABufferLocationINTEL: case Capability::USMStorageClassesINTEL: case Capability::IOPipesINTEL: - case Capability::LongConstantCompositeINTEL: + case Capability::LongCompositesINTEL: case Capability::DebugInfoModuleINTEL: case Capability::BindlessTextureNV: case Capability::MemoryAccessAliasingINTEL: @@ -743,6 +743,21 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const case Capability::FPGAKernelAttributesv2INTEL: case Capability::FPGALatencyControlINTEL: case Capability::FPGAArgumentInterfacesINTEL: + case Capability::TextureBlockMatch2QCOM: + case Capability::ShaderEnqueueAMDX: + case Capability::QuadControlKHR: + case Capability::DisplacementMicromapNV: + case Capability::AtomicFloat16VectorNV: + case Capability::RayTracingDisplacementMicromapNV: + case Capability::CooperativeMatrixKHR: + case Capability::FloatControls2: + case Capability::FPGAClusterAttributesV2INTEL: + case Capability::FPMaxErrorINTEL: + case Capability::GlobalVariableFPGADecorationsINTEL: + case Capability::MaskedGatherScatterINTEL: + case Capability::CacheControlsINTEL: + case Capability::RegisterLimitsINTEL: + case Capability::GlobalVariableHostAccessINTEL: 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 f186cb1cb..d46a13b87 100644 --- a/renderdoc/driver/shaders/spirv/spirv_gen.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_gen.cpp @@ -25,7 +25,7 @@ /****************************************************************************** * Generated from Khronos SPIR-V machine-readable JSON grammar. * - * Copyright (c) 2014-2020 The Khronos Group Inc. + * Copyright (c) 2014-2024 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"), @@ -101,8 +101,9 @@ rdcstr DoStringise(const rdcspv::FPFastMathMode &el) STRINGISE_BITFIELD_CLASS_BIT(NSZ); STRINGISE_BITFIELD_CLASS_BIT(AllowRecip); STRINGISE_BITFIELD_CLASS_BIT(Fast); - STRINGISE_BITFIELD_CLASS_BIT(AllowContractFastINTEL); - STRINGISE_BITFIELD_CLASS_BIT(AllowReassocINTEL); + STRINGISE_BITFIELD_CLASS_BIT(AllowContract); + STRINGISE_BITFIELD_CLASS_BIT(AllowReassoc); + STRINGISE_BITFIELD_CLASS_BIT(AllowTransform); } END_BITFIELD_STRINGISE(); } @@ -226,7 +227,8 @@ rdcstr DoStringise(const rdcspv::RayFlags &el) { BEGIN_BITFIELD_STRINGISE(rdcspv::RayFlags); { - STRINGISE_BITFIELD_CLASS_BIT(NoneKHR); + STRINGISE_BITFIELD_CLASS_VALUE(NoneKHR); + STRINGISE_BITFIELD_CLASS_BIT(OpaqueKHR); STRINGISE_BITFIELD_CLASS_BIT(NoOpaqueKHR); STRINGISE_BITFIELD_CLASS_BIT(TerminateOnFirstHitKHR); @@ -269,6 +271,10 @@ rdcstr DoStringise(const rdcspv::SourceLanguage &el) STRINGISE_ENUM_CLASS(CPP_for_OpenCL); STRINGISE_ENUM_CLASS(SYCL); STRINGISE_ENUM_CLASS(HERO_C); + STRINGISE_ENUM_CLASS(NZSL); + STRINGISE_ENUM_CLASS(WGSL); + STRINGISE_ENUM_CLASS(Slang); + STRINGISE_ENUM_CLASS(Zig); } END_ENUM_STRINGISE(); } @@ -378,12 +384,19 @@ rdcstr DoStringise(const rdcspv::ExecutionMode &el) STRINGISE_ENUM_CLASS(RoundingModeRTZ); STRINGISE_ENUM_CLASS(EarlyAndLateFragmentTestsAMD); STRINGISE_ENUM_CLASS(StencilRefReplacingEXT); + STRINGISE_ENUM_CLASS(CoalescingAMDX); + STRINGISE_ENUM_CLASS(MaxNodeRecursionAMDX); + STRINGISE_ENUM_CLASS(StaticNumWorkgroupsAMDX); + STRINGISE_ENUM_CLASS(ShaderIndexAMDX); + STRINGISE_ENUM_CLASS(MaxNumWorkgroupsAMDX); STRINGISE_ENUM_CLASS(StencilRefUnchangedFrontAMD); STRINGISE_ENUM_CLASS(StencilRefGreaterFrontAMD); STRINGISE_ENUM_CLASS(StencilRefLessFrontAMD); STRINGISE_ENUM_CLASS(StencilRefUnchangedBackAMD); STRINGISE_ENUM_CLASS(StencilRefGreaterBackAMD); STRINGISE_ENUM_CLASS(StencilRefLessBackAMD); + STRINGISE_ENUM_CLASS(QuadDerivativesKHR); + STRINGISE_ENUM_CLASS(RequireFullQuadsKHR); STRINGISE_ENUM_CLASS(OutputLinesEXT); STRINGISE_ENUM_CLASS(OutputPrimitivesEXT); STRINGISE_ENUM_CLASS(DerivativeGroupQuadsNV); @@ -405,9 +418,14 @@ rdcstr DoStringise(const rdcspv::ExecutionMode &el) STRINGISE_ENUM_CLASS(NoGlobalOffsetINTEL); STRINGISE_ENUM_CLASS(NumSIMDWorkitemsINTEL); STRINGISE_ENUM_CLASS(SchedulerTargetFmaxMhzINTEL); + STRINGISE_ENUM_CLASS(MaximallyReconvergesKHR); + STRINGISE_ENUM_CLASS(FPFastMathDefault); STRINGISE_ENUM_CLASS(StreamingInterfaceINTEL); STRINGISE_ENUM_CLASS(RegisterMapInterfaceINTEL); STRINGISE_ENUM_CLASS(NamedBarrierCountINTEL); + STRINGISE_ENUM_CLASS(MaximumRegistersINTEL); + STRINGISE_ENUM_CLASS(MaximumRegistersIdINTEL); + STRINGISE_ENUM_CLASS(NamedMaximumRegistersINTEL); } END_ENUM_STRINGISE(); } @@ -431,6 +449,8 @@ rdcstr DoStringise(const rdcspv::StorageClass &el) STRINGISE_ENUM_CLASS(Image); STRINGISE_ENUM_CLASS(StorageBuffer); STRINGISE_ENUM_CLASS(TileImageEXT); + STRINGISE_ENUM_CLASS(NodePayloadAMDX); + STRINGISE_ENUM_CLASS(NodeOutputPayloadAMDX); STRINGISE_ENUM_CLASS(CallableDataKHR); STRINGISE_ENUM_CLASS(IncomingCallableDataKHR); STRINGISE_ENUM_CLASS(RayPayloadKHR); @@ -591,6 +611,8 @@ rdcstr DoStringise(const rdcspv::ImageChannelDataType &el) STRINGISE_ENUM_CLASS(Float); STRINGISE_ENUM_CLASS(UnormInt24); STRINGISE_ENUM_CLASS(UnormInt101010_2); + STRINGISE_ENUM_CLASS(UnsignedIntRaw10EXT); + STRINGISE_ENUM_CLASS(UnsignedIntRaw12EXT); } END_ENUM_STRINGISE(); } @@ -684,6 +706,19 @@ rdcstr DoStringise(const rdcspv::AccessQualifier &el) END_ENUM_STRINGISE(); } +template <> +rdcstr DoStringise(const rdcspv::HostAccessQualifier &el) +{ + BEGIN_ENUM_STRINGISE(rdcspv::HostAccessQualifier); + { + STRINGISE_ENUM_CLASS(NoneINTEL); + STRINGISE_ENUM_CLASS(ReadINTEL); + STRINGISE_ENUM_CLASS(WriteINTEL); + STRINGISE_ENUM_CLASS(ReadWriteINTEL); + } + END_ENUM_STRINGISE(); +} + template <> rdcstr DoStringise(const rdcspv::FunctionParameterAttribute &el) { @@ -758,7 +793,12 @@ rdcstr DoStringise(const rdcspv::Decoration &el) STRINGISE_ENUM_CLASS(NoUnsignedWrap); STRINGISE_ENUM_CLASS(WeightTextureQCOM); STRINGISE_ENUM_CLASS(BlockMatchTextureQCOM); + STRINGISE_ENUM_CLASS(BlockMatchSamplerQCOM); STRINGISE_ENUM_CLASS(ExplicitInterpAMD); + STRINGISE_ENUM_CLASS(NodeSharesPayloadLimitsWithAMDX); + STRINGISE_ENUM_CLASS(NodeMaxPayloadsAMDX); + STRINGISE_ENUM_CLASS(TrackFinishWritingAMDX); + STRINGISE_ENUM_CLASS(PayloadNodeNameAMDX); STRINGISE_ENUM_CLASS(OverrideCoverageNV); STRINGISE_ENUM_CLASS(PassthroughNV); STRINGISE_ENUM_CLASS(ViewportRelativeNV); @@ -801,6 +841,9 @@ rdcstr DoStringise(const rdcspv::Decoration &el) STRINGISE_ENUM_CLASS(MergeINTEL); STRINGISE_ENUM_CLASS(BankBitsINTEL); STRINGISE_ENUM_CLASS(ForcePow2DepthINTEL); + STRINGISE_ENUM_CLASS(StridesizeINTEL); + STRINGISE_ENUM_CLASS(WordsizeINTEL); + STRINGISE_ENUM_CLASS(TrueDualPortINTEL); STRINGISE_ENUM_CLASS(BurstCoalesceINTEL); STRINGISE_ENUM_CLASS(CacheSizeINTEL); STRINGISE_ENUM_CLASS(DontStaticallyCoalesceINTEL); @@ -819,6 +862,8 @@ rdcstr DoStringise(const rdcspv::Decoration &el) STRINGISE_ENUM_CLASS(SingleElementVectorINTEL); STRINGISE_ENUM_CLASS(VectorComputeCallableFunctionINTEL); STRINGISE_ENUM_CLASS(MediaBlockIOINTEL); + STRINGISE_ENUM_CLASS(StallFreeINTEL); + STRINGISE_ENUM_CLASS(FPMaxErrorDecorationINTEL); STRINGISE_ENUM_CLASS(LatencyControlLabelINTEL); STRINGISE_ENUM_CLASS(LatencyControlConstraintINTEL); STRINGISE_ENUM_CLASS(ConduitKernelArgumentINTEL); @@ -830,6 +875,11 @@ rdcstr DoStringise(const rdcspv::Decoration &el) STRINGISE_ENUM_CLASS(MMHostInterfaceMaxBurstINTEL); STRINGISE_ENUM_CLASS(MMHostInterfaceWaitRequestINTEL); STRINGISE_ENUM_CLASS(StableKernelArgumentINTEL); + STRINGISE_ENUM_CLASS(HostAccessINTEL); + STRINGISE_ENUM_CLASS(InitModeINTEL); + STRINGISE_ENUM_CLASS(ImplementInRegisterMapINTEL); + STRINGISE_ENUM_CLASS(CacheControlLoadINTEL); + STRINGISE_ENUM_CLASS(CacheControlStoreINTEL); } END_ENUM_STRINGISE(); } @@ -904,6 +954,8 @@ rdcstr DoStringise(const rdcspv::BuiltIn &el) STRINGISE_ENUM_CLASS(BaryCoordSmoothSampleAMD); STRINGISE_ENUM_CLASS(BaryCoordPullModelAMD); STRINGISE_ENUM_CLASS(FragStencilRefEXT); + STRINGISE_ENUM_CLASS(CoalescedInputCountAMDX); + STRINGISE_ENUM_CLASS(ShaderIndexAMDX); STRINGISE_ENUM_CLASS(ViewportMaskNV); STRINGISE_ENUM_CLASS(SecondaryPositionNV); STRINGISE_ENUM_CLASS(SecondaryViewportMaskNV); @@ -941,12 +993,16 @@ rdcstr DoStringise(const rdcspv::BuiltIn &el) STRINGISE_ENUM_CLASS(HitKindKHR); STRINGISE_ENUM_CLASS(CurrentRayTimeNV); STRINGISE_ENUM_CLASS(HitTriangleVertexPositionsKHR); + STRINGISE_ENUM_CLASS(HitMicroTriangleVertexPositionsNV); + STRINGISE_ENUM_CLASS(HitMicroTriangleVertexBarycentricsNV); STRINGISE_ENUM_CLASS(IncomingRayFlagsKHR); STRINGISE_ENUM_CLASS(RayGeometryIndexKHR); STRINGISE_ENUM_CLASS(WarpsPerSMNV); STRINGISE_ENUM_CLASS(SMCountNV); STRINGISE_ENUM_CLASS(WarpIDNV); STRINGISE_ENUM_CLASS(SMIDNV); + STRINGISE_ENUM_CLASS(HitKindFrontFacingMicroTriangleNV); + STRINGISE_ENUM_CLASS(HitKindBackFacingMicroTriangleNV); STRINGISE_ENUM_CLASS(CullMaskKHR); } END_ENUM_STRINGISE(); @@ -1107,6 +1163,7 @@ rdcstr DoStringise(const rdcspv::Capability &el) STRINGISE_ENUM_CLASS(TextureSampleWeightedQCOM); STRINGISE_ENUM_CLASS(TextureBoxFilterQCOM); STRINGISE_ENUM_CLASS(TextureBlockMatchQCOM); + STRINGISE_ENUM_CLASS(TextureBlockMatch2QCOM); STRINGISE_ENUM_CLASS(Float16ImageAMD); STRINGISE_ENUM_CLASS(ImageGatherBiasLodAMD); STRINGISE_ENUM_CLASS(FragmentMaskAMD); @@ -1114,6 +1171,8 @@ rdcstr DoStringise(const rdcspv::Capability &el) STRINGISE_ENUM_CLASS(ImageReadWriteLodAMD); STRINGISE_ENUM_CLASS(Int64ImageEXT); STRINGISE_ENUM_CLASS(ShaderClockKHR); + STRINGISE_ENUM_CLASS(ShaderEnqueueAMDX); + STRINGISE_ENUM_CLASS(QuadControlKHR); STRINGISE_ENUM_CLASS(SampleMaskOverrideCoverageNV); STRINGISE_ENUM_CLASS(GeometryShaderPassthroughNV); STRINGISE_ENUM_CLASS(ShaderViewportIndexLayerEXT); @@ -1146,16 +1205,18 @@ rdcstr DoStringise(const rdcspv::Capability &el) STRINGISE_ENUM_CLASS(PhysicalStorageBufferAddresses); STRINGISE_ENUM_CLASS(ComputeDerivativeGroupLinearNV); STRINGISE_ENUM_CLASS(RayTracingProvisionalKHR); - STRINGISE_ENUM_CLASS(CooperativeMatrixNV); STRINGISE_ENUM_CLASS(FragmentShaderSampleInterlockEXT); STRINGISE_ENUM_CLASS(FragmentShaderShadingRateInterlockEXT); STRINGISE_ENUM_CLASS(ShaderSMBuiltinsNV); STRINGISE_ENUM_CLASS(FragmentShaderPixelInterlockEXT); STRINGISE_ENUM_CLASS(DemoteToHelperInvocation); + STRINGISE_ENUM_CLASS(DisplacementMicromapNV); STRINGISE_ENUM_CLASS(RayTracingOpacityMicromapEXT); STRINGISE_ENUM_CLASS(ShaderInvocationReorderNV); STRINGISE_ENUM_CLASS(BindlessTextureNV); STRINGISE_ENUM_CLASS(RayQueryPositionFetchKHR); + STRINGISE_ENUM_CLASS(AtomicFloat16VectorNV); + STRINGISE_ENUM_CLASS(RayTracingDisplacementMicromapNV); STRINGISE_ENUM_CLASS(SubgroupShuffleINTEL); STRINGISE_ENUM_CLASS(SubgroupBufferBlockIOINTEL); STRINGISE_ENUM_CLASS(SubgroupImageBlockIOINTEL); @@ -1203,20 +1264,29 @@ rdcstr DoStringise(const rdcspv::Capability &el) STRINGISE_ENUM_CLASS(DotProductInput4x8BitPacked); STRINGISE_ENUM_CLASS(DotProduct); STRINGISE_ENUM_CLASS(RayCullMaskKHR); + STRINGISE_ENUM_CLASS(CooperativeMatrixKHR); STRINGISE_ENUM_CLASS(BitInstructions); STRINGISE_ENUM_CLASS(GroupNonUniformRotateKHR); + STRINGISE_ENUM_CLASS(FloatControls2); STRINGISE_ENUM_CLASS(AtomicFloat32AddEXT); STRINGISE_ENUM_CLASS(AtomicFloat64AddEXT); - STRINGISE_ENUM_CLASS(LongConstantCompositeINTEL); + STRINGISE_ENUM_CLASS(LongCompositesINTEL); STRINGISE_ENUM_CLASS(OptNoneINTEL); STRINGISE_ENUM_CLASS(AtomicFloat16AddEXT); STRINGISE_ENUM_CLASS(DebugInfoModuleINTEL); STRINGISE_ENUM_CLASS(BFloat16ConversionINTEL); STRINGISE_ENUM_CLASS(SplitBarrierINTEL); + STRINGISE_ENUM_CLASS(FPGAClusterAttributesV2INTEL); STRINGISE_ENUM_CLASS(FPGAKernelAttributesv2INTEL); + STRINGISE_ENUM_CLASS(FPMaxErrorINTEL); STRINGISE_ENUM_CLASS(FPGALatencyControlINTEL); STRINGISE_ENUM_CLASS(FPGAArgumentInterfacesINTEL); + STRINGISE_ENUM_CLASS(GlobalVariableHostAccessINTEL); + STRINGISE_ENUM_CLASS(GlobalVariableFPGADecorationsINTEL); STRINGISE_ENUM_CLASS(GroupUniformArithmeticKHR); + STRINGISE_ENUM_CLASS(MaskedGatherScatterINTEL); + STRINGISE_ENUM_CLASS(CacheControlsINTEL); + STRINGISE_ENUM_CLASS(RegisterLimitsINTEL); } END_ENUM_STRINGISE(); } @@ -1265,6 +1335,93 @@ rdcstr DoStringise(const rdcspv::PackedVectorFormat &el) END_ENUM_STRINGISE(); } +template <> +rdcstr DoStringise(const rdcspv::CooperativeMatrixOperands &el) +{ + BEGIN_BITFIELD_STRINGISE(rdcspv::CooperativeMatrixOperands); + { + STRINGISE_BITFIELD_CLASS_VALUE(NoneKHR); + + STRINGISE_BITFIELD_CLASS_BIT(MatrixASignedComponentsKHR); + STRINGISE_BITFIELD_CLASS_BIT(MatrixBSignedComponentsKHR); + STRINGISE_BITFIELD_CLASS_BIT(MatrixCSignedComponentsKHR); + STRINGISE_BITFIELD_CLASS_BIT(MatrixResultSignedComponentsKHR); + STRINGISE_BITFIELD_CLASS_BIT(SaturatingAccumulationKHR); + } + END_BITFIELD_STRINGISE(); +} + +template <> +rdcstr DoStringise(const rdcspv::CooperativeMatrixLayout &el) +{ + BEGIN_ENUM_STRINGISE(rdcspv::CooperativeMatrixLayout); + { + STRINGISE_ENUM_CLASS(RowMajorKHR); + STRINGISE_ENUM_CLASS(ColumnMajorKHR); + } + END_ENUM_STRINGISE(); +} + +template <> +rdcstr DoStringise(const rdcspv::CooperativeMatrixUse &el) +{ + BEGIN_ENUM_STRINGISE(rdcspv::CooperativeMatrixUse); + { + STRINGISE_ENUM_CLASS(MatrixAKHR); + STRINGISE_ENUM_CLASS(MatrixBKHR); + STRINGISE_ENUM_CLASS(MatrixAccumulatorKHR); + } + END_ENUM_STRINGISE(); +} + +template <> +rdcstr DoStringise(const rdcspv::InitializationModeQualifier &el) +{ + BEGIN_ENUM_STRINGISE(rdcspv::InitializationModeQualifier); + { + STRINGISE_ENUM_CLASS(InitOnDeviceReprogramINTEL); + STRINGISE_ENUM_CLASS(InitOnDeviceResetINTEL); + } + END_ENUM_STRINGISE(); +} + +template <> +rdcstr DoStringise(const rdcspv::LoadCacheControl &el) +{ + BEGIN_ENUM_STRINGISE(rdcspv::LoadCacheControl); + { + STRINGISE_ENUM_CLASS(UncachedINTEL); + STRINGISE_ENUM_CLASS(CachedINTEL); + STRINGISE_ENUM_CLASS(StreamingINTEL); + STRINGISE_ENUM_CLASS(InvalidateAfterReadINTEL); + STRINGISE_ENUM_CLASS(ConstCachedINTEL); + } + END_ENUM_STRINGISE(); +} + +template <> +rdcstr DoStringise(const rdcspv::StoreCacheControl &el) +{ + BEGIN_ENUM_STRINGISE(rdcspv::StoreCacheControl); + { + STRINGISE_ENUM_CLASS(UncachedINTEL); + STRINGISE_ENUM_CLASS(WriteThroughINTEL); + STRINGISE_ENUM_CLASS(WriteBackINTEL); + STRINGISE_ENUM_CLASS(StreamingINTEL); + } + END_ENUM_STRINGISE(); +} + +template <> +rdcstr DoStringise(const rdcspv::NamedMaximumNumberOfRegisters &el) +{ + BEGIN_ENUM_STRINGISE(rdcspv::NamedMaximumNumberOfRegisters); + { + STRINGISE_ENUM_CLASS(AutoINTEL); + } + END_ENUM_STRINGISE(); +} + template <> rdcstr DoStringise(const rdcspv::Op &el) { @@ -1636,6 +1793,11 @@ rdcstr DoStringise(const rdcspv::Op &el) STRINGISE_ENUM_CLASS(SDotAccSat); STRINGISE_ENUM_CLASS(UDotAccSat); STRINGISE_ENUM_CLASS(SUDotAccSat); + STRINGISE_ENUM_CLASS(TypeCooperativeMatrixKHR); + STRINGISE_ENUM_CLASS(CooperativeMatrixLoadKHR); + STRINGISE_ENUM_CLASS(CooperativeMatrixStoreKHR); + STRINGISE_ENUM_CLASS(CooperativeMatrixMulAddKHR); + STRINGISE_ENUM_CLASS(CooperativeMatrixLengthKHR); STRINGISE_ENUM_CLASS(TypeRayQueryKHR); STRINGISE_ENUM_CLASS(RayQueryInitializeKHR); STRINGISE_ENUM_CLASS(RayQueryTerminateKHR); @@ -1647,6 +1809,10 @@ rdcstr DoStringise(const rdcspv::Op &el) STRINGISE_ENUM_CLASS(ImageBoxFilterQCOM); STRINGISE_ENUM_CLASS(ImageBlockMatchSSDQCOM); STRINGISE_ENUM_CLASS(ImageBlockMatchSADQCOM); + STRINGISE_ENUM_CLASS(ImageBlockMatchWindowSSDQCOM); + STRINGISE_ENUM_CLASS(ImageBlockMatchWindowSADQCOM); + STRINGISE_ENUM_CLASS(ImageBlockMatchGatherSSDQCOM); + STRINGISE_ENUM_CLASS(ImageBlockMatchGatherSADQCOM); STRINGISE_ENUM_CLASS(GroupIAddNonUniformAMD); STRINGISE_ENUM_CLASS(GroupFAddNonUniformAMD); STRINGISE_ENUM_CLASS(GroupFMinNonUniformAMD); @@ -1658,6 +1824,11 @@ rdcstr DoStringise(const rdcspv::Op &el) STRINGISE_ENUM_CLASS(FragmentMaskFetchAMD); STRINGISE_ENUM_CLASS(FragmentFetchAMD); STRINGISE_ENUM_CLASS(ReadClockKHR); + STRINGISE_ENUM_CLASS(FinalizeNodePayloadsAMDX); + STRINGISE_ENUM_CLASS(FinishWritingNodePayloadAMDX); + STRINGISE_ENUM_CLASS(InitializeNodePayloadsAMDX); + STRINGISE_ENUM_CLASS(GroupNonUniformQuadAllKHR); + STRINGISE_ENUM_CLASS(GroupNonUniformQuadAnyKHR); STRINGISE_ENUM_CLASS(HitObjectRecordHitMotionNV); STRINGISE_ENUM_CLASS(HitObjectRecordHitWithIndexMotionNV); STRINGISE_ENUM_CLASS(HitObjectRecordMissMotionNV); @@ -1696,6 +1867,8 @@ rdcstr DoStringise(const rdcspv::Op &el) STRINGISE_ENUM_CLASS(SetMeshOutputsEXT); STRINGISE_ENUM_CLASS(GroupNonUniformPartitionNV); STRINGISE_ENUM_CLASS(WritePackedPrimitiveIndices4x8NV); + STRINGISE_ENUM_CLASS(FetchMicroTriangleVertexPositionNV); + STRINGISE_ENUM_CLASS(FetchMicroTriangleVertexBarycentricNV); STRINGISE_ENUM_CLASS(ReportIntersectionNV); STRINGISE_ENUM_CLASS(IgnoreIntersectionNV); STRINGISE_ENUM_CLASS(TerminateRayNV); @@ -1777,6 +1950,7 @@ rdcstr DoStringise(const rdcspv::Op &el) STRINGISE_ENUM_CLASS(TypeStructContinuedINTEL); STRINGISE_ENUM_CLASS(ConstantCompositeContinuedINTEL); STRINGISE_ENUM_CLASS(SpecConstantCompositeContinuedINTEL); + STRINGISE_ENUM_CLASS(CompositeConstructContinuedINTEL); STRINGISE_ENUM_CLASS(ConvertFToBF16INTEL); STRINGISE_ENUM_CLASS(ConvertBF16ToFINTEL); STRINGISE_ENUM_CLASS(ControlBarrierArriveINTEL); @@ -1789,6 +1963,8 @@ rdcstr DoStringise(const rdcspv::Op &el) STRINGISE_ENUM_CLASS(GroupLogicalAndKHR); STRINGISE_ENUM_CLASS(GroupLogicalOrKHR); STRINGISE_ENUM_CLASS(GroupLogicalXorKHR); + STRINGISE_ENUM_CLASS(MaskedGatherINTEL); + STRINGISE_ENUM_CLASS(MaskedScatterINTEL); } END_ENUM_STRINGISE(); } @@ -1988,6 +2164,14 @@ rdcstr ParamToStr(const std::function &idName, const rdcspv: ret += "(" + ToStr(el.roundingModeRTE) + ")"; break; case ExecutionMode::RoundingModeRTZ: ret += "(" + ToStr(el.roundingModeRTZ) + ")"; break; + case ExecutionMode::MaxNodeRecursionAMDX: + ret += "(" + idName(el.maxNodeRecursionAMDX) + ")"; break; + case ExecutionMode::StaticNumWorkgroupsAMDX: + ret += "(" + idName(el.staticNumWorkgroupsAMDX.xsize) + ", " + idName(el.staticNumWorkgroupsAMDX.ysize) + ", " + idName(el.staticNumWorkgroupsAMDX.zsize) + ")"; break; + case ExecutionMode::ShaderIndexAMDX: + ret += "(" + idName(el.shaderIndexAMDX) + ")"; break; + case ExecutionMode::MaxNumWorkgroupsAMDX: + ret += "(" + idName(el.maxNumWorkgroupsAMDX.xsize) + ", " + idName(el.maxNumWorkgroupsAMDX.ysize) + ", " + idName(el.maxNumWorkgroupsAMDX.zsize) + ")"; break; case ExecutionMode::OutputPrimitivesNV: ret += "(" + ToStr(el.outputPrimitivesNV) + ")"; break; case ExecutionMode::SharedLocalMemorySizeINTEL: @@ -2008,12 +2192,20 @@ rdcstr ParamToStr(const std::function &idName, const rdcspv: ret += "(" + ToStr(el.numSIMDWorkitemsINTEL) + ")"; break; case ExecutionMode::SchedulerTargetFmaxMhzINTEL: ret += "(" + ToStr(el.schedulerTargetFmaxMhzINTEL) + ")"; break; + case ExecutionMode::FPFastMathDefault: + ret += "(" + idName(el.fPFastMathDefault.targetType) + ", " + idName(el.fPFastMathDefault.fastMathMode) + ")"; break; case ExecutionMode::StreamingInterfaceINTEL: ret += "(" + ToStr(el.streamingInterfaceINTEL) + ")"; break; case ExecutionMode::RegisterMapInterfaceINTEL: ret += "(" + ToStr(el.registerMapInterfaceINTEL) + ")"; break; case ExecutionMode::NamedBarrierCountINTEL: ret += "(" + ToStr(el.namedBarrierCountINTEL) + ")"; break; + case ExecutionMode::MaximumRegistersINTEL: + ret += "(" + ToStr(el.maximumRegistersINTEL) + ")"; break; + case ExecutionMode::MaximumRegistersIdINTEL: + ret += "(" + idName(el.maximumRegistersIdINTEL) + ")"; break; + case ExecutionMode::NamedMaximumRegistersINTEL: + ret += "(" + ToStr(el.namedMaximumRegistersINTEL) + ")"; break; default: break; } @@ -2072,6 +2264,10 @@ rdcstr ParamToStr(const std::function &idName, const rdcspv: ret += "(" + idName(el.alignmentId) + ")"; break; case Decoration::MaxByteOffsetId: ret += "(" + idName(el.maxByteOffsetId) + ")"; break; + case Decoration::NodeSharesPayloadLimitsWithAMDX: + ret += "(" + idName(el.nodeSharesPayloadLimitsWithAMDX) + ")"; break; + case Decoration::NodeMaxPayloadsAMDX: + ret += "(" + idName(el.nodeMaxPayloadsAMDX) + ")"; break; case Decoration::SecondaryViewportRelativeNV: ret += "(" + ToStr(el.secondaryViewportRelativeNV) + ")"; break; case Decoration::SIMTCallINTEL: @@ -2098,6 +2294,10 @@ rdcstr ParamToStr(const std::function &idName, const rdcspv: ret += "(" + ToStr(el.bankBitsINTEL) + ")"; break; case Decoration::ForcePow2DepthINTEL: ret += "(" + ToStr(el.forcePow2DepthINTEL) + ")"; break; + case Decoration::StridesizeINTEL: + ret += "(" + ToStr(el.stridesizeINTEL) + ")"; break; + case Decoration::WordsizeINTEL: + ret += "(" + ToStr(el.wordsizeINTEL) + ")"; break; case Decoration::CacheSizeINTEL: ret += "(" + ToStr(el.cacheSizeINTEL) + ")"; break; case Decoration::PrefetchINTEL: @@ -2120,6 +2320,8 @@ rdcstr ParamToStr(const std::function &idName, const rdcspv: ret += "(" + ToStr(el.iOPipeStorageINTEL) + ")"; break; case Decoration::FunctionFloatingPointModeINTEL: ret += "(" + ToStr(el.functionFloatingPointModeINTEL.targetWidth) + ", " + ToStr(el.functionFloatingPointModeINTEL.fPOperationMode) + ")"; break; + case Decoration::FPMaxErrorDecorationINTEL: + ret += "(" + ToStr(el.fPMaxErrorDecorationINTEL) + ")"; break; case Decoration::LatencyControlLabelINTEL: ret += "(" + ToStr(el.latencyControlLabelINTEL) + ")"; break; case Decoration::LatencyControlConstraintINTEL: @@ -2136,6 +2338,14 @@ rdcstr ParamToStr(const std::function &idName, const rdcspv: ret += "(" + ToStr(el.mMHostInterfaceMaxBurstINTEL) + ")"; break; case Decoration::MMHostInterfaceWaitRequestINTEL: ret += "(" + ToStr(el.mMHostInterfaceWaitRequestINTEL) + ")"; break; + case Decoration::InitModeINTEL: + ret += "(" + ToStr(el.initModeINTEL) + ")"; break; + case Decoration::ImplementInRegisterMapINTEL: + ret += "(" + ToStr(el.implementInRegisterMapINTEL) + ")"; break; + case Decoration::CacheControlLoadINTEL: + ret += "(" + ToStr(el.cacheControlLoadINTEL.cacheLevel) + ", " + ToStr(el.cacheControlLoadINTEL.cacheControl) + ")"; break; + case Decoration::CacheControlStoreINTEL: + ret += "(" + ToStr(el.cacheControlStoreINTEL.cacheLevel) + ", " + ToStr(el.cacheControlStoreINTEL.cacheControl) + ")"; break; default: break; } @@ -4163,6 +4373,39 @@ void OpDecoder::ForEachID(const ConstIter &it, const std::function inline LoopControlAndParamDatas DecodeParam(const ConstIter &it, uint32_t &word) { @@ -474,6 +478,10 @@ inline uint16_t ExtraWordCount(const LoopControl loopControl) return 0; } +inline uint16_t OptionalWordCount(const FunctionControl val) { return val != FunctionControl::None ? 1 : 0; } + +inline uint16_t OptionalWordCount(const MemorySemantics val) { return val != MemorySemantics::None ? 1 : 0; } + template<> inline MemoryAccessAndParamDatas DecodeParam(const ConstIter &it, uint32_t &word) { @@ -548,6 +556,10 @@ inline uint16_t ExtraWordCount(const MemoryAccess memoryAccess) return 0; } +inline uint16_t OptionalWordCount(const KernelProfilingInfo val) { return val != KernelProfilingInfo::None ? 1 : 0; } + +inline uint16_t OptionalWordCount(const RayFlags val) { return val != RayFlags::NoneKHR ? 1 : 0; } + inline uint16_t OptionalWordCount(const SourceLanguage val) { return val != SourceLanguage::Invalid ? 1 : 0; } inline uint16_t OptionalWordCount(const ExecutionModel val) { return val != ExecutionModel::Invalid ? 1 : 0; } @@ -761,6 +773,62 @@ struct ExecutionModeParam } }; +template<> +struct ExecutionModeParam +{ + Id maxNodeRecursionAMDX; + ExecutionModeParam(Id maxNodeRecursionAMDXParam) { maxNodeRecursionAMDX = maxNodeRecursionAMDXParam; } + operator ExecutionModeAndParamData() + { + ExecutionModeAndParamData ret(ExecutionMode::MaxNodeRecursionAMDX); + ret.maxNodeRecursionAMDX = maxNodeRecursionAMDX; + return ret; + } +}; + +template<> +struct ExecutionModeParam +{ + StaticNumWorkgroupsAMDXParams staticNumWorkgroupsAMDX; + ExecutionModeParam(Id xsize, Id ysize, Id zsize) { staticNumWorkgroupsAMDX.xsize = xsize; staticNumWorkgroupsAMDX.ysize = ysize; staticNumWorkgroupsAMDX.zsize = zsize; } + operator ExecutionModeAndParamData() + { + ExecutionModeAndParamData ret(ExecutionMode::StaticNumWorkgroupsAMDX); + ret.staticNumWorkgroupsAMDX.xsize = staticNumWorkgroupsAMDX.xsize; + ret.staticNumWorkgroupsAMDX.ysize = staticNumWorkgroupsAMDX.ysize; + ret.staticNumWorkgroupsAMDX.zsize = staticNumWorkgroupsAMDX.zsize; + return ret; + } +}; + +template<> +struct ExecutionModeParam +{ + Id shaderIndexAMDX; + ExecutionModeParam(Id shaderIndexAMDXParam) { shaderIndexAMDX = shaderIndexAMDXParam; } + operator ExecutionModeAndParamData() + { + ExecutionModeAndParamData ret(ExecutionMode::ShaderIndexAMDX); + ret.shaderIndexAMDX = shaderIndexAMDX; + return ret; + } +}; + +template<> +struct ExecutionModeParam +{ + MaxNumWorkgroupsAMDXParams maxNumWorkgroupsAMDX; + ExecutionModeParam(Id xsize, Id ysize, Id zsize) { maxNumWorkgroupsAMDX.xsize = xsize; maxNumWorkgroupsAMDX.ysize = ysize; maxNumWorkgroupsAMDX.zsize = zsize; } + operator ExecutionModeAndParamData() + { + ExecutionModeAndParamData ret(ExecutionMode::MaxNumWorkgroupsAMDX); + ret.maxNumWorkgroupsAMDX.xsize = maxNumWorkgroupsAMDX.xsize; + ret.maxNumWorkgroupsAMDX.ysize = maxNumWorkgroupsAMDX.ysize; + ret.maxNumWorkgroupsAMDX.zsize = maxNumWorkgroupsAMDX.zsize; + return ret; + } +}; + template<> struct ExecutionModeParam { @@ -893,6 +961,20 @@ struct ExecutionModeParam } }; +template<> +struct ExecutionModeParam +{ + FPFastMathDefaultParams fPFastMathDefault; + ExecutionModeParam(Id targetType, Id fastMathMode) { fPFastMathDefault.targetType = targetType; fPFastMathDefault.fastMathMode = fastMathMode; } + operator ExecutionModeAndParamData() + { + ExecutionModeAndParamData ret(ExecutionMode::FPFastMathDefault); + ret.fPFastMathDefault.targetType = fPFastMathDefault.targetType; + ret.fPFastMathDefault.fastMathMode = fPFastMathDefault.fastMathMode; + return ret; + } +}; + template<> struct ExecutionModeParam { @@ -932,6 +1014,45 @@ struct ExecutionModeParam } }; +template<> +struct ExecutionModeParam +{ + uint32_t maximumRegistersINTEL; + ExecutionModeParam(uint32_t maximumRegistersINTELParam) { maximumRegistersINTEL = maximumRegistersINTELParam; } + operator ExecutionModeAndParamData() + { + ExecutionModeAndParamData ret(ExecutionMode::MaximumRegistersINTEL); + ret.maximumRegistersINTEL = maximumRegistersINTEL; + return ret; + } +}; + +template<> +struct ExecutionModeParam +{ + Id maximumRegistersIdINTEL; + ExecutionModeParam(Id maximumRegistersIdINTELParam) { maximumRegistersIdINTEL = maximumRegistersIdINTELParam; } + operator ExecutionModeAndParamData() + { + ExecutionModeAndParamData ret(ExecutionMode::MaximumRegistersIdINTEL); + ret.maximumRegistersIdINTEL = maximumRegistersIdINTEL; + return ret; + } +}; + +template<> +struct ExecutionModeParam +{ + NamedMaximumNumberOfRegisters namedMaximumRegistersINTEL; + ExecutionModeParam(NamedMaximumNumberOfRegisters namedMaximumRegistersINTELParam) { namedMaximumRegistersINTEL = namedMaximumRegistersINTELParam; } + operator ExecutionModeAndParamData() + { + ExecutionModeAndParamData ret(ExecutionMode::NamedMaximumRegistersINTEL); + ret.namedMaximumRegistersINTEL = namedMaximumRegistersINTEL; + return ret; + } +}; + template<> @@ -1011,6 +1132,26 @@ inline ExecutionModeAndParamData DecodeParam(const ConstIter &it, uint32_t &word ret.roundingModeRTZ = (uint32_t)it.word(word); word += 1; break; + case ExecutionMode::MaxNodeRecursionAMDX: + ret.maxNodeRecursionAMDX = Id::fromWord(it.word(word)); + word += 1; + break; + case ExecutionMode::StaticNumWorkgroupsAMDX: + ret.staticNumWorkgroupsAMDX.xsize = Id::fromWord(it.word(word+0)); + ret.staticNumWorkgroupsAMDX.ysize = Id::fromWord(it.word(word+1)); + ret.staticNumWorkgroupsAMDX.zsize = Id::fromWord(it.word(word+2)); + word += 3; + break; + case ExecutionMode::ShaderIndexAMDX: + ret.shaderIndexAMDX = Id::fromWord(it.word(word)); + word += 1; + break; + case ExecutionMode::MaxNumWorkgroupsAMDX: + ret.maxNumWorkgroupsAMDX.xsize = Id::fromWord(it.word(word+0)); + ret.maxNumWorkgroupsAMDX.ysize = Id::fromWord(it.word(word+1)); + ret.maxNumWorkgroupsAMDX.zsize = Id::fromWord(it.word(word+2)); + word += 3; + break; case ExecutionMode::OutputPrimitivesNV: ret.outputPrimitivesNV = (uint32_t)it.word(word); word += 1; @@ -1053,6 +1194,11 @@ inline ExecutionModeAndParamData DecodeParam(const ConstIter &it, uint32_t &word ret.schedulerTargetFmaxMhzINTEL = (uint32_t)it.word(word); word += 1; break; + case ExecutionMode::FPFastMathDefault: + ret.fPFastMathDefault.targetType = Id::fromWord(it.word(word+0)); + ret.fPFastMathDefault.fastMathMode = Id::fromWord(it.word(word+1)); + word += 2; + break; case ExecutionMode::StreamingInterfaceINTEL: ret.streamingInterfaceINTEL = (uint32_t)it.word(word); word += 1; @@ -1065,6 +1211,18 @@ inline ExecutionModeAndParamData DecodeParam(const ConstIter &it, uint32_t &word ret.namedBarrierCountINTEL = (uint32_t)it.word(word); word += 1; break; + case ExecutionMode::MaximumRegistersINTEL: + ret.maximumRegistersINTEL = (uint32_t)it.word(word); + word += 1; + break; + case ExecutionMode::MaximumRegistersIdINTEL: + ret.maximumRegistersIdINTEL = Id::fromWord(it.word(word)); + word += 1; + break; + case ExecutionMode::NamedMaximumRegistersINTEL: + ret.namedMaximumRegistersINTEL = (NamedMaximumNumberOfRegisters)it.word(word); + word += 1; + break; default: break; } return ret; @@ -1128,6 +1286,22 @@ inline void EncodeParam(rdcarray &words, const ExecutionModeAndParamDa case ExecutionMode::RoundingModeRTZ: words.push_back((uint32_t)param.roundingModeRTZ); break; + case ExecutionMode::MaxNodeRecursionAMDX: + words.push_back(param.maxNodeRecursionAMDX.value()); + break; + case ExecutionMode::StaticNumWorkgroupsAMDX: + words.push_back(param.staticNumWorkgroupsAMDX.xsize.value()); + words.push_back(param.staticNumWorkgroupsAMDX.ysize.value()); + words.push_back(param.staticNumWorkgroupsAMDX.zsize.value()); + break; + case ExecutionMode::ShaderIndexAMDX: + words.push_back(param.shaderIndexAMDX.value()); + break; + case ExecutionMode::MaxNumWorkgroupsAMDX: + words.push_back(param.maxNumWorkgroupsAMDX.xsize.value()); + words.push_back(param.maxNumWorkgroupsAMDX.ysize.value()); + words.push_back(param.maxNumWorkgroupsAMDX.zsize.value()); + break; case ExecutionMode::OutputPrimitivesNV: words.push_back((uint32_t)param.outputPrimitivesNV); break; @@ -1160,6 +1334,10 @@ inline void EncodeParam(rdcarray &words, const ExecutionModeAndParamDa case ExecutionMode::SchedulerTargetFmaxMhzINTEL: words.push_back((uint32_t)param.schedulerTargetFmaxMhzINTEL); break; + case ExecutionMode::FPFastMathDefault: + words.push_back(param.fPFastMathDefault.targetType.value()); + words.push_back(param.fPFastMathDefault.fastMathMode.value()); + break; case ExecutionMode::StreamingInterfaceINTEL: words.push_back((uint32_t)param.streamingInterfaceINTEL); break; @@ -1169,6 +1347,15 @@ inline void EncodeParam(rdcarray &words, const ExecutionModeAndParamDa case ExecutionMode::NamedBarrierCountINTEL: words.push_back((uint32_t)param.namedBarrierCountINTEL); break; + case ExecutionMode::MaximumRegistersINTEL: + words.push_back((uint32_t)param.maximumRegistersINTEL); + break; + case ExecutionMode::MaximumRegistersIdINTEL: + words.push_back(param.maximumRegistersIdINTEL.value()); + break; + case ExecutionMode::NamedMaximumRegistersINTEL: + words.push_back((uint32_t)param.namedMaximumRegistersINTEL); + break; default: break; } } @@ -1192,6 +1379,10 @@ inline uint16_t ExtraWordCount(const ExecutionMode executionMode) case ExecutionMode::SignedZeroInfNanPreserve: return 1; case ExecutionMode::RoundingModeRTE: return 1; case ExecutionMode::RoundingModeRTZ: return 1; + case ExecutionMode::MaxNodeRecursionAMDX: return 1; + case ExecutionMode::StaticNumWorkgroupsAMDX: return 3; + case ExecutionMode::ShaderIndexAMDX: return 1; + case ExecutionMode::MaxNumWorkgroupsAMDX: return 3; case ExecutionMode::OutputPrimitivesNV: return 1; case ExecutionMode::SharedLocalMemorySizeINTEL: return 1; case ExecutionMode::RoundingModeRTPINTEL: return 1; @@ -1202,9 +1393,13 @@ inline uint16_t ExtraWordCount(const ExecutionMode executionMode) case ExecutionMode::MaxWorkDimINTEL: return 1; case ExecutionMode::NumSIMDWorkitemsINTEL: return 1; case ExecutionMode::SchedulerTargetFmaxMhzINTEL: return 1; + case ExecutionMode::FPFastMathDefault: return 2; case ExecutionMode::StreamingInterfaceINTEL: return 1; case ExecutionMode::RegisterMapInterfaceINTEL: return 1; case ExecutionMode::NamedBarrierCountINTEL: return 1; + case ExecutionMode::MaximumRegistersINTEL: return 1; + case ExecutionMode::MaximumRegistersIdINTEL: return 1; + case ExecutionMode::NamedMaximumRegistersINTEL: return 1; default: break; } return 0; @@ -1238,6 +1433,8 @@ inline uint16_t OptionalWordCount(const LinkageType val) { return val != Linkage inline uint16_t OptionalWordCount(const AccessQualifier val) { return val != AccessQualifier::Invalid ? 1 : 0; } +inline uint16_t OptionalWordCount(const HostAccessQualifier val) { return val != HostAccessQualifier::Invalid ? 1 : 0; } + inline uint16_t OptionalWordCount(const FunctionParameterAttribute val) { return val != FunctionParameterAttribute::Invalid ? 1 : 0; } template struct DecorationParam; @@ -1528,6 +1725,32 @@ struct DecorationParam } }; +template<> +struct DecorationParam +{ + Id nodeSharesPayloadLimitsWithAMDX; + DecorationParam(Id nodeSharesPayloadLimitsWithAMDXParam) { nodeSharesPayloadLimitsWithAMDX = nodeSharesPayloadLimitsWithAMDXParam; } + operator DecorationAndParamData() + { + DecorationAndParamData ret(Decoration::NodeSharesPayloadLimitsWithAMDX); + ret.nodeSharesPayloadLimitsWithAMDX = nodeSharesPayloadLimitsWithAMDX; + return ret; + } +}; + +template<> +struct DecorationParam +{ + Id nodeMaxPayloadsAMDX; + DecorationParam(Id nodeMaxPayloadsAMDXParam) { nodeMaxPayloadsAMDX = nodeMaxPayloadsAMDXParam; } + operator DecorationAndParamData() + { + DecorationAndParamData ret(Decoration::NodeMaxPayloadsAMDX); + ret.nodeMaxPayloadsAMDX = nodeMaxPayloadsAMDX; + return ret; + } +}; + template<> struct DecorationParam { @@ -1699,6 +1922,32 @@ struct DecorationParam } }; +template<> +struct DecorationParam +{ + uint32_t stridesizeINTEL; + DecorationParam(uint32_t stridesizeINTELParam) { stridesizeINTEL = stridesizeINTELParam; } + operator DecorationAndParamData() + { + DecorationAndParamData ret(Decoration::StridesizeINTEL); + ret.stridesizeINTEL = stridesizeINTEL; + return ret; + } +}; + +template<> +struct DecorationParam +{ + uint32_t wordsizeINTEL; + DecorationParam(uint32_t wordsizeINTELParam) { wordsizeINTEL = wordsizeINTELParam; } + operator DecorationAndParamData() + { + DecorationAndParamData ret(Decoration::WordsizeINTEL); + ret.wordsizeINTEL = wordsizeINTEL; + return ret; + } +}; + template<> struct DecorationParam { @@ -1844,6 +2093,19 @@ struct DecorationParam } }; +template<> +struct DecorationParam +{ + float fPMaxErrorDecorationINTEL; + DecorationParam(float fPMaxErrorDecorationINTELParam) { fPMaxErrorDecorationINTEL = fPMaxErrorDecorationINTELParam; } + operator DecorationAndParamData() + { + DecorationAndParamData ret(Decoration::FPMaxErrorDecorationINTEL); + ret.fPMaxErrorDecorationINTEL = fPMaxErrorDecorationINTEL; + return ret; + } +}; + template<> struct DecorationParam { @@ -1950,6 +2212,60 @@ struct DecorationParam } }; +template<> +struct DecorationParam +{ + InitializationModeQualifier initModeINTEL; + DecorationParam(InitializationModeQualifier initModeINTELParam) { initModeINTEL = initModeINTELParam; } + operator DecorationAndParamData() + { + DecorationAndParamData ret(Decoration::InitModeINTEL); + ret.initModeINTEL = initModeINTEL; + return ret; + } +}; + +template<> +struct DecorationParam +{ + uint32_t implementInRegisterMapINTEL; + DecorationParam(uint32_t implementInRegisterMapINTELParam) { implementInRegisterMapINTEL = implementInRegisterMapINTELParam; } + operator DecorationAndParamData() + { + DecorationAndParamData ret(Decoration::ImplementInRegisterMapINTEL); + ret.implementInRegisterMapINTEL = implementInRegisterMapINTEL; + return ret; + } +}; + +template<> +struct DecorationParam +{ + CacheControlLoadINTELParams cacheControlLoadINTEL; + DecorationParam(uint32_t cacheLevel, LoadCacheControl cacheControl) { cacheControlLoadINTEL.cacheLevel = cacheLevel; cacheControlLoadINTEL.cacheControl = cacheControl; } + operator DecorationAndParamData() + { + DecorationAndParamData ret(Decoration::CacheControlLoadINTEL); + ret.cacheControlLoadINTEL.cacheLevel = cacheControlLoadINTEL.cacheLevel; + ret.cacheControlLoadINTEL.cacheControl = cacheControlLoadINTEL.cacheControl; + return ret; + } +}; + +template<> +struct DecorationParam +{ + CacheControlStoreINTELParams cacheControlStoreINTEL; + DecorationParam(uint32_t cacheLevel, StoreCacheControl cacheControl) { cacheControlStoreINTEL.cacheLevel = cacheLevel; cacheControlStoreINTEL.cacheControl = cacheControl; } + operator DecorationAndParamData() + { + DecorationAndParamData ret(Decoration::CacheControlStoreINTEL); + ret.cacheControlStoreINTEL.cacheLevel = cacheControlStoreINTEL.cacheLevel; + ret.cacheControlStoreINTEL.cacheControl = cacheControlStoreINTEL.cacheControl; + return ret; + } +}; + template<> @@ -2049,6 +2365,14 @@ inline DecorationAndParamData DecodeParam(const ConstIter &it, uint32_t &word) ret.maxByteOffsetId = Id::fromWord(it.word(word)); word += 1; break; + case Decoration::NodeSharesPayloadLimitsWithAMDX: + ret.nodeSharesPayloadLimitsWithAMDX = Id::fromWord(it.word(word)); + word += 1; + break; + case Decoration::NodeMaxPayloadsAMDX: + ret.nodeMaxPayloadsAMDX = Id::fromWord(it.word(word)); + word += 1; + break; case Decoration::SecondaryViewportRelativeNV: ret.secondaryViewportRelativeNV = (uint32_t)it.word(word); word += 1; @@ -2103,6 +2427,14 @@ inline DecorationAndParamData DecodeParam(const ConstIter &it, uint32_t &word) ret.forcePow2DepthINTEL = (uint32_t)it.word(word); word += 1; break; + case Decoration::StridesizeINTEL: + ret.stridesizeINTEL = (uint32_t)it.word(word); + word += 1; + break; + case Decoration::WordsizeINTEL: + ret.wordsizeINTEL = (uint32_t)it.word(word); + word += 1; + break; case Decoration::CacheSizeINTEL: ret.cacheSizeINTEL = (uint32_t)it.word(word); word += 1; @@ -2149,6 +2481,10 @@ inline DecorationAndParamData DecodeParam(const ConstIter &it, uint32_t &word) ret.functionFloatingPointModeINTEL.fPOperationMode = (FPOperationMode)it.word(word+1); word += 2; break; + case Decoration::FPMaxErrorDecorationINTEL: + ret.fPMaxErrorDecorationINTEL = (float)it.word(word); + word += 1; + break; case Decoration::LatencyControlLabelINTEL: ret.latencyControlLabelINTEL = (uint32_t)it.word(word); word += 1; @@ -2183,6 +2519,24 @@ inline DecorationAndParamData DecodeParam(const ConstIter &it, uint32_t &word) ret.mMHostInterfaceWaitRequestINTEL = (uint32_t)it.word(word); word += 1; break; + case Decoration::InitModeINTEL: + ret.initModeINTEL = (InitializationModeQualifier)it.word(word); + word += 1; + break; + case Decoration::ImplementInRegisterMapINTEL: + ret.implementInRegisterMapINTEL = (uint32_t)it.word(word); + word += 1; + break; + case Decoration::CacheControlLoadINTEL: + ret.cacheControlLoadINTEL.cacheLevel = (uint32_t)it.word(word+0); + ret.cacheControlLoadINTEL.cacheControl = (LoadCacheControl)it.word(word+1); + word += 2; + break; + case Decoration::CacheControlStoreINTEL: + ret.cacheControlStoreINTEL.cacheLevel = (uint32_t)it.word(word+0); + ret.cacheControlStoreINTEL.cacheControl = (StoreCacheControl)it.word(word+1); + word += 2; + break; default: break; } return ret; @@ -2259,6 +2613,12 @@ inline void EncodeParam(rdcarray &words, const DecorationAndParamData case Decoration::MaxByteOffsetId: words.push_back(param.maxByteOffsetId.value()); break; + case Decoration::NodeSharesPayloadLimitsWithAMDX: + words.push_back(param.nodeSharesPayloadLimitsWithAMDX.value()); + break; + case Decoration::NodeMaxPayloadsAMDX: + words.push_back(param.nodeMaxPayloadsAMDX.value()); + break; case Decoration::SecondaryViewportRelativeNV: words.push_back((uint32_t)param.secondaryViewportRelativeNV); break; @@ -2300,6 +2660,12 @@ inline void EncodeParam(rdcarray &words, const DecorationAndParamData case Decoration::ForcePow2DepthINTEL: words.push_back((uint32_t)param.forcePow2DepthINTEL); break; + case Decoration::StridesizeINTEL: + words.push_back((uint32_t)param.stridesizeINTEL); + break; + case Decoration::WordsizeINTEL: + words.push_back((uint32_t)param.wordsizeINTEL); + break; case Decoration::CacheSizeINTEL: words.push_back((uint32_t)param.cacheSizeINTEL); break; @@ -2335,6 +2701,9 @@ inline void EncodeParam(rdcarray &words, const DecorationAndParamData words.push_back((uint32_t)param.functionFloatingPointModeINTEL.targetWidth); words.push_back((uint32_t)param.functionFloatingPointModeINTEL.fPOperationMode); break; + case Decoration::FPMaxErrorDecorationINTEL: + words.push_back((uint32_t)param.fPMaxErrorDecorationINTEL); + break; case Decoration::LatencyControlLabelINTEL: words.push_back((uint32_t)param.latencyControlLabelINTEL); break; @@ -2361,6 +2730,20 @@ inline void EncodeParam(rdcarray &words, const DecorationAndParamData case Decoration::MMHostInterfaceWaitRequestINTEL: words.push_back((uint32_t)param.mMHostInterfaceWaitRequestINTEL); break; + case Decoration::InitModeINTEL: + words.push_back((uint32_t)param.initModeINTEL); + break; + case Decoration::ImplementInRegisterMapINTEL: + words.push_back((uint32_t)param.implementInRegisterMapINTEL); + break; + case Decoration::CacheControlLoadINTEL: + words.push_back((uint32_t)param.cacheControlLoadINTEL.cacheLevel); + words.push_back((uint32_t)param.cacheControlLoadINTEL.cacheControl); + break; + case Decoration::CacheControlStoreINTEL: + words.push_back((uint32_t)param.cacheControlStoreINTEL.cacheLevel); + words.push_back((uint32_t)param.cacheControlStoreINTEL.cacheControl); + break; default: break; } } @@ -2391,6 +2774,8 @@ inline uint16_t ExtraWordCount(const Decoration decoration) case Decoration::MaxByteOffset: return 1; case Decoration::AlignmentId: return 1; case Decoration::MaxByteOffsetId: return 1; + case Decoration::NodeSharesPayloadLimitsWithAMDX: return 1; + case Decoration::NodeMaxPayloadsAMDX: return 1; case Decoration::SecondaryViewportRelativeNV: return 1; case Decoration::SIMTCallINTEL: return 1; case Decoration::FuncParamIOKindINTEL: return 1; @@ -2404,6 +2789,8 @@ inline uint16_t ExtraWordCount(const Decoration decoration) case Decoration::MaxReplicatesINTEL: return 1; case Decoration::BankBitsINTEL: return 1; case Decoration::ForcePow2DepthINTEL: return 1; + case Decoration::StridesizeINTEL: return 1; + case Decoration::WordsizeINTEL: return 1; case Decoration::CacheSizeINTEL: return 1; case Decoration::PrefetchINTEL: return 1; case Decoration::MathOpDSPModeINTEL: return 2; @@ -2415,6 +2802,7 @@ inline uint16_t ExtraWordCount(const Decoration decoration) case Decoration::BufferLocationINTEL: return 1; case Decoration::IOPipeStorageINTEL: return 1; case Decoration::FunctionFloatingPointModeINTEL: return 2; + case Decoration::FPMaxErrorDecorationINTEL: return 1; case Decoration::LatencyControlLabelINTEL: return 1; case Decoration::LatencyControlConstraintINTEL: return 3; case Decoration::MMHostInterfaceAddressWidthINTEL: return 1; @@ -2423,6 +2811,10 @@ inline uint16_t ExtraWordCount(const Decoration decoration) case Decoration::MMHostInterfaceReadWriteModeINTEL: return 1; case Decoration::MMHostInterfaceMaxBurstINTEL: return 1; case Decoration::MMHostInterfaceWaitRequestINTEL: return 1; + case Decoration::InitModeINTEL: return 1; + case Decoration::ImplementInRegisterMapINTEL: return 1; + case Decoration::CacheControlLoadINTEL: return 2; + case Decoration::CacheControlStoreINTEL: return 2; default: break; } return 0; @@ -2446,6 +2838,20 @@ inline uint16_t OptionalWordCount(const RayQueryCandidateIntersectionType val) { inline uint16_t OptionalWordCount(const PackedVectorFormat val) { return val != PackedVectorFormat::Invalid ? 1 : 0; } +inline uint16_t OptionalWordCount(const CooperativeMatrixOperands val) { return val != CooperativeMatrixOperands::NoneKHR ? 1 : 0; } + +inline uint16_t OptionalWordCount(const CooperativeMatrixLayout val) { return val != CooperativeMatrixLayout::Invalid ? 1 : 0; } + +inline uint16_t OptionalWordCount(const CooperativeMatrixUse val) { return val != CooperativeMatrixUse::Invalid ? 1 : 0; } + +inline uint16_t OptionalWordCount(const InitializationModeQualifier val) { return val != InitializationModeQualifier::Invalid ? 1 : 0; } + +inline uint16_t OptionalWordCount(const LoadCacheControl val) { return val != LoadCacheControl::Invalid ? 1 : 0; } + +inline uint16_t OptionalWordCount(const StoreCacheControl val) { return val != StoreCacheControl::Invalid ? 1 : 0; } + +inline uint16_t OptionalWordCount(const NamedMaximumNumberOfRegisters val) { return val != NamedMaximumNumberOfRegisters::Invalid ? 1 : 0; } + inline uint16_t ExtraWordCount(const rdcstr &val) { @@ -13478,6 +13884,209 @@ struct OpSUDotAccSat bool HasPackedVectorFormat() const { return wordCount > 6; } }; +struct OpTypeCooperativeMatrixKHR +{ + OpTypeCooperativeMatrixKHR(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpTypeCooperativeMatrixKHR(IdResult result, Id componentType, IdScope scope, Id rows, Id columns, Id use) + : op(Op::TypeCooperativeMatrixKHR) + , wordCount(FixedWordSize) + { + this->result = result; + this->componentType = componentType; + this->scope = scope; + this->rows = rows; + this->columns = columns; + this->use = use; + } + + static constexpr Op OpCode = Op::TypeCooperativeMatrixKHR; + static constexpr uint16_t FixedWordSize = 7U; + Op op; + uint16_t wordCount; + IdResult result; + Id componentType; + IdScope scope; + Id rows; + Id columns; + Id use; +}; + +struct OpCooperativeMatrixLoadKHR +{ + OpCooperativeMatrixLoadKHR(const ConstIter &it) + { + uint32_t word = 0;(void)word; + this->op = OpCode; + this->wordCount = (uint16_t)it.size(); + this->resultType = Id::fromWord(it.word(1)); + this->result = Id::fromWord(it.word(2)); + this->pointer = Id::fromWord(it.word(3)); + this->memoryLayout = Id::fromWord(it.word(4)); + this->stride = (it.size() > 5) ? Id::fromWord(it.word(5)) : Id(); + this->memoryOperand = DecodeParam(it, word); + } + OpCooperativeMatrixLoadKHR(IdResultType resultType, IdResult result, Id pointer, Id memoryLayout, Id stride = Id(), MemoryAccessAndParamDatas memoryOperand = MemoryAccess::None) + : op(Op::CooperativeMatrixLoadKHR) + , wordCount(MinWordSize + OptionalWordCount(stride) + ExtraWordCount(memoryOperand)) + { + this->resultType = resultType; + this->result = result; + this->pointer = pointer; + this->memoryLayout = memoryLayout; + this->stride = stride; + this->memoryOperand = memoryOperand; + } + operator Operation() const + { + rdcarray words; + words.push_back(resultType.value()); + words.push_back(result.value()); + words.push_back(pointer.value()); + words.push_back(memoryLayout.value()); + if(stride != Id()) words.push_back(stride.value()); + EncodeParam(words, memoryOperand); + return Operation(OpCode, words); + } + + static constexpr Op OpCode = Op::CooperativeMatrixLoadKHR; + static constexpr uint16_t MinWordSize = 5U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + Id pointer; + Id memoryLayout; + Id stride; + MemoryAccessAndParamDatas memoryOperand; + + bool HasStride() const { return wordCount > 5; } +}; + +struct OpCooperativeMatrixStoreKHR +{ + OpCooperativeMatrixStoreKHR(const ConstIter &it) + { + uint32_t word = 0;(void)word; + this->op = OpCode; + this->wordCount = (uint16_t)it.size(); + this->pointer = Id::fromWord(it.word(1)); + this->object = Id::fromWord(it.word(2)); + this->memoryLayout = Id::fromWord(it.word(3)); + this->stride = (it.size() > 4) ? Id::fromWord(it.word(4)) : Id(); + this->memoryOperand = DecodeParam(it, word); + } + OpCooperativeMatrixStoreKHR(Id pointer, Id object, Id memoryLayout, Id stride = Id(), MemoryAccessAndParamDatas memoryOperand = MemoryAccess::None) + : op(Op::CooperativeMatrixStoreKHR) + , wordCount(MinWordSize + OptionalWordCount(stride) + ExtraWordCount(memoryOperand)) + { + this->pointer = pointer; + this->object = object; + this->memoryLayout = memoryLayout; + this->stride = stride; + this->memoryOperand = memoryOperand; + } + operator Operation() const + { + rdcarray words; + words.push_back(pointer.value()); + words.push_back(object.value()); + words.push_back(memoryLayout.value()); + if(stride != Id()) words.push_back(stride.value()); + EncodeParam(words, memoryOperand); + return Operation(OpCode, words); + } + + static constexpr Op OpCode = Op::CooperativeMatrixStoreKHR; + static constexpr uint16_t MinWordSize = 4U; + Op op; + uint16_t wordCount; + Id pointer; + Id object; + Id memoryLayout; + Id stride; + MemoryAccessAndParamDatas memoryOperand; + + bool HasStride() const { return wordCount > 4; } +}; + +struct OpCooperativeMatrixMulAddKHR +{ + OpCooperativeMatrixMulAddKHR(const ConstIter &it) + { + uint32_t word = 0;(void)word; + this->op = OpCode; + this->wordCount = (uint16_t)it.size(); + this->resultType = Id::fromWord(it.word(1)); + this->result = Id::fromWord(it.word(2)); + this->a = Id::fromWord(it.word(3)); + this->b = Id::fromWord(it.word(4)); + this->c = Id::fromWord(it.word(5)); + this->cooperativeMatrixOperands = (it.size() > 6) ? (CooperativeMatrixOperands)it.word(6) : CooperativeMatrixOperands::NoneKHR; + } + OpCooperativeMatrixMulAddKHR(IdResultType resultType, IdResult result, Id a, Id b, Id c, CooperativeMatrixOperands cooperativeMatrixOperands = CooperativeMatrixOperands::NoneKHR) + : op(Op::CooperativeMatrixMulAddKHR) + , wordCount(MinWordSize + OptionalWordCount(cooperativeMatrixOperands)) + { + this->resultType = resultType; + this->result = result; + this->a = a; + this->b = b; + this->c = c; + this->cooperativeMatrixOperands = cooperativeMatrixOperands; + } + operator Operation() const + { + rdcarray words; + words.push_back(resultType.value()); + words.push_back(result.value()); + words.push_back(a.value()); + words.push_back(b.value()); + words.push_back(c.value()); + if(cooperativeMatrixOperands != CooperativeMatrixOperands::NoneKHR) words.push_back((uint32_t)cooperativeMatrixOperands); + return Operation(OpCode, words); + } + + static constexpr Op OpCode = Op::CooperativeMatrixMulAddKHR; + static constexpr uint16_t MinWordSize = 6U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + Id a; + Id b; + Id c; + CooperativeMatrixOperands cooperativeMatrixOperands; + + bool HasCooperativeMatrixOperands() const { return wordCount > 6; } +}; + +struct OpCooperativeMatrixLengthKHR +{ + OpCooperativeMatrixLengthKHR(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpCooperativeMatrixLengthKHR(IdResultType resultType, IdResult result, Id type) + : op(Op::CooperativeMatrixLengthKHR) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->type = type; + } + + static constexpr Op OpCode = Op::CooperativeMatrixLengthKHR; + static constexpr uint16_t FixedWordSize = 4U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + Id type; +}; + struct OpTypeRayQueryKHR { OpTypeRayQueryKHR(const ConstIter &it) @@ -13764,6 +14373,134 @@ struct OpImageBlockMatchSADQCOM Id blockSize; }; +struct OpImageBlockMatchWindowSSDQCOM +{ + OpImageBlockMatchWindowSSDQCOM(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpImageBlockMatchWindowSSDQCOM(IdResultType resultType, IdResult result, Id targetSampledImage, Id targetCoordinates, Id referenceSampledImage, Id referenceCoordinates, Id blockSize) + : op(Op::ImageBlockMatchWindowSSDQCOM) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->targetSampledImage = targetSampledImage; + this->targetCoordinates = targetCoordinates; + this->referenceSampledImage = referenceSampledImage; + this->referenceCoordinates = referenceCoordinates; + this->blockSize = blockSize; + } + + static constexpr Op OpCode = Op::ImageBlockMatchWindowSSDQCOM; + static constexpr uint16_t FixedWordSize = 8U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + Id targetSampledImage; + Id targetCoordinates; + Id referenceSampledImage; + Id referenceCoordinates; + Id blockSize; +}; + +struct OpImageBlockMatchWindowSADQCOM +{ + OpImageBlockMatchWindowSADQCOM(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpImageBlockMatchWindowSADQCOM(IdResultType resultType, IdResult result, Id targetSampledImage, Id targetCoordinates, Id referenceSampledImage, Id referenceCoordinates, Id blockSize) + : op(Op::ImageBlockMatchWindowSADQCOM) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->targetSampledImage = targetSampledImage; + this->targetCoordinates = targetCoordinates; + this->referenceSampledImage = referenceSampledImage; + this->referenceCoordinates = referenceCoordinates; + this->blockSize = blockSize; + } + + static constexpr Op OpCode = Op::ImageBlockMatchWindowSADQCOM; + static constexpr uint16_t FixedWordSize = 8U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + Id targetSampledImage; + Id targetCoordinates; + Id referenceSampledImage; + Id referenceCoordinates; + Id blockSize; +}; + +struct OpImageBlockMatchGatherSSDQCOM +{ + OpImageBlockMatchGatherSSDQCOM(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpImageBlockMatchGatherSSDQCOM(IdResultType resultType, IdResult result, Id targetSampledImage, Id targetCoordinates, Id referenceSampledImage, Id referenceCoordinates, Id blockSize) + : op(Op::ImageBlockMatchGatherSSDQCOM) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->targetSampledImage = targetSampledImage; + this->targetCoordinates = targetCoordinates; + this->referenceSampledImage = referenceSampledImage; + this->referenceCoordinates = referenceCoordinates; + this->blockSize = blockSize; + } + + static constexpr Op OpCode = Op::ImageBlockMatchGatherSSDQCOM; + static constexpr uint16_t FixedWordSize = 8U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + Id targetSampledImage; + Id targetCoordinates; + Id referenceSampledImage; + Id referenceCoordinates; + Id blockSize; +}; + +struct OpImageBlockMatchGatherSADQCOM +{ + OpImageBlockMatchGatherSADQCOM(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpImageBlockMatchGatherSADQCOM(IdResultType resultType, IdResult result, Id targetSampledImage, Id targetCoordinates, Id referenceSampledImage, Id referenceCoordinates, Id blockSize) + : op(Op::ImageBlockMatchGatherSADQCOM) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->targetSampledImage = targetSampledImage; + this->targetCoordinates = targetCoordinates; + this->referenceSampledImage = referenceSampledImage; + this->referenceCoordinates = referenceCoordinates; + this->blockSize = blockSize; + } + + static constexpr Op OpCode = Op::ImageBlockMatchGatherSADQCOM; + static constexpr uint16_t FixedWordSize = 8U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + Id targetSampledImage; + Id targetCoordinates; + Id referenceSampledImage; + Id referenceCoordinates; + Id blockSize; +}; + struct OpGroupIAddNonUniformAMD { OpGroupIAddNonUniformAMD(const ConstIter &it) @@ -14066,6 +14803,124 @@ struct OpReadClockKHR IdScope scope; }; +struct OpFinalizeNodePayloadsAMDX +{ + OpFinalizeNodePayloadsAMDX(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpFinalizeNodePayloadsAMDX(Id payloadArray) + : op(Op::FinalizeNodePayloadsAMDX) + , wordCount(FixedWordSize) + { + this->payloadArray = payloadArray; + } + + static constexpr Op OpCode = Op::FinalizeNodePayloadsAMDX; + static constexpr uint16_t FixedWordSize = 2U; + Op op; + uint16_t wordCount; + Id payloadArray; +}; + +struct OpFinishWritingNodePayloadAMDX +{ + OpFinishWritingNodePayloadAMDX(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpFinishWritingNodePayloadAMDX(IdResultType resultType, IdResult result, Id payload) + : op(Op::FinishWritingNodePayloadAMDX) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->payload = payload; + } + + static constexpr Op OpCode = Op::FinishWritingNodePayloadAMDX; + static constexpr uint16_t FixedWordSize = 4U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + Id payload; +}; + +struct OpInitializeNodePayloadsAMDX +{ + OpInitializeNodePayloadsAMDX(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpInitializeNodePayloadsAMDX(Id payloadArray, IdScope visibility, Id payloadCount, Id nodeIndex) + : op(Op::InitializeNodePayloadsAMDX) + , wordCount(FixedWordSize) + { + this->payloadArray = payloadArray; + this->visibility = visibility; + this->payloadCount = payloadCount; + this->nodeIndex = nodeIndex; + } + + static constexpr Op OpCode = Op::InitializeNodePayloadsAMDX; + static constexpr uint16_t FixedWordSize = 5U; + Op op; + uint16_t wordCount; + Id payloadArray; + IdScope visibility; + Id payloadCount; + Id nodeIndex; +}; + +struct OpGroupNonUniformQuadAllKHR +{ + OpGroupNonUniformQuadAllKHR(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpGroupNonUniformQuadAllKHR(IdResultType resultType, IdResult result, Id predicate) + : op(Op::GroupNonUniformQuadAllKHR) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->predicate = predicate; + } + + static constexpr Op OpCode = Op::GroupNonUniformQuadAllKHR; + static constexpr uint16_t FixedWordSize = 4U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + Id predicate; +}; + +struct OpGroupNonUniformQuadAnyKHR +{ + OpGroupNonUniformQuadAnyKHR(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpGroupNonUniformQuadAnyKHR(IdResultType resultType, IdResult result, Id predicate) + : op(Op::GroupNonUniformQuadAnyKHR) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->predicate = predicate; + } + + static constexpr Op OpCode = Op::GroupNonUniformQuadAnyKHR; + static constexpr uint16_t FixedWordSize = 4U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + Id predicate; +}; + struct OpHitObjectRecordHitMotionNV { OpHitObjectRecordHitMotionNV(const ConstIter &it) @@ -15157,6 +16012,70 @@ struct OpWritePackedPrimitiveIndices4x8NV Id packedIndices; }; +struct OpFetchMicroTriangleVertexPositionNV +{ + OpFetchMicroTriangleVertexPositionNV(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpFetchMicroTriangleVertexPositionNV(IdResultType resultType, IdResult result, Id accel, Id instanceId, Id geometryIndex, Id primitiveIndex, Id barycentric) + : op(Op::FetchMicroTriangleVertexPositionNV) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->accel = accel; + this->instanceId = instanceId; + this->geometryIndex = geometryIndex; + this->primitiveIndex = primitiveIndex; + this->barycentric = barycentric; + } + + static constexpr Op OpCode = Op::FetchMicroTriangleVertexPositionNV; + static constexpr uint16_t FixedWordSize = 8U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + Id accel; + Id instanceId; + Id geometryIndex; + Id primitiveIndex; + Id barycentric; +}; + +struct OpFetchMicroTriangleVertexBarycentricNV +{ + OpFetchMicroTriangleVertexBarycentricNV(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpFetchMicroTriangleVertexBarycentricNV(IdResultType resultType, IdResult result, Id accel, Id instanceId, Id geometryIndex, Id primitiveIndex, Id barycentric) + : op(Op::FetchMicroTriangleVertexBarycentricNV) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->accel = accel; + this->instanceId = instanceId; + this->geometryIndex = geometryIndex; + this->primitiveIndex = primitiveIndex; + this->barycentric = barycentric; + } + + static constexpr Op OpCode = Op::FetchMicroTriangleVertexBarycentricNV; + static constexpr uint16_t FixedWordSize = 8U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + Id accel; + Id instanceId; + Id geometryIndex; + Id primitiveIndex; + Id barycentric; +}; + struct OpReportIntersectionNV { OpReportIntersectionNV(const ConstIter &it) @@ -17331,6 +18250,47 @@ struct OpSpecConstantCompositeContinuedINTEL rdcarray constituents; }; +struct OpCompositeConstructContinuedINTEL +{ + OpCompositeConstructContinuedINTEL(const ConstIter &it) + { + uint32_t word = 0;(void)word; + this->op = OpCode; + this->wordCount = (uint16_t)it.size(); + this->resultType = Id::fromWord(it.word(1)); + this->result = Id::fromWord(it.word(2)); + word = 3; + this->constituents = MultiParam(it, word); + } + OpCompositeConstructContinuedINTEL(IdResultType resultType, IdResult result, const rdcarray &constituents = {}) + : op(Op::CompositeConstructContinuedINTEL) + , wordCount(MinWordSize + MultiWordCount(constituents)) + { + this->resultType = resultType; + this->result = result; + this->constituents = constituents; + } + operator Operation() const + { + rdcarray words; + words.push_back(resultType.value()); + words.push_back(result.value()); + for(size_t i=0; i < constituents.size(); i++) + { + words.push_back(constituents[i].value()); + } + return Operation(OpCode, words); + } + + static constexpr Op OpCode = Op::CompositeConstructContinuedINTEL; + static constexpr uint16_t MinWordSize = 3U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + rdcarray constituents; +}; + struct OpConvertFToBF16INTEL { OpConvertFToBF16INTEL(const ConstIter &it) @@ -17651,6 +18611,62 @@ struct OpGroupLogicalXorKHR Id x; }; +struct OpMaskedGatherINTEL +{ + OpMaskedGatherINTEL(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpMaskedGatherINTEL(IdResultType resultType, IdResult result, Id ptrVector, uint32_t alignment, Id mask, Id fillEmpty) + : op(Op::MaskedGatherINTEL) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->ptrVector = ptrVector; + this->alignment = alignment; + this->mask = mask; + this->fillEmpty = fillEmpty; + } + + static constexpr Op OpCode = Op::MaskedGatherINTEL; + static constexpr uint16_t FixedWordSize = 7U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + Id ptrVector; + uint32_t alignment; + Id mask; + Id fillEmpty; +}; + +struct OpMaskedScatterINTEL +{ + OpMaskedScatterINTEL(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpMaskedScatterINTEL(Id inputVector, Id ptrVector, uint32_t alignment, Id mask) + : op(Op::MaskedScatterINTEL) + , wordCount(FixedWordSize) + { + this->inputVector = inputVector; + this->ptrVector = ptrVector; + this->alignment = alignment; + this->mask = mask; + } + + static constexpr Op OpCode = Op::MaskedScatterINTEL; + static constexpr uint16_t FixedWordSize = 5U; + Op op; + uint16_t wordCount; + Id inputVector; + Id ptrVector; + uint32_t alignment; + Id mask; +}; + template inline rdcstr ParamToStr(const std::function &idName, const T &el) { diff --git a/renderdoc/driver/shaders/spirv/spirv_reflect.cpp b/renderdoc/driver/shaders/spirv/spirv_reflect.cpp index 9f478b675..19a70c066 100644 --- a/renderdoc/driver/shaders/spirv/spirv_reflect.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_reflect.cpp @@ -954,6 +954,7 @@ void Reflector::MakeReflection(const GraphicsAPI sourceAPI, const ShaderStage st case SourceLanguage::ESSL: case SourceLanguage::GLSL: reflection.debugInfo.encoding = ShaderEncoding::GLSL; break; case SourceLanguage::HLSL: reflection.debugInfo.encoding = ShaderEncoding::HLSL; break; + case SourceLanguage::Slang: reflection.debugInfo.encoding = ShaderEncoding::HLSL; break; case SourceLanguage::OpenCL_C: case SourceLanguage::OpenCL_CPP: case SourceLanguage::CPP_for_OpenCL: @@ -961,6 +962,9 @@ void Reflector::MakeReflection(const GraphicsAPI sourceAPI, const ShaderStage st case SourceLanguage::Invalid: case SourceLanguage::SYCL: case SourceLanguage::HERO_C: + case SourceLanguage::NZSL: + case SourceLanguage::WGSL: + case SourceLanguage::Zig: case SourceLanguage::Max: break; } @@ -2309,6 +2313,34 @@ void Reflector::AddSignatureParameter(const bool isInput, const ShaderStage stag #include "data/glsl_shaders.h" #include "glslang_compile.h" +#if 1 + +TEST_CASE("DO NOT COMMIT - convenience test", "[spirv]") +{ + // this test loads a file from disk and passes it through DXBC::DXBCContainer. Useful for when you + // are iterating on a shader and don't want to have to load a whole capture. + rdcarray spirv; + FileIO::ReadAll("T:/tmp/a.spv", spirv); + + rdcspv::Reflector spv; + spv.Parse(spirv); + + rdcstr entryPoint = spv.EntryPoints()[0].name; + ShaderStage stage = spv.EntryPoints()[0].stage; + + ShaderReflection refl; + ShaderBindpointMapping mapping; + SPIRVPatchData patchData; + spv.MakeReflection(GraphicsAPI::Vulkan, stage, entryPoint, {}, refl, mapping, patchData); + + std::map instructionLines; + rdcstr disasm = spv.Disassemble(entryPoint, instructionLines); + + RDCLOG("%s", disasm.c_str()); +} + +#endif + TEST_CASE("Validate SPIR-V reflection", "[spirv][reflection]") { ShaderType type = ShaderType::Vulkan;