| { |
| "revision" : 5, |
| "instructions" : [ |
| { |
| "opname" : "Kernel", |
| "opcode" : 1, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Kernel" }, |
| { "kind" : "IdRef", "name" : "Name" }, |
| { "kind" : "IdRef", "name" : "NumArguments", "quantifier" : "?" }, |
| { "kind" : "IdRef", "name" : "Flags", "quantifier" : "?" }, |
| { "kind" : "IdRef", "name" : "Attributes", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "ArgumentInfo", |
| "opcode" : 2, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Name" }, |
| { "kind" : "IdRef", "name" : "Type Name", "quantifier" : "?" }, |
| { "kind" : "IdRef", "name" : "Address Qualifier", "quantifier" : "?" }, |
| { "kind" : "IdRef", "name" : "Access Qualifier", "quantifier" : "?" }, |
| { "kind" : "IdRef", "name" : "Type Qualifier", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "ArgumentStorageBuffer", |
| "opcode" : 3, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Decl" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "ArgumentUniform", |
| "opcode" : 4, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Decl" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "ArgumentPodStorageBuffer", |
| "opcode" : 5, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Decl" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" }, |
| { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "ArgumentPodUniform", |
| "opcode" : 6, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Decl" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" }, |
| { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "ArgumentPodPushConstant", |
| "opcode" : 7, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Decl" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" }, |
| { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "ArgumentSampledImage", |
| "opcode" : 8, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Decl" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "ArgumentStorageImage", |
| "opcode" : 9, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Decl" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "ArgumentSampler", |
| "opcode" : 10, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Decl" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "ArgumentWorkgroup", |
| "opcode" : 11, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Decl" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "SpecId" }, |
| { "kind" : "IdRef", "name" : "ElemSize" }, |
| { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "SpecConstantWorkgroupSize", |
| "opcode" : 12, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "X" }, |
| { "kind" : "IdRef", "name" : "Y" }, |
| { "kind" : "IdRef", "name" : "Z" } |
| ] |
| }, |
| { |
| "opname" : "SpecConstantGlobalOffset", |
| "opcode" : 13, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "X" }, |
| { "kind" : "IdRef", "name" : "Y" }, |
| { "kind" : "IdRef", "name" : "Z" } |
| ] |
| }, |
| { |
| "opname" : "SpecConstantWorkDim", |
| "opcode" : 14, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Dim" } |
| ] |
| }, |
| { |
| "opname" : "PushConstantGlobalOffset", |
| "opcode" : 15, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" } |
| ] |
| }, |
| { |
| "opname" : "PushConstantEnqueuedLocalSize", |
| "opcode" : 16, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" } |
| ] |
| }, |
| { |
| "opname" : "PushConstantGlobalSize", |
| "opcode" : 17, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" } |
| ] |
| }, |
| { |
| "opname" : "PushConstantRegionOffset", |
| "opcode" : 18, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" } |
| ] |
| }, |
| { |
| "opname" : "PushConstantNumWorkgroups", |
| "opcode" : 19, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" } |
| ] |
| }, |
| { |
| "opname" : "PushConstantRegionGroupOffset", |
| "opcode" : 20, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" } |
| ] |
| }, |
| { |
| "opname" : "ConstantDataStorageBuffer", |
| "opcode" : 21, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "Data" } |
| ] |
| }, |
| { |
| "opname" : "ConstantDataUniform", |
| "opcode" : 22, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "Data" } |
| ] |
| }, |
| { |
| "opname" : "LiteralSampler", |
| "opcode" : 23, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "Mask" } |
| ] |
| }, |
| { |
| "opname" : "PropertyRequiredWorkgroupSize", |
| "opcode" : 24, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Kernel" }, |
| { "kind" : "IdRef", "name" : "X" }, |
| { "kind" : "IdRef", "name" : "Y" }, |
| { "kind" : "IdRef", "name" : "Z" } |
| ] |
| }, |
| { |
| "opname" : "SpecConstantSubgroupMaxSize", |
| "opcode" : 25, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Size" } |
| ] |
| }, |
| { |
| "opname" : "ArgumentPointerPushConstant", |
| "opcode" : 26, |
| "operands": [ |
| { "kind" : "IdRef", "name" : "Kernel" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" }, |
| { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "ArgumentPointerUniform", |
| "opcode" : 27, |
| "operands": [ |
| { "kind" : "IdRef", "name" : "Kernel" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" }, |
| { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "ProgramScopeVariablesStorageBuffer", |
| "opcode" : 28, |
| "operands": [ |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "Data" } |
| ] |
| }, |
| { |
| "opname" : "ProgramScopeVariablePointerRelocation", |
| "opcode" : 29, |
| "operands": [ |
| { "kind" : "IdRef", "name" : "ObjectOffset" }, |
| { "kind" : "IdRef", "name" : "PointerOffset" }, |
| { "kind" : "IdRef", "name" : "PointerSize" } |
| ] |
| }, |
| { |
| "opname" : "ImageArgumentInfoChannelOrderPushConstant", |
| "opcode" : 30, |
| "operands": [ |
| { "kind" : "IdRef", "name" : "Kernel" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" } |
| ] |
| }, |
| { |
| "opname" : "ImageArgumentInfoChannelDataTypePushConstant", |
| "opcode" : 31, |
| "operands": [ |
| { "kind" : "IdRef", "name" : "Kernel" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" } |
| ] |
| }, |
| { |
| "opname" : "ImageArgumentInfoChannelOrderUniform", |
| "opcode" : 32, |
| "operands": [ |
| { "kind" : "IdRef", "name" : "Kernel" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" } |
| ] |
| }, |
| { |
| "opname" : "ImageArgumentInfoChannelDataTypeUniform", |
| "opcode" : 33, |
| "operands": [ |
| { "kind" : "IdRef", "name" : "Kernel" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size" } |
| ] |
| }, |
| { |
| "opname" : "ArgumentStorageTexelBuffer", |
| "opcode" : 34, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Decl" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "ArgumentUniformTexelBuffer", |
| "opcode" : 35, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Decl" }, |
| { "kind" : "IdRef", "name" : "Ordinal" }, |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } |
| ] |
| }, |
| { |
| "opname" : "ConstantDataPointerPushConstant", |
| "opcode" : 36, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Offset"}, |
| { "kind" : "IdRef", "name" : "Size"}, |
| { "kind" : "IdRef", "name" : "Data" } |
| ] |
| }, |
| { |
| "opname" : "ProgramScopeVariablePointerPushConstant", |
| "opcode" : 37, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Offset"}, |
| { "kind" : "IdRef", "name" : "Size"}, |
| { "kind" : "IdRef", "name" : "Data" } |
| ] |
| }, |
| { |
| "opname" : "PrintfInfo", |
| "opcode" : 38, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "PrintfID" }, |
| { "kind" : "IdRef", "name" : "FormatString" }, |
| { "kind" : "IdRef", "quantifier" : "*", "name" : "ArgumentSizes"} |
| ] |
| }, |
| { |
| "opname" : "PrintfBufferStorageBuffer", |
| "opcode" : 39, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "DescriptorSet" }, |
| { "kind" : "IdRef", "name" : "Binding" }, |
| { "kind" : "IdRef", "name" : "BufferSize"} |
| ] |
| }, |
| { |
| "opname" : "PrintfBufferPointerPushConstant", |
| "opcode" : 40, |
| "operands" : [ |
| { "kind" : "IdRef", "name" : "Offset" }, |
| { "kind" : "IdRef", "name" : "Size"}, |
| { "kind" : "IdRef", "name" : "BufferSize"} |
| ] |
| } |
| ], |
| "operand_kinds" : [ |
| { |
| "category" : "BitEnum", |
| "kind" : "KernelPropertyFlags", |
| "enumerants" : [ |
| { |
| "enumerant" : "None", |
| "value" : "0x0" |
| }, |
| { |
| "enumerant" : "MayUsePrintf", |
| "value" : "0x1" |
| } |
| ] |
| } |
| ] |
| } |