)]}'
{
  "commit": "78fff7bf05e787a29cfd37a037c2cb63a55e923a",
  "tree": "12fbe8f9230dca42e4b626ec56b0451c01702a7a",
  "parents": [
    "5cbb350dba4f57fcc3912e3708b1ed8bfb979a2f"
  ],
  "author": {
    "name": "Sunny Sachanandani",
    "email": "sunnyps@chromium.org",
    "time": "Thu Oct 09 17:36:14 2025 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Oct 09 17:36:14 2025 -0700"
  },
  "message": "[metal] Implement commands scheduled future\n\nWe need a thread-safe way to call waitUntilScheduled for a Dawn device\nfor DrDC + Graphite on Mac. The existing WaitForCommandsToBeScheduled()\nmethod isn\u0027t thread-safe if the implicit_device_synchronization feature\nis not enabled for the Dawn device e.g. for WebGPU.\n\nThis CL adds a `SharedTextureMemoryMetalEndAccessState` extension struct\nthat contains a `commandsScheduledFuture`. This future is ready when\nthe Metal command buffer submitted on `EndAccess` is in scheduled state.\nThis future can be waited on any thread with wgpu::Instance::WaitAny.\n\nBug: chromium:444702048\nChange-Id: Icd97c05d6274d5cf9f607a0019e1d9ec6a6a6964\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/265038\nReviewed-by: Loko Kung \u003clokokung@google.com\u003e\nCommit-Queue: Sunny Sachanandani \u003csunnyps@chromium.org\u003e\nAuto-Submit: Sunny Sachanandani \u003csunnyps@chromium.org\u003e\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c2cb0ab4cbddd38498da9f0777c645b7065bb561",
      "old_mode": 33188,
      "old_path": "include/dawn/native/MetalBackend.h",
      "new_id": "61fb64fcaeec2fd21b0da9eb2cbba5288d1bc1ae",
      "new_mode": 33188,
      "new_path": "include/dawn/native/MetalBackend.h"
    },
    {
      "type": "modify",
      "old_id": "3539a3a92a38234fc7648d8c00e3dc0a73724333",
      "old_mode": 33188,
      "old_path": "src/dawn/dawn.json",
      "new_id": "00318f4c22fd34fc29eede647ac716abc6852e28",
      "new_mode": 33188,
      "new_path": "src/dawn/dawn.json"
    },
    {
      "type": "modify",
      "old_id": "dc23bf1f4f16afea63cff833549f8b98920f6cae",
      "old_mode": 33188,
      "old_path": "src/dawn/native/metal/QueueMTL.h",
      "new_id": "a00dfcb57ae1d0cfbc2cfd15f388d47f4818c2fb",
      "new_mode": 33188,
      "new_path": "src/dawn/native/metal/QueueMTL.h"
    },
    {
      "type": "modify",
      "old_id": "6b358550ca2e174a2a1fd486b51a77dbe8dbe513",
      "old_mode": 33188,
      "old_path": "src/dawn/native/metal/QueueMTL.mm",
      "new_id": "161e64d02cca622fb101f947c2ef7883b4833267",
      "new_mode": 33188,
      "new_path": "src/dawn/native/metal/QueueMTL.mm"
    },
    {
      "type": "modify",
      "old_id": "88870bde246f574cc68f808063da63c176df9144",
      "old_mode": 33188,
      "old_path": "src/dawn/native/metal/SharedTextureMemoryMTL.mm",
      "new_id": "95aebbf475819c5a026d84b675b0bf29d8f5c5d8",
      "new_mode": 33188,
      "new_path": "src/dawn/native/metal/SharedTextureMemoryMTL.mm"
    },
    {
      "type": "modify",
      "old_id": "a903c8366faa0d1a2781e243dce7b82aa1913dac",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/white_box/SharedTextureMemoryTests_apple.mm",
      "new_id": "ac5b229bd00b18296b20c0fbc0f27edda4931e17",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/white_box/SharedTextureMemoryTests_apple.mm"
    }
  ]
}
