)]}'
{
  "commit": "ae9acbdf215860b1474735cd00abffc2ecd79f8f",
  "tree": "2dde76ef508915807b44f0e3b44e563d766c74f4",
  "parents": [
    "4e3843e3d51cad247ace0eabf3a35aab90b91fbe"
  ],
  "author": {
    "name": "Kyle Charbonneau",
    "email": "kylechar@google.com",
    "time": "Thu Nov 14 17:46:34 2024 +0000"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Nov 14 17:46:34 2024 +0000"
  },
  "message": "Use mutex with DeviceVk deallocation queue\n\nDeviceVk::mDescriptorAllocatorsPendingDeallocation can be accessed from\nan arbitrary thread without holding the device mutex. BindGroup\ndestruction ends up appending values to the queue in\nDevice::EnqueueDeferredDeallocation(). Add a mutex to protect\nmDescriptorAllocatorsPendingDeallocation against data races.\n\nAdding MutexProtected wouldn\u0027t work with the existing iteration through\nthe queue. This is because mutex would only be held for the duration of\nIterateUpTo() function call which builds BeginEnd. BeginEnd holds\niterators into the container and if the container is modified while\nBeginEnd exists those iterators may be invalidated. Instead, add\nSerialStorage::TakeUpTo() which makes a new container that contains all\nthe elements up to specific serial and removes them from the original\ncontainer.\n\nBug: 372651189\nChange-Id: I125a575e8b2ee632a681685ede744ae57f790bfa\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/214734\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\nCommit-Queue: Kyle Charbonneau \u003ckylechar@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f7b74d3d75aea6e582d35f5fc4114112841e35dd",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/DeviceVk.cpp",
      "new_id": "9abe3f79cbbf11548a4e68c3bac2a465eae15d1c",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/DeviceVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "75df610612e0e0c3c12409db776bd3d386dd1878",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/DeviceVk.h",
      "new_id": "aa713c73c02684030a2c55c6814c71763fab4d60",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/DeviceVk.h"
    }
  ]
}
