)]}'
{
  "commit": "d9a3dd15a552cdded3bda4fcfa65f1341d2b5f92",
  "tree": "35593e3d960e31cc2f3dcb5c23ce603f8b61b2ea",
  "parents": [
    "3309b3377a23ed0796bd0bcd120b7718153757f0"
  ],
  "author": {
    "name": "Ben Vanik",
    "email": "ben.vanik@gmail.com",
    "time": "Mon May 18 13:47:39 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon May 18 13:47:39 2026 -0700"
  },
  "message": "[WebGPU] Add WebGPU HAL driver, WGSL compiler target, CTS, and sample. (#24463)\n\nThis adds the first end-to-end WebGPU target path for IREE: a compiler\nbackend that emits WGSL executables and a JavaScript-hosted HAL driver\nthat can submit those executables through the browser/Node WebGPU API\nfrom a freestanding wasm32 runtime. Most gaps now exist in\ninfrastructure and hosting applications, with the HAL being largely\ncomplete.\n\nThe important product boundary is that this is a WebGPU driver for the\nWeb platform, not an Emscripten port and not a native Dawn HAL. The C\nruntime owns IREE\u0027s HAL object model, synchronization contracts, command\nrecording, executable metadata, and queue ordering. JavaScript owns the\nambient WebGPU objects, Promise completion delivery, and the import\nmodule that maps integer wasm handles to real\nGPUAdapter/GPUDevice/GPUBuffer/GPUQueue objects.\n\nThat split keeps the ABI narrow. All values crossing the wasm boundary\nare integers or pointers into wasm linear memory. WebGPU objects are\nrepresented as uint32 handles in a JS-side table, handle 0 is null, and\nasync WebGPU APIs complete through the JS proactor token ring introduced\nby the wasm runtime commit. The C side never gets a raw JS object and\nthe JS side does not need to understand HAL resources beyond the\ndeclared import ABI.\n\nThe driver uses an instruction-stream bridge instead of one wasm import\nper HAL command. HAL command buffers and one-shot queue operations\ncompile into compact uint32 instruction blocks. JavaScript walks those\nblocks in one bridge call, resolves dynamic bindings from a binding\ntable, reuses static bindings for cached recordings, batches encoder\ncommands, and submits pending GPUCommandBuffers at explicit\nqueue-surface boundaries. This makes the wasm/JS boundary a\ncommand-stream boundary instead of a per-command overhead cliff.\n\nThe runtime queue contract follows WebGPU\u0027s actual execution model.\nCPU-only operations can signal after their wait completes. GPU-submit\noperations wait, encode/submit work, register\nqueue.onSubmittedWorkDone(), and signal HAL semaphores only when WebGPU\nreports that submitted work is complete. Queue epochs and async\nfrontiers preserve causal ordering for downstream waits, while\nsubmitted-provenance tracking keeps FIFO waits from adding unnecessary\nhost-side round trips.\n\nWebGPU does not provide every primitive that IREE\u0027s HAL exposes\ndirectly. The driver internalizes those gaps instead of pushing them\nonto callers: fill uses a builtin WGSL compute shader, unaligned\ncopy/update paths fall back to a copy shader, executable loading creates\ncompute pipelines and bind group layouts from WGSL, and command\nexecution presents the usual HAL fill/copy/update/dispatch surface even\nthough WebGPU splits those operations across queue, encoder, and\ncompute-pass APIs.\n\nThe compiler side lowers through the existing SPIR-V path and translates\nSPIR-V to WGSL with Tint/Dawn. The serialized executable format is\n`webgpu-wgsl-fb`: a FlatBuffer containing WGSL shader modules plus\nper-export metadata such as entry point names, workgroup sizes, binding\nflags, constant counts, source/debug data, and the information the\nruntime needs to create pipelines and bind groups. The target is\nregistered as the `webgpu` device and `webgpu-spirv` executable backend.\n\nThe initial runtime support contract is intentionally narrow. WebGPU\nexposes one queue per device, so the driver currently routes through a\nsingle queue while keeping queue state isolated enough for future\nqueue[N] shaping. The JavaScript inline host can validate WGSL and run\nCTS-style entry points, but blocking C code cannot make JavaScript\nPromises settle while the same wasm thread is waiting. CTS expected\nfailures document those blocking-completion cases instead of pretending\nthey are implemented.\n\nThis commit includes:\n\n* A `webgpu` HAL driver with driver/device/allocator/buffer/semaphore/\nexecutable objects, executable cache, FD-backed file helpers,\nregistration module, and public driver creation API.\n* A C import ABI and JavaScript companion module for WebGPU object\nhandles, adapter/device requests, buffer mapping, command encoding,\npipeline creation, bind group creation, command-stream execution, cached\nrecordings, and queue.onSubmittedWorkDone() completion delivery.\n* A compact WebGPU command ISA and builder that records HAL commands\ninto block-backed uint32 streams with dynamic/static binding slots and\nautomatic encoder begin/end insertion.\n* Builtin WGSL fill/copy shaders used to provide HAL semantics where\nWebGPU has no native command or requires stricter alignment than HAL\ncallers expose.\n* A `webgpu-spirv` compiler plugin that reuses SPIR-V codegen, prepares\nSPIR-V for WebGPU constraints, translates with Tint/Dawn, and packages\nWGSL plus executable metadata into `webgpu-wgsl-fb`.\n* HAL CTS wiring for the wasm32-wasi WebGPU path, including the Node\n`webgpu` package loader, WASI preopen/output setup, and expected\nfailures for blocking-completion cases that the inline host cannot yet\nsatisfy.\n* A WebGPU hello-world sample that builds a VMFB, dumps generated WGSL,\nand validates that WGSL through Dawn\u0027s WebGPU implementation.\n* Build-system integration for Bazel and CMake, including generated\nCMake targets and explicit selection of the WebGPU SPIR-V compiler\ntarget.\n\nThe CTS coverage exercises the runtime side under wasm32-wasi with the\nJS WebGPU bridge. The passing coverage includes buffer, command buffer,\ncore, file, and queue CTS groups, with expected failures kept to the\noperations that require a blocking C wait while JavaScript Promise\ncompletions are still pending on the same inline host.\n\nTogether with the wasm runtime commit below it, this establishes the\nfirst coherent WebGPU bring-up slice: IREE can generate WGSL for WebGPU,\npackage it in a HAL executable format, create WebGPU pipelines from that\nexecutable, validate a hello-world shader end to end, and run meaningful\nHAL CTS coverage through the same wasm/JS bridge that applications will\nuse. Future changes will build tooling and samples that run VMFB\nprograms.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e146d92c13247f74f073266451e3e94b27c28dd6",
      "old_mode": 33188,
      "old_path": ".gitignore",
      "new_id": "a8ab28fe5b37564cbfaa69ad465e440d6b464f92",
      "new_mode": 33188,
      "new_path": ".gitignore"
    },
    {
      "type": "modify",
      "old_id": "3dfc1ca270c34fefe2171034c9efbdb98b45c230",
      "old_mode": 33188,
      "old_path": "MODULE.bazel",
      "new_id": "7bcb75df170f1c89b77cf3640e29f5710d629ffb",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "2990f85bc98a27192e357a92e5d85a7a1aa923a1",
      "old_mode": 33188,
      "old_path": "build_tools/bazel/default_compiler_plugins.bzl",
      "new_id": "0c047ccdb6d068d95b2751db513a8de636862aae",
      "new_mode": 33188,
      "new_path": "build_tools/bazel/default_compiler_plugins.bzl"
    },
    {
      "type": "modify",
      "old_id": "3d292b071d5c5cf26335adec4f4386ad982131c6",
      "old_mode": 33188,
      "old_path": "build_tools/bazel/extensions.bzl",
      "new_id": "dc3d8a75c3892da3f700be9a8644f3b74c17eb71",
      "new_mode": 33188,
      "new_path": "build_tools/bazel/extensions.bzl"
    },
    {
      "type": "modify",
      "old_id": "9a085e45dfbde49f3f39b156c738d7a61d3b2b1f",
      "old_mode": 33188,
      "old_path": "build_tools/bazel/iree.bazelrc",
      "new_id": "0e0b6071141232d5da096545c981d35679abdce4",
      "new_mode": 33188,
      "new_path": "build_tools/bazel/iree.bazelrc"
    },
    {
      "type": "modify",
      "old_id": "d27fe2084f3d263574238f8496df7559159b004f",
      "old_mode": 33188,
      "old_path": "build_tools/bazel/iree_hal_cts_test_suite.bzl",
      "new_id": "1aeecf2ecc152077ea90ff84fff27c6a2069cc23",
      "new_mode": 33188,
      "new_path": "build_tools/bazel/iree_hal_cts_test_suite.bzl"
    },
    {
      "type": "modify",
      "old_id": "24065ff71543612c46b4f35afab0fe2f02d19e3c",
      "old_mode": 33261,
      "old_path": "build_tools/bin/iree-bazel-configure",
      "new_id": "b272d4d125fa431d7cd7db8262d31f65c266c8ee",
      "new_mode": 33261,
      "new_path": "build_tools/bin/iree-bazel-configure"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2dfe5c32ba002e79ef78894742a52bf1fb631144",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/WebGPUSPIRV/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "64b6b4cbe30947bb193b50c4349793c9b6acb36a",
      "old_mode": 33188,
      "old_path": "compiler/plugins/target/WebGPUSPIRV/CMakeLists.txt",
      "new_id": "dccb51615446b763fba96ad8d7bdc487c17deeb0",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/WebGPUSPIRV/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "25574eb27fd91c9b134f8d790989032850625378",
      "old_mode": 33188,
      "old_path": "compiler/plugins/target/WebGPUSPIRV/SPIRVToWGSL.cpp",
      "new_id": "a25ad5a6946d42e2e3e02552e631d0c52921614b",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/WebGPUSPIRV/SPIRVToWGSL.cpp"
    },
    {
      "type": "modify",
      "old_id": "8298647cbc5f950e847ce0b6ec156867509e025f",
      "old_mode": 33188,
      "old_path": "compiler/plugins/target/WebGPUSPIRV/WebGPUSPIRVTarget.cpp",
      "new_id": "b0ac676e028a480fc0c6b6b264d56e99fef871c1",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/WebGPUSPIRV/WebGPUSPIRVTarget.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0df23c9ef395e6c99bc3a5e82423e2715d00405e",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/WebGPUSPIRV/dawn/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "912790226365136af6cfa046660372eb8c114779",
      "old_mode": 33188,
      "old_path": "compiler/plugins/target/WebGPUSPIRV/spirv-headers/CMakeLists.txt",
      "new_id": "f4ba951698d2e760a9b4da9b67a71c7e1e7e7634",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/WebGPUSPIRV/spirv-headers/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "1bc6e6d18e96add0fc4501fe6dd52558431beb48",
      "old_mode": 33188,
      "old_path": "compiler/plugins/target/WebGPUSPIRV/spirv-tools/CMakeLists.txt",
      "new_id": "ccd8ff0605dacb22ca796251e94d16ba7370b446",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/WebGPUSPIRV/spirv-tools/CMakeLists.txt"
    },
    {
      "type": "delete",
      "old_id": "c0e3e4c19964f1f3de1ade799d7ca37624e7292b",
      "old_mode": 33188,
      "old_path": "compiler/plugins/target/WebGPUSPIRV/tint/CMakeLists.txt",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "f58e9a10964a3f384387903e1b479e76087db817",
      "old_mode": 33188,
      "old_path": "configure_bazel.py",
      "new_id": "93ddeb9f84b8a00f8bb718f62836f1aeb48c90e6",
      "new_mode": 33188,
      "new_path": "configure_bazel.py"
    },
    {
      "type": "modify",
      "old_id": "98b636afeae5d5ab1d859ef087e0f65a88c992ca",
      "old_mode": 33188,
      "old_path": "docs/website/docs/developers/building/bazel.md",
      "new_id": "6f7b1a689e51721a9e04fc80dd3e46e81fed8b05",
      "new_mode": 33188,
      "new_path": "docs/website/docs/developers/building/bazel.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "41da5a4eda346e2d15d65b79616e6e4d0645943f",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f1c9c52065f66f0c9439cc4e5588d8013f18081a",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "36d6a1d78378b7197ad991236ad04c0d78048baf",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/api.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f5e6f129cadc42bbbdedb1ae9790cb7394acd298",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/cts/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f645bc1b6bbfeef38d4d3d825f2f66748e8838e6",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/cts/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9e8f9d2496ca4fc128ae2aaf22f13410e8437fc9",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/cts/backends.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "848c2bde36f8eddc206622901bfd2b8c4fa73e33",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/cts/webgpu_cts_main.mjs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "98cc2bf363f16f8ec6957f9d7332cca978e5d7e6",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/handle_table.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bda44222b2e090ccc4fc5ca12b792ab94c1e94cc",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/handle_table.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4bd1f1191e1628fca93c76373074fbc9bb3c1043",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/handle_table_test.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8bf21be9a693d5e482eae00cfdedbddd5f5f10a5",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/registration/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "159b125c2684986f1d81b218b8d80a1e6d740462",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/registration/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4f58e16caf68cc4c52e004d044b55be637fbd0d8",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/registration/driver_module.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "25b7c1a705f85c4e295f8a70c0b95f9054684135",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/registration/driver_module.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a44ff6ca71ddeeabf325b0e6d2d7669a2ecf4388",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7232fccfced2ba50091ad1ba92c84aea7c25e76b",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_allocator.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5fa01c9f5935592f94c15906832009d8a2439344",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_allocator.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d844f7b6c3fe618a69d0ded35cc993673fc5c424",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_buffer.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b716b8729f383b4fec9e4fcf4338a56f9370f6ac",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_buffer.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6a81191a3f0918326c99889dbfbbc935d085187f",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_builder.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2234a7ff67243309f1866a5248c63b8e2064487b",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_builder.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c96774aaedbb8ff776b76278fc8fc809670f3c54",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_builtins.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "974b23b6b3422f711b709dece75d80fa8740b380",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_builtins.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5ca830557501a9c48edc78abf2dc7b58d2f7a2e9",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_command_buffer.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a057d8934bdd4b0807d2386509d5aee893db1314",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_command_buffer.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "56de0cda304575f078e06982f319e7bd223a562b",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_device.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b9208e2c2719320a4c0927f091bb452bcc98c990",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_device.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3b5f18be256548a99bcf88e5908f7bf04fe6b9c6",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_driver.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "84f47d4415a6b60b41d4c3d4b0313a5f7a274b99",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_driver.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bfe9cc005cde5d3644a5d40b741f580a2985380e",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_executable.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "50639b65f801b0aa5fa09e5d8bbad315f6ab9d2d",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_executable.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "14dc22c7d5ae2c93f562d156b8e969cce6665267",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_executable_cache.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7dc5112711ac64c89a8d178919465a33d5827b68",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_executable_cache.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1225790242af7926687e221db368f4bb5a9c1900",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_fd_file.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "597d755413ead8386e8a09dc47c8858f4fe67b7f",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_fd_file.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4bd31a7f404afaf7c7caa9f6774fb3f4817d2a58",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_imports.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5ab20c77292b86cd53ccb0b07d1aaae91aebd6c6",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_imports.mjs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "db1aeb810e2ac5d770c28715884240f300cde59d",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_isa.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "38578d07ecb91e6d59d4ed9bb9cc07ed65a4a848",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_queue.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1ba136d7fd92753c1aaa12db52d4410b8dd03581",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_queue.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d032a5de4763daaf0e20bf7066b12bc64b18eee5",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_semaphore.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8423d6362f547af5361854c94758bd54a524f5be",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/webgpu/webgpu_semaphore.h"
    },
    {
      "type": "modify",
      "old_id": "accdaa150a4c12fee91ec667490b4ed40665cdca",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/schemas/webgpu_executable_def.fbs",
      "new_id": "a9ed1832c2daab85aba6f38b68e7fc694c527b44",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/schemas/webgpu_executable_def.fbs"
    },
    {
      "type": "modify",
      "old_id": "0a03b5d53bfed26511d48c565bfcabdc0e1655bb",
      "old_mode": 33188,
      "old_path": "samples/CMakeLists.txt",
      "new_id": "0dfdc27a70a223ed8bb598f6cf2200cfc2f3473e",
      "new_mode": 33188,
      "new_path": "samples/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "29675991bf408dd95a0814d7ce259575cab5b782",
      "new_mode": 33188,
      "new_path": "samples/webgpu/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2ad9e9c593b36b5b126c77b99d6b6c494dc2554f",
      "new_mode": 33188,
      "new_path": "samples/webgpu/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "54b9869da94f8e91b65882325693aeeff73c8dd7",
      "new_mode": 33188,
      "new_path": "samples/webgpu/hello_world/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "529f4f0d0c7ea5982f6b21b9036ce320ee0ab6f2",
      "new_mode": 33188,
      "new_path": "samples/webgpu/hello_world/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "185eaf1de68e5eb44425df3a1f123beb3c7ac13f",
      "new_mode": 33188,
      "new_path": "samples/webgpu/hello_world/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d81674d5ef1368e58b92cabd2797a9908651298e",
      "new_mode": 33188,
      "new_path": "samples/webgpu/hello_world/hello_world.mlir"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "aa42aa09bb9ba54b9610393045212746c876d6d5",
      "new_mode": 33188,
      "new_path": "samples/webgpu/hello_world/validate_wgsl.mjs"
    }
  ]
}
