)]}'
{
  "commit": "e24089da7b4b0fc8e42fec5f7731ea55589bccff",
  "tree": "b3e06c7f947f0354a5f619e8edbf75a78907d245",
  "parents": [
    "45a3eb41aa536002306af7ff1d52647e9af22855"
  ],
  "author": {
    "name": "Scott Todd",
    "email": "scotttodd@google.com",
    "time": "Mon Jun 12 11:31:33 2023 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jun 12 11:31:33 2023 -0700"
  },
  "message": "[WebGPU] Async, loop-based invoke and output. (#13962)\n\nRedo of https://github.com/openxla/iree/pull/13820, which was closed\r\nbecause GitHub is silly.\r\n\r\n---\r\n\r\nNow that https://github.com/openxla/iree/pull/13669 added support for\r\n`iree_loop_wait_all()` to `iree_loop_emscripten`, this builds on the\r\nwork that https://github.com/openxla/iree/pull/11017 started to convert\r\nthe sample WebGPU application to be fully asynchronous[1].\r\n\r\nThe code _should_ support multiple return values, but I ran into\r\nhttps://github.com/openxla/iree/issues/13809 while working on this.\r\n\r\n^[1]: `iree_hal_semaphore_wait` is still technically synchronous, see\r\nthe notes in the source code",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d26c00a02f8494d1dc79da98022edc4768473751",
      "old_mode": 33188,
      "old_path": "experimental/web/sample_webgpu/CMakeLists.txt",
      "new_id": "61c1641352f10e2382eeda77d2f4088c0b0644e8",
      "new_mode": 33188,
      "new_path": "experimental/web/sample_webgpu/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "58dafa37b198cf4128c57ce6c0c041cb694e7ef1",
      "old_mode": 33261,
      "old_path": "experimental/web/sample_webgpu/build_sample.sh",
      "new_id": "4bf7af958a653fca5d8ba23361826bde2153c06a",
      "new_mode": 33261,
      "new_path": "experimental/web/sample_webgpu/build_sample.sh"
    },
    {
      "type": "modify",
      "old_id": "949d98b78f34e6f2a845df2a8ef8cadf42f2d197",
      "old_mode": 33188,
      "old_path": "experimental/web/sample_webgpu/index.html",
      "new_id": "62c4816bb83fdec64eff7cd7626876815eb04cac",
      "new_mode": 33188,
      "new_path": "experimental/web/sample_webgpu/index.html"
    },
    {
      "type": "modify",
      "old_id": "e97afef76a91e4d0ba9fc2bb110fbe6c973b49d7",
      "old_mode": 33188,
      "old_path": "experimental/web/sample_webgpu/iree_api_webgpu.js",
      "new_id": "979728639eb5df2bd4bdc146bc3c7fbc38021d74",
      "new_mode": 33188,
      "new_path": "experimental/web/sample_webgpu/iree_api_webgpu.js"
    },
    {
      "type": "modify",
      "old_id": "0e2ac66888ac50e12516be9e447cdcda4b386a47",
      "old_mode": 33188,
      "old_path": "experimental/web/sample_webgpu/main.c",
      "new_id": "d585c9ec670605960e96d92ee211744a5cd07f26",
      "new_mode": 33188,
      "new_path": "experimental/web/sample_webgpu/main.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab82f976d4803ec83ae08059d64b371f968bdd7a",
      "new_mode": 33188,
      "new_path": "experimental/web/sample_webgpu/multiple_results.mlir"
    }
  ]
}
