{
  "revision" : 1,
  "instructions" : [
    {
      "opname" : "Kernel",
      "opcode" : 1,
      "operands" : [
        { "kind" : "IdRef", "name" : "Kernel" },
        { "kind" : "IdRef", "name" : "Name" }
      ]
    },
    {
      "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" }
      ]
    }
  ]
}
