Skip to content

Instantly share code, notes, and snippets.

@Birch-san
Created June 18, 2022 16:42
Show Gist options
  • Save Birch-san/cd6aad79e5a671584d24d008b8a55c16 to your computer and use it in GitHub Desktop.
Save Birch-san/cd6aad79e5a671584d24d008b8a55c16 to your computer and use it in GitHub Desktop.
compile scatter on iree/vulkan
# see https://github.com/google/iree/issues/9361,
# https://github.com/google/iree/pull/9378
from iree import compiler, runtime as rt
rt.flags.parse_flags("--task_topology_group_count=8")
CODE = """
#loc0 = loc(unknown)
module @jit_prim_fun.12 {
func.func public @main(%arg0: tensor<1x1xi32> loc(unknown), %arg1: tensor<1xi32> loc(unknown), %arg2: tensor<1xi32> loc(unknown)) -> tensor<1x1xi32> {
%0 = "mhlo.scatter"(%arg0, %arg1, %arg2) ({
^bb0(%arg3: tensor<i32> loc(unknown), %arg4: tensor<i32> loc(unknown)):
"mhlo.return"(%arg4) : (tensor<i32>) -> () loc(#loc1)
}) {indices_are_sorted = true, scatter_dimension_numbers = #mhlo.scatter<update_window_dims = [0], inserted_window_dims = [1], scatter_dims_to_operand_dims = [1]>, unique_indices = true} : (tensor<1x1xi32>, tensor<1xi32>, tensor<1xi32>) -> tensor<1x1xi32> loc(#loc1)
return %0 : tensor<1x1xi32> loc(#loc0)
} loc(#loc0)
} loc(#loc0)
#loc1 = loc("jit(scatter)/jit(main)/scatter[update_consts=() dimension_numbers=ScatterDimensionNumbers(update_window_dims=(0,), inserted_window_dims=(1,), scatter_dims_to_operand_dims=(1,)) indices_are_sorted=True unique_indices=True mode=GatherScatterMode.FILL_OR_DROP]"("/Users/birch/anaconda3/envs/torch-nightly/lib/python3.9/site-packages/transformers/models/bart/modeling_flax_bart.py":926:1))
"""
extra_args = ["--mlir-print-ir-after-failure"]
# realistically I'd recommend the following arguments too
# https://github.com/nod-ai/SHARK/blob/1186d7c58e6046aea6a6115c608dbd77728e7aca/shark/iree_utils.py#L93-L96
# but the problem reproduces without them anyway
extra_args += [
"--iree-llvm-target-triple=arm64-apple-darwin21.5.0",
"--iree-flow-demote-i64-to-i32",
"--iree-vulkan-target-triple=m1-moltenvk-macos",
"--iree-llvm-target-cpu-features=host",
"--iree-mhlo-demote-i64-to-i32=false"]
iree_binary = compiler.compile_str(
CODE, target_backends=["vulkan"], input_type="mhlo", extra_args=extra_args)
@Birch-san
Copy link
Author

succeeds when compiled via iree-org/iree@7c42a98

output is:

b'PK\x03\x04-\x00\x00\x00\x00\x00\x00\x00!\x007\xe9\x98\xfe\xff\xff\xff\xff\xff\xff\xff\xff\t\x00\x19\x00module.fb\xca\xfe\x01\x00\x00\x01\x00\x10\x00\xfc\x10\x00\x00\x00\x00\x00\x00\xfc\x10\x00\x00\x00\x00\x00\x00\xfc\x10\x00\x00\x08\x00\x00\x00IREE0\xef\xff\xff(\x00\x00\x00$\x04\x00\x00P\x04\x00\x00\x94\x04\x00\x00\x0c\x04\x00\x00\x98\x04\x00\x00\xd8\x0c\x00\x00\x00\x00\x03\x00\xec\x0c\x00\x00\x18\x00\x00\x00\x0f\x00\x00\x00jit_prim_fun_12\x00z\xef\xff\xff\x0c\x00\x00\x00\x10\x00\x00\x00\x1c\x00\x00\x00\x03\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x000\x02\x00\x00$\x02\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\xd4\x00\x00\x00\x04\x00\x00\x00\xd0\xef\xff\xff\x04\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\r\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x17\x00\x00\x00\x01\x00\x00\x00\x1e\x00\x00\x00\x01\x00\x00\x00*\x00\x00\x00\x01\x00\x00\x001\x00\x00\x00\x01\x00\x00\x008\x00\x00\x00\x01\x00\x00\x00L\x00\x00\x00\x01\x00\x00\x00S\x00\x00\x00\x01\x00\x00\x00v\x00\x00\x00\x01\x00\x00\x00\x7f\x00\x00\x00\x01\x00\x00\x00\x86\x00\x00\x00\x01\x00\x00\x00\xa0\x00\x00\x00\x01\x00\x00\x00\xab\x00\x00\x00\x01\x00\x00\x00\xba\x00\x00\x00\x01\x00\x00\x00\xc5\x00\x00\x00\x01\x00\x00\x00\xcc\x00\x00\x00\x01\x00\x00\x00\xee\x00\x00\x00\x01\x00\x00\x00\xf6\x00\x00\x00\x01\x00\x00\x00\xfe\x00\x00\x00\x01\x00\x00\x00\t\x01\x00\x00\x02\x00\x00\x00\x9c\xf0\xff\xff\x04\x00\x00\x00\'\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x0e\x00\x00\x00\x01\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00"\x00\x00\x00\x01\x00\x00\x00)\x00\x00\x00\x01\x00\x00\x004\x00\x00\x00\x02\x00\x00\x00;\x00\x00\x00\x02\x00\x00\x00B\x00\x00\x00\x02\x00\x00\x00I\x00\x00\x00\x01\x00\x00\x00P\x00\x00\x00\x01\x00\x00\x00[\x00\x00\x00\x01\x00\x00\x00b\x00\x00\x00\x01\x00\x00\x00m\x00\x00\x00\x01\x00\x00\x00x\x00\x00\x00\x02\x00\x00\x00\x7f\x00\x00\x00\x02\x00\x00\x00\xa0\x00\x00\x00\x01\x00\x00\x00\xac\x00\x00\x00\x02\x00\x00\x00\xba\x00\x00\x00\x02\x00\x00\x00\xc8\x00\x00\x00\x02\x00\x00\x00\xde\x00\x00\x00\x02\x00\x00\x00\xfe\x00\x00\x00\x02\x00\x00\x00\x0c\x01\x00\x00\x02\x00\x00\x00"\x01\x00\x00\x02\x00\x00\x00B\x01\x00\x00\x02\x00\x00\x00P\x01\x00\x00\x02\x00\x00\x00f\x01\x00\x00\x01\x00\x00\x00x\x01\x00\x00\x01\x00\x00\x00\x84\x01\x00\x00\x01\x00\x00\x00\x94\x01\x00\x00\x01\x00\x00\x00\xc6\x01\x00\x00\x01\x00\x00\x00\xdc\x01\x00\x00\x01\x00\x00\x00\xee\x01\x00\x00\x01\x00\x00\x00\xfa\x01\x00\x00\x01\x00\x00\x00\x08\x02\x00\x00\x02\x00\x00\x00(\x02\x00\x00\x02\x00\x00\x00.\x02\x00\x00\x01\x00\x00\x00\xe0\xf1\xff\xff\x90\x00\x00\x00\xc6\xf1\xff\xff\x0c\x00\x00\x00\x9e\x03\x00\x00\x01\x00\x00\x00t\x00\x00\x00/Users/birch/anaconda3/envs/torch-nightly/lib/python3.9/site-packages/transformers/models/bart/modeling_flax_bart.py\x00\x00\x00\x00\x01\x01\x00\x00jit(scatter)/jit(main)/scatter[update_consts=() dimension_numbers=ScatterDimensionNumbers(update_window_dims=(0,), inserted_window_dims=(1,), scatter_dims_to_operand_dims=(1,)) indices_are_sorted=True unique_indices=True mode=GatherScatterMode.FILL_OR_DROP]\x00\x00\x00l\xf3\xff\xff\x04\x00\x00\x00\x02\x00\x00\x00\x0b\x00\x00\x00H\x08\x00\x004\x08\x00\x00\x14\x08\x00\x00\xf8\x07\x00\x00\xd4\x07\x00\x00\xb0\x07\x00\x00\x84\x07\x00\x00h\x07\x00\x00H\x07\x00\x00 \x07\x00\x00\x04\x07\x00\x00\x11\x00\x00\x00\xb4\x06\x00\x00d\x06\x00\x00\x04\x06\x00\x00\x9c\x05\x00\x00<\x05\x00\x00\xe4\x04\x00\x00\x80\x04\x00\x000\x04\x00\x00\xe4\x03\x00\x00|\x03\x00\x00\x0c\x03\x00\x00\xa4\x02\x00\x004\x02\x00\x00\xdc\x01\x00\x00x\x01\x00\x00\x0c\x01\x00\x00\xa0\x00\x00\x00\x02\x00\x00\x00L\x00\x00\x00\x18\x00\x00\x00\x04\x00\x00\x00\xd4\x07\x00\x00\xe8\x07\x00\x00\x08\x08\x00\x00 \x08\x00\x00\xfe\xf3\xff\xff \x00\x00\x00\x08\x00\x00\x00\x01\x00\x00\x00H\xf4\xff\xff\x04\x00\x00\x00\x04\x00\x00\x000v_v\x00\x00\x00\x00\x06\x00\x00\x00__init\x00\x00@\xf4\xff\xff<\x00\x00\x00\x04\x00\x00\x00:\xf4\xff\xff\x18\x00\x00\x00$\x00\x00\x00\x04\x00\x00\x00\x06\x00\x00\x000rrr_r\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00main\x00\x00\x00\x00\x8c\xf4\xff\xff@\x00\x00\x00\x04\x00\x00\x00\x86\xf4\xff\xff\x1c\x00\x00\x00(\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x000riCrD_r\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\t\x00\x00\x00\x1c\x00\x00\x00hal.executable_layout.create\x00\x00\x00\x00\xf4\xf4\xff\xffH\x00\x00\x00\x04\x00\x00\x00\xee\xf4\xff\xff\x1c\x00\x00\x000\x00\x00\x00\x04\x00\x00\x00\n\x00\x00\x000rrrrCrD_r\x00\x00\x05\x00\x00\x00\x07\x00\x00\x00\n\x00\x00\x00\n\x00\x00\x00\n\x00\x00\x00\t\x00\x00\x00\x01\x00\x00\x00\x08\x00\x00\x00\x15\x00\x00\x00hal.executable.create\x00\x00\x00\\\xf5\xff\xff@\x00\x00\x00\x04\x00\x00\x00V\xf5\xff\xff\x18\x00\x00\x00$\x00\x00\x00\x04\x00\x00\x00\x07\x00\x00\x000rrr_ii\x00\x03\x00\x00\x00\x07\x00\x00\x00\n\x00\x00\x00\n\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00hal.device.query.i32\x00\x00\x00\x00\xbc\xf5\xff\xff4\x00\x00\x00\x04\x00\x00\x00\xb6\xf5\xff\xff\x18\x00\x00\x00\x1c\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x000r_r\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00hal.device.allocator\x00\x00\x00\x00\x10\xf6\xff\xff@\x00\x00\x00\x04\x00\x00\x00\n\xf6\xff\xff\x1c\x00\x00\x00(\x00\x00\x00\x04\x00\x00\x00\t\x00\x00\x000riCiiD_r\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00 \x00\x00\x00hal.descriptor_set_layout.create\x00\x00\x00\x00|\xf6\xff\xff@\x00\x00\x00\x04\x00\x00\x00\x80\xf6\xff\xff\x18\x00\x00\x00\x04\x00\x00\x00\t\x00\x00\x000rriiii_v\x00\x00\x00\x06\x00\x00\x00\x05\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00hal.command_buffer.dispatch\x00\xe0\xf6\xff\xff<\x00\x00\x00\x04\x00\x00\x00\xe4\xf6\xff\xff\x1c\x00\x00\x00\x04\x00\x00\x00\x0c\x00\x00\x000rriCirIID_v\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\x00\x00\x00hal.command_buffer.push_descriptor_set\x00\x00L\xf7\xff\xff4\x00\x00\x00\x04\x00\x00\x00P\xf7\xff\xff\x14\x00\x00\x00\x04\x00\x00\x00\x07\x00\x00\x000riii_v\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00$\x00\x00\x00hal.command_buffer.execution_barrier\x00\x00\x00\x00\xb0\xf7\xff\xff(\x00\x00\x00\x04\x00\x00\x00\xb4\xf7\xff\xff\x14\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x000r_v\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00hal.command_buffer.end\x00\x00\xf8\xf7\xff\xff(\x00\x00\x00\x04\x00\x00\x00\xfc\xf7\xff\xff\x14\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x000r_v\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00hal.command_buffer.begin\x00\x00\x00\x00D\xf8\xff\xff<\x00\x00\x00\x04\x00\x00\x00>\xf8\xff\xff\x18\x00\x00\x00$\x00\x00\x00\x04\x00\x00\x00\x06\x00\x00\x000rii_r\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x19\x00\x00\x00hal.command_buffer.create\x00\x00\x00\xa4\xf8\xff\xff4\x00\x00\x00\x04\x00\x00\x00\x9e\xf8\xff\xff\x18\x00\x00\x00\x1c\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x000r_r\x00\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x16\x00\x00\x00hal.buffer_view.buffer\x00\x00\xf8\xf8\xff\xff<\x00\x00\x00\x04\x00\x00\x00\xfc\xf8\xff\xff\x18\x00\x00\x00\x04\x00\x00\x00\n\x00\x00\x000rriiCID_v\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00hal.buffer_view.assert\x00\x00T\xf9\xff\xffD\x00\x00\x00\x04\x00\x00\x00N\xf9\xff\xff\x1c\x00\x00\x00,\x00\x00\x00\x04\x00\x00\x00\t\x00\x00\x000riiCID_r\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x16\x00\x00\x00hal.buffer_view.create\x00\x00\xb8\xf9\xff\xff@\x00\x00\x00\x04\x00\x00\x00\xbc\xf9\xff\xff\x18\x00\x00\x00\x04\x00\x00\x00\t\x00\x00\x000rrrIii_v\x00\x00\x00\x06\x00\x00\x00\x03\x00\x00\x00\n\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00hal.buffer.assert\x00\x00\x00\x14\xfa\xff\xff,\x00\x00\x00\x04\x00\x00\x00\x18\xfa\xff\xff\x14\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x000rr_v\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00hal.ex.submit_and_wait\x00\x00`\xfa\xff\xff(\x00\x00\x00\x04\x00\x00\x00v\xfa\xff\xff\x14\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x000v_r\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x14\x00\x00\x00hal.ex.shared_device\x00\x00\x00\x00\xb8\xfa\xff\xff\x04\x00\x00\x00\n\x00\x00\x00!vm.buffer\x00\x00\xd0\xfa\xff\xff\x04\x00\x00\x00\x16\x00\x00\x00!hal.executable_layout\x00\x00\xf4\xfa\xff\xff\x04\x00\x00\x00\x0f\x00\x00\x00!hal.executable\x00\x10\xfb\xff\xff\x04\x00\x00\x00\x0b\x00\x00\x00!hal.device\x00(\xfb\xff\xff\x04\x00\x00\x00\x1a\x00\x00\x00!hal.descriptor_set_layout\x00\x00P\xfb\xff\xff\x04\x00\x00\x00\x13\x00\x00\x00!hal.command_buffer\x00p\xfb\xff\xff\x04\x00\x00\x00\x10\x00\x00\x00!hal.buffer_view\x00\x00\x00\x00\x90\xfb\xff\xff\x04\x00\x00\x00\x0b\x00\x00\x00!hal.buffer\x00\xa8\xfb\xff\xff\x04\x00\x00\x00\x0e\x00\x00\x00!hal.allocator\x00\x00\xc4\xfb\xff\xff\x04\x00\x00\x00\x03\x00\x00\x00i64\x00\xd4\xfb\xff\xff\x04\x00\x00\x00\x03\x00\x00\x00i32\x00\xf2\xfb\xff\xff`\x00\x00\x00\x00\x00\x00\x008\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\xfc\xff\xff\x04\x00\x00\x00\x15\x00\x00\x00hal.executable.format\x00\x00\x008\xfc\xff\xff\x04\x00\x00\x00\x0f\x00\x00\x00vulkan-spirv-fb\x00T\xfc\xff\xff\x04\x00\x00\x00\x06\x00\x00\x00tensor\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00h\x02\x00\x00\x11\x00\x08\x00h\x02\x00\x00\x10\x01\x00\x00\x06\x00\x05\x00x\x03\x00\x00\r\x1c\x00\x00\x00\x00\x00\r\r\x00\x00\x00\x01\x00\x0c\x02\x00\x0e\x04\x00\r\x02\x00\x00\x00\x03\x00\r\x11\x00\x00\x00\x06\x00\r\x03\x00\x00\x00\x07\x00\x0f\x04\x00\x00\x00\x00\x00\x00\x00\x08\x00\r\x10\x00\x00\x00\n\x00\r\x03\x0c\x00\x00\x0b\x00\r \x00\x00\x10\x0c\x00\r\x01\x00\x00\x00\r\x00\x0f\x01\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x10\x00\x08\x00\x00\x00\x00\t\x00\x00\x00\x03\x80\x08\x01\x00\x00\x00\x08\x00\x00\x00\x04\x80\x11\x03\x00\x00\x00\x05\x80Y\x04\x00\x00\x80\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x06\x00\x00\x80\x05\x80\x0c\x00\r\x00\x0e\x00\x0e\x00\x00\x00X\x00\x00\x00\x80\x00\x00\x00\x01\x00\x06\x80X\x05\x00\x00\x80\x00\x01\x00\x00\xc0\x01\x00\x00\x80X\r\x00\x00\x80\x00\x01\x00\x06\x80\x01\x00\x07\x80X\x02\x00\x00\x80\x00\x06\x00\x00\x80\x05\x80\x07\x80\x08\x00\n\x00\x0b\x00\x00\x00Y\x04\x00\x00\x80\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x05\x00\x01\x80\x05\x80\x0c\x00\r\x00\x0e\x00\x00\x00X\x05\x00\x00\x80\x00\x01\x00\x01\xc0\x01\x00\x01\x80X\x02\x00\x00\x80\x00\x06\x00\x01\x80\x05\x80\x07\x80\x08\x00\n\x00\x0b\x00\x00\x00Y\x04\x00\x00\x80\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x05\x00\x02\x80\x05\x80\x0c\x00\r\x00\x0e\x00\x00\x00X\x05\x00\x00\x80\x00\x01\x00\x02\xc0\x01\x00\x02\x80X\x02\x00\x00\x80\x00\x06\x00\x02\x80\x05\xc0\x07\xc0\x08\x00\n\x00\x0b\x00\x00\x00X\x06\x00\x00\x80\x00\x03\x00\x06\x80\x06\x00\x07\x00\x01\x00\x05\x80X\x07\x00\x00\x80\x00\x01\x00\x05\x80\x00\x00W\x10\x00\x94\x01\x00\x00\x00\x00\x00.\x02\x00\x00\x00\x00Y\n\x00\x00\x80\x00\x04\x00\xff\xff\xff\xff\xff\xff\x03\x00\x0f\x00\x05\x80\x03\xc0\x02\x00\x02\x00\x01\xc0\x04\x00\x08\x00\r\x00\x02\xc0\x04\x00\x08\x00\x03\x00\x00\x80\x04\x00\x08\x00\x00\x00X\x0b\x00\x00\x80\x00\x06\x00\x05\x80\x04\xc0\x02\x00\r\x00\r\x00\r\x00\x00\x00X\t\x00\x00\x80\x00\x04\x00\x05\x80\x00\x00\x01\x00\x02\x00\x00\x00X\x08\x00\x00\x80\x00\x01\x00\x05\x80\x00\x00X\x01\x00\x00\x80\x00\x02\x00\x06\xc0\x05\xc0\x00\x00Y\x03\x00\x00\x80\x00\x04\x00\xff\xff\xff\xff\xff\xff\x02\x00\x05\x00\x00\xc0\x0c\x00\r\x00\x0e\x00\x0e\x00\x01\x00\x00\x80Z\x00\x01\x00\x00\xc0[\x03\x002\x00device not supported in the compiled configuration\x00\x00\x00\x10\x00\x80\x10\x01\x80\r\x07\x00\x00\x00\x00\x00\r\x02\x00\x00\x00\x01\x00\x0c\x02\x00\r\x01\x00\x00\x00\x03\x00X\x00\x00\x00\x80\x00\x00\x00\x01\x00\x02\x80\x11\x01\x00\x00\x00\x03\x80\x11\x02\x00\x00\x00\x04\x80X\x0e\x00\x00\x80\x00\x03\x00\x02\x80\x03\xc0\x04\x80\x02\x00\x04\x00\x05\x003\x05\x00\x03\x00\x05\x00Y\x0c\x00\x00\x80\x03\x00\xff\xff\xff\xff\x03\x00\x08\x00\x02\x80\x03\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x01\x00\x03\x80\x1c\x04\x00\x05\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00Y\x10\x00\x00\x80\x00\x03\x00\xff\xff\xff\xff\x01\x00\x03\x00\x02\x80\x02\x00\x03\xc0\x01\x00\x03\x80\t\x00\x00\x00\x00\t\x00\x00\x00\x03\xc0W\x00\x00\xba\x00\x00\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\t\x00\x00\x00\x00\x80\x11\x00\x00\x00\x00\x03\x80Y\x0f\x00\x00\x80\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x05\x00\x02\xc0\x04\xc0\x03\xc0\x01\xc0\x00\xc0\x01\x00\x00\x80V\xfe\x00\x00\x00\x00\x00\x00V\xfe\x00\x00\x00\x00\x00\x00\t\x01\x00\x00\x00\x08\x00\x00\x00\x00\xc0Z\x00\x00\x00\x00\x00\x00\n\x00\x08\x00\x00\x00\x00\x00\x04\x00\x0e\x00\x14\x00\x00\x00\x00\x00\x00\x00\x04\x00\x0c\x00\x06\x00\x08\x00\x04\x00\n\x00\x0c\x00\x00\x00\x04\x00\x08\x00\x08\x00\x0c\x00\x04\x00\x08\x00\n\x00\x0c\x00\x04\x00\x00\x00\x08\x00\n\x00\x10\x00\x04\x00\x08\x00\x0c\x00\x1a\x00,\x00\x04\x00\x08\x00\x0c\x00\x10\x00\x18\x00\x00\x00\x14\x00\x1c\x00 \x00$\x00(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00PK\x03\x04-\x00\x00\x00\x00\x00\x00\x00!\x00\x98\xbfS\x86\xff\xff\xff\xff\xff\xff\xff\xff"\x00 \x00main_dispatch_0_vulkan_spirv_fb.fb\xca\xfe\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x10\x008\x03\x00\x00\x00\x00\x00\x008\x03\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00SPVE\xd8\xfc\xff\xff\x08\x00\x00\x00 \x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x0f\x00\x00\x00main_dispatch_0\x00\xbf\x00\x00\x00\x03\x02#\x07\x00\x00\x01\x00\x16\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x11\x00\x02\x00\x01\x00\x00\x00\n\x00\x0b\x00SPV_KHR_storage_buffer_storage_class\x00\x00\x00\x00\x0e\x00\x03\x00\x00\x00\x00\x00\x01\x00\x00\x00\x0f\x00\x07\x00\x05\x00\x00\x00\n\x00\x00\x00main_dispatch_0\x00\x10\x00\x06\x00\n\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x05\x00\x07\x00\x05\x00\x00\x00__resource_var_0_0_\x00\x05\x00\x07\x00\x06\x00\x00\x00__resource_var_0_1_\x00\x05\x00\x07\x00\x07\x00\x00\x00__resource_var_0_2_\x00\x05\x00\x06\x00\n\x00\x00\x00main_dispatch_0\x00G\x00\x04\x00\x03\x00\x00\x00\x06\x00\x00\x00\x04\x00\x00\x00H\x00\x05\x00\x02\x00\x00\x00\x00\x00\x00\x00#\x00\x00\x00\x00\x00\x00\x00G\x00\x03\x00\x02\x00\x00\x00\x02\x00\x00\x00G\x00\x04\x00\x05\x00\x00\x00!\x00\x00\x00\x00\x00\x00\x00G\x00\x04\x00\x05\x00\x00\x00"\x00\x00\x00\x00\x00\x00\x00G\x00\x04\x00\x06\x00\x00\x00!\x00\x00\x00\x01\x00\x00\x00G\x00\x04\x00\x06\x00\x00\x00"\x00\x00\x00\x00\x00\x00\x00G\x00\x04\x00\x07\x00\x00\x00!\x00\x00\x00\x02\x00\x00\x00G\x00\x04\x00\x07\x00\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x15\x00\x04\x00\x04\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x1d\x00\x03\x00\x03\x00\x00\x00\x04\x00\x00\x00\x1e\x00\x03\x00\x02\x00\x00\x00\x03\x00\x00\x00 \x00\x04\x00\x01\x00\x00\x00\x0c\x00\x00\x00\x02\x00\x00\x00;\x00\x04\x00\x01\x00\x00\x00\x05\x00\x00\x00\x0c\x00\x00\x00;\x00\x04\x00\x01\x00\x00\x00\x06\x00\x00\x00\x0c\x00\x00\x00;\x00\x04\x00\x01\x00\x00\x00\x07\x00\x00\x00\x0c\x00\x00\x00\x13\x00\x02\x00\t\x00\x00\x00!\x00\x03\x00\x08\x00\x00\x00\t\x00\x00\x00+\x00\x04\x00\x04\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00 \x00\x04\x00\r\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x14\x00\x02\x00\x14\x00\x00\x006\x00\x05\x00\t\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\xf8\x00\x02\x00\x0b\x00\x00\x00A\x00\x06\x00\r\x00\x00\x00\x0e\x00\x00\x00\x05\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00=\x00\x04\x00\x04\x00\x00\x00\x0f\x00\x00\x00\x0e\x00\x00\x00A\x00\x06\x00\r\x00\x00\x00\x10\x00\x00\x00\x06\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00=\x00\x04\x00\x04\x00\x00\x00\x11\x00\x00\x00\x10\x00\x00\x00A\x00\x06\x00\r\x00\x00\x00\x12\x00\x00\x00\x07\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00=\x00\x04\x00\x04\x00\x00\x00\x13\x00\x00\x00\x12\x00\x00\x00\xaa\x00\x05\x00\x14\x00\x00\x00\x15\x00\x00\x00\x0f\x00\x00\x00\x0c\x00\x00\x00\xa9\x00\x06\x00\x04\x00\x00\x00\x16\x00\x00\x00\x15\x00\x00\x00\x11\x00\x00\x00\x13\x00\x00\x00>\x00\x03\x00\x12\x00\x00\x00\x16\x00\x00\x00\xfd\x00\x01\x008\x00\x01\x00\x08\x00\x0c\x00\x04\x00\x08\x00PK\x01\x02\x1e\x03-\x00\x00\x00\x00\x00\x00\x00!\x007\xe9\x98\xfe\xff\xff\xff\xff\xff\xff\xff\xff\t\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xffmodule.fb\x01\x00\x18\x00\xfc\x10\x00\x00\x00\x00\x00\x00\xfc\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00PK\x01\x02\x1e\x03-\x00\x00\x00\x00\x00\x00\x00!\x00\x98\xbfS\x86\xff\xff\xff\xff\xff\xff\xff\xff"\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xffmain_dispatch_0_vulkan_spirv_fb.fb\x01\x00\x18\x008\x03\x00\x00\x00\x00\x00\x008\x03\x00\x00\x00\x00\x00\x00@\x11\x00\x00\x00\x00\x00\x00PK\x06\x06,\x00\x00\x00\x00\x00\x00\x00-\x00-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xbf\x00\x00\x00\x00\x00\x00\x00\xd8\x14\x00\x00\x00\x00\x00\x00PK\x06\x07\x00\x00\x00\x00\x97\x15\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00PK\x05\x06\x00\x00\x00\x00\x02\x00\x02\x00\xbf\x00\x00\x00\xff\xff\xff\xff\x00\x00'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment