)]}'
{
  "commit": "86afbe086dfb75ebff1ca753e937f662a8a810d6",
  "tree": "41c9f7c31fa7a2285de6b7c71d41669f436779e1",
  "parents": [
    "53a0aae32a0ad1c67e8de6f98500504878473465"
  ],
  "author": {
    "name": "Austin Eng",
    "email": "enga@chromium.org",
    "time": "Thu Feb 22 20:53:22 2024 +0000"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Feb 22 20:53:22 2024 +0000"
  },
  "message": "remove global device lock for host-mapped-pointer buffers\n\nThis makes creation of these buffers thread-safe without\ntaking the global device lock. Note that destroying the\ndevice while creating any resource is still not safe.\n\nTested on Linux with TSAN, that the implementation is\ndata-race free.\n\nOn d3d12, buffer creation:\n - uses the D3D12 device, which is thread-safe\n - uses the ResidencyManager which is MutexProtected\n - reads lots of device info/toggles; which are immutable\n   after creation\n\nOn d3d12, buffer destruction\n - uses the deallocation queue which is MutexProtected\n - uses the callback task queue which is MutexProtected\n\nOn metal, buffer creation\n - uses the MTLDevice which is already thread-safe\n\nOn metal, buffer description\n - uses the callback task queue which is MutexProtected\n\nOn Vulkan, buffer creation\n - allocates with the VkDevice, which is thread-safe\n - reads lots of device state which is immutable after\n   creation\n - uses the resource memory allocator which is MutexProtected\n\nOn vulkan, buffer destruction\n - uses the resource memory allocator which is MutexProtected\n - uses the fenced deleter which is MutexProtected\n - uses the callback task queue which is MutexProtected\n\nBug: dawn:1662\nChange-Id: Ib0962a5f8afcc4b80a8f3d759d8ad80bf28c8094\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/175208\nReviewed-by: Loko Kung \u003clokokung@google.com\u003e\nKokoro: Kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\nCommit-Queue: Austin Eng \u003cenga@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2c7e22f7b2e36f92fa1cbc295bae47eab17edd33",
      "old_mode": 33188,
      "old_path": "src/dawn/dawn.json",
      "new_id": "27cd49ca5a676c9324ec8ee1185a901e5229932e",
      "new_mode": 33188,
      "new_path": "src/dawn/dawn.json"
    },
    {
      "type": "modify",
      "old_id": "1d4f624c676e37f2818c604ca2b0779a097d3d39",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Device.cpp",
      "new_id": "304786b0f5d923e5021887aa48b7d7882b1fec1d",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Device.cpp"
    },
    {
      "type": "modify",
      "old_id": "b36db5d074e812c5a9650c671f67824cd013c7e9",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/BufferHostMappedPointerTests.cpp",
      "new_id": "682a30d80d29bc4bfe65ac6f9d4ece97b41bdc70",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/BufferHostMappedPointerTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "10e1a75c3b75f973ca46ba44b0d85c97492200e4",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/BufferHostMappedPointerTests_apple.mm",
      "new_id": "3bfddbf2cf9b6cb8297d146345dc0cbc0e163b98",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/BufferHostMappedPointerTests_apple.mm"
    },
    {
      "type": "modify",
      "old_id": "c56faabfcc97ec99465039bcd04716f7616976b1",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/BufferHostMappedPointerTests_posix.cpp",
      "new_id": "1af44c0fad09869c639c6536361a5c90e952a6c5",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/BufferHostMappedPointerTests_posix.cpp"
    },
    {
      "type": "modify",
      "old_id": "3f317707ddae1de2711f964f72263eddbd26d045",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/BufferHostMappedPointerTests_win.cpp",
      "new_id": "9cd025ecc342a7970041da6bb3a7ded124d27d60",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/BufferHostMappedPointerTests_win.cpp"
    }
  ]
}
