)]}'
{
  "commit": "9d41fdf36977cca92361c6ae2769129bbaaafd9b",
  "tree": "189ab9b1d53f11edfdf5f92787617afb4560d1af",
  "parents": [
    "30d78a5d37c3963a4668d163e4e97c8d03cf8f5b"
  ],
  "author": {
    "name": "Shrek Shao",
    "email": "shrekshao@google.com",
    "time": "Tue Mar 24 12:51:39 2026 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Mar 24 12:51:39 2026 -0700"
  },
  "message": "WebGPU Backend: Implement SharedTextureMemory, SharedFence (Metal)\n\nAdds starting implementation of SharedTextureMemory, SharedFence\nin the webgpu backend (when inner backend is Metal). This CL should\nsetup framework and indicates future implementation route for other\ninner backends.\n\nNotes:\n- Pending Shared Access:\nOnly call wgpu.sharedTextureMemoryAccess in Texture::SynchronizeTextureBeforeUse if there is GPU Access.\n- Added webgpu::Texture::SynchronizeTextureBeforeUse and PrepareResourcesForSyncScope in webgpu::CommandBuffer to correctly track and sync texture states in frontend.\n- In metal a GetCommandsScheduledFuture is needed to get a future to wait when EndAccess is called. Since the public WGPUQueue API does not currently expose a way to retrieve a \"commands scheduled\" future, we do instanceWait on future returned by the inner queue onSubmittedWorkDone to block till the end of access. This is a CPU only wait.\n\nBug: 483147423\nChange-Id: I0d248d61c770e6a9fdbaec7ec72e9243d7bd363b\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/292155\nReviewed-by: Loko Kung \u003clokokung@google.com\u003e\nCommit-Queue: Shrek Shao \u003cshrekshao@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8c169db939989db00e202a49f1d4fc67354b0a54",
      "old_mode": 33188,
      "old_path": "src/dawn/dawn.json",
      "new_id": "1214e63dfd9b2ed3c056e65ca7096a0f2c02d4af",
      "new_mode": 33188,
      "new_path": "src/dawn/dawn.json"
    },
    {
      "type": "modify",
      "old_id": "5a2f61cafdd4a1cfa2cec448151541e13341ae37",
      "old_mode": 33188,
      "old_path": "src/dawn/native/BUILD.gn",
      "new_id": "c7d10d0d157a741f8b613438bf61f5280e4e7e66",
      "new_mode": 33188,
      "new_path": "src/dawn/native/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "ef61b489e62852ca69228ac3327e1101c087a7ea",
      "old_mode": 33188,
      "old_path": "src/dawn/native/EventManager.cpp",
      "new_id": "738eb2f4fcb2baf165f82ee75d6993797ce39961",
      "new_mode": 33188,
      "new_path": "src/dawn/native/EventManager.cpp"
    },
    {
      "type": "modify",
      "old_id": "1d0b54ed62144e57c17b3fec7cff687ce16853a9",
      "old_mode": 33188,
      "old_path": "src/dawn/native/EventManager.h",
      "new_id": "81dd7477e4e077438e41fba69570a0c1d6f4d3e4",
      "new_mode": 33188,
      "new_path": "src/dawn/native/EventManager.h"
    },
    {
      "type": "modify",
      "old_id": "a9ec5fe051953d9ffe1db6f02fea7a6aaea34638",
      "old_mode": 33188,
      "old_path": "src/dawn/native/SharedTextureMemory.cpp",
      "new_id": "ba6a321715e612fef49da998f86247bf8316a5f0",
      "new_mode": 33188,
      "new_path": "src/dawn/native/SharedTextureMemory.cpp"
    },
    {
      "type": "modify",
      "old_id": "ff9c0335b33bcfc876cbc54a21ab5fbc3c8d203e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/SharedTextureMemory.h",
      "new_id": "b6fae86d01692821aa70cb282698268a4a2f98ca",
      "new_mode": 33188,
      "new_path": "src/dawn/native/SharedTextureMemory.h"
    },
    {
      "type": "modify",
      "old_id": "7dc5f01f1b9aeb5d12bc6b1dc52193edbf5fb05c",
      "old_mode": 33188,
      "old_path": "src/dawn/native/webgpu/CommandBufferWGPU.cpp",
      "new_id": "587bc0b8597b3fece48f961db8fd186f6ffb2508",
      "new_mode": 33188,
      "new_path": "src/dawn/native/webgpu/CommandBufferWGPU.cpp"
    },
    {
      "type": "modify",
      "old_id": "461b96385df6ae0cd3699460fee1b2928cd9e9d2",
      "old_mode": 33188,
      "old_path": "src/dawn/native/webgpu/DeviceWGPU.cpp",
      "new_id": "a7e872c8f8284239bf9c5664e1538acffc4d0bba",
      "new_mode": 33188,
      "new_path": "src/dawn/native/webgpu/DeviceWGPU.cpp"
    },
    {
      "type": "modify",
      "old_id": "918a24f3379a38068b7b0e29e2e0c3f7c2e8fc38",
      "old_mode": 33188,
      "old_path": "src/dawn/native/webgpu/DeviceWGPU.h",
      "new_id": "06f4a0b4e635b4254bc972ebeb8954439f373a45",
      "new_mode": 33188,
      "new_path": "src/dawn/native/webgpu/DeviceWGPU.h"
    },
    {
      "type": "modify",
      "old_id": "097aeb32d3ce61d27f93321f63954ccbde69b80a",
      "old_mode": 33188,
      "old_path": "src/dawn/native/webgpu/Forward.h",
      "new_id": "4370a1caa5daade9ad442113e197caaa857ffd0b",
      "new_mode": 33188,
      "new_path": "src/dawn/native/webgpu/Forward.h"
    },
    {
      "type": "modify",
      "old_id": "8a68c724c78fb8214c88fdf04d7e218bc92ffe57",
      "old_mode": 33188,
      "old_path": "src/dawn/native/webgpu/PhysicalDeviceWGPU.cpp",
      "new_id": "9ab043765dc4e84bfd5e621a3858f7ef49526ef0",
      "new_mode": 33188,
      "new_path": "src/dawn/native/webgpu/PhysicalDeviceWGPU.cpp"
    },
    {
      "type": "modify",
      "old_id": "5e8dd34287d93bb71bcd446bb7d810dfcba013c7",
      "old_mode": 33188,
      "old_path": "src/dawn/native/webgpu/QueueWGPU.cpp",
      "new_id": "8fc8de2fb15050f8621a7b925a277ad1ca4179ce",
      "new_mode": 33188,
      "new_path": "src/dawn/native/webgpu/QueueWGPU.cpp"
    },
    {
      "type": "modify",
      "old_id": "8487e2c14ba8a371475f43ef9a49ed990e54900c",
      "old_mode": 33188,
      "old_path": "src/dawn/native/webgpu/QueueWGPU.h",
      "new_id": "4bfe76c96159bbe805cd282f5e333846f1809c37",
      "new_mode": 33188,
      "new_path": "src/dawn/native/webgpu/QueueWGPU.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f018ea3c21850ba6e46692665ca32fca0a368880",
      "new_mode": 33188,
      "new_path": "src/dawn/native/webgpu/SharedFenceWGPU.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2b501c748432a5091f0af3cc2bc0359957098ba4",
      "new_mode": 33188,
      "new_path": "src/dawn/native/webgpu/SharedFenceWGPU.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "13c0f418a133088395c06204f434be49d834a8ef",
      "new_mode": 33188,
      "new_path": "src/dawn/native/webgpu/SharedTextureMemoryWGPU.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "15994515e23c0af7be9d0a3d82e40415fc7c0e46",
      "new_mode": 33188,
      "new_path": "src/dawn/native/webgpu/SharedTextureMemoryWGPU.h"
    },
    {
      "type": "modify",
      "old_id": "501568cc9fee9a5f0fca295dbf540b5d95052c62",
      "old_mode": 33188,
      "old_path": "src/dawn/native/webgpu/TextureWGPU.cpp",
      "new_id": "fe29c00501c9fa6a31cb53c87a86e3cea31829c4",
      "new_mode": 33188,
      "new_path": "src/dawn/native/webgpu/TextureWGPU.cpp"
    },
    {
      "type": "modify",
      "old_id": "82f8bebac2a02bdb56acf66ad2b6bc344cffbaae",
      "old_mode": 33188,
      "old_path": "src/dawn/native/webgpu/TextureWGPU.h",
      "new_id": "6ae170b8312ecf123603898d090717fe4aa9fd62",
      "new_mode": 33188,
      "new_path": "src/dawn/native/webgpu/TextureWGPU.h"
    },
    {
      "type": "modify",
      "old_id": "b5f0ec0b76eeb6fe4678c75e4d6f2c115423b2ff",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/white_box/SharedTextureMemoryTests.cpp",
      "new_id": "67342521b18c81dc8d6cc4ac15b02b83cb2e6efd",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/white_box/SharedTextureMemoryTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "16f114ffffe2c356b0d00a91af6d2136bd705dd1",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/white_box/SharedTextureMemoryTests_apple.mm",
      "new_id": "51e847ff899766871fcf4613cd4a0ddef3ac4e1b",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/white_box/SharedTextureMemoryTests_apple.mm"
    }
  ]
}
