)]}'
{
  "commit": "78ae359ba45cab3ca44495b1a040f2f4a6b5cf01",
  "tree": "57070b33ab3b0abcd2c03e90ff5d8105d5b606ae",
  "parents": [
    "0305ffbaf17646a1965964b8fb2081e652c07a70"
  ],
  "author": {
    "name": "Lokbondo Kung",
    "email": "lokokung@google.com",
    "time": "Tue May 27 20:45:07 2025 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue May 27 20:45:07 2025 -0700"
  },
  "message": "[dawn][vulkan] Removes queue serial assertion.\n\n- The assertion is currently causing flakes after the changes\n  in https://dawn-review.googlesource.com/c/dawn/+/242714. The\n  change in that CL is necessary to implement spontaneous\n  callbacks, but by moving the `CheckPassedSerial` call which is\n  the call responsible for actually updating the `mCompletedSerial`\n  member in `ExecutionQueue` outside of the scope of the global\n  Device lock, the assertion can fail when:\n\n  Thread A:\n    - Successfully waited for serial 3 in the critical section of\n      `WaitQueueSerials`.\n    - Calls `CheckPassedSerial`-\u003e`CheckAndUpdateCompletedSerial`\n      and gets 3. Note that in the Vulkan implementation of\n      `CheckAndUpdateCompletedSerial`, this updates the internal\n      fences that are tracked, so all serials \u003c 3 are now no\n      longer in `mFencesInFlight`. Begins to try calling\n      `UpdateCompletedSerial(3)` but is interrupted by Thread B.\n  Thread B:\n    - `WaitForQueueSerial` is called for a serial of 2. Since\n      the backend implementation, i.e. Vulkan\u0027s\n      `CheckAndUpdateCompletedSerial` has already been called,\n      in `QueueVk::CheckAndUpdateCompletedSerial` we don\u0027t\n      find a wait fence, so we enter the code block with the\n      DAWN_ASSERT. Unfortunately, since Thread A did not\n      complete `UpdateCompletedSerial(3)` yet, the actual\n      value of `mCompletedSerial \u003d\u003d 1`. As a result, the\n      assertion fails.\n- This temporary change should fix the crashes we are seeing in\n  the bugs, but a follow up more extensive change will be done\n  to make sure that serials in `ExecutionQueue` are a bit more\n  consistent in a multithreaded environment.\n\nBug: 419598089, 420681969\nChange-Id: I8c3002379cec1ce0ab10e314cf3cd9d3a3512314\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/244035\nCommit-Queue: Kai Ninomiya \u003ckainino@chromium.org\u003e\nAuto-Submit: Loko Kung \u003clokokung@google.com\u003e\nReviewed-by: Kai Ninomiya \u003ckainino@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "14a3ac6cbd5bb18bbc4b3c5c2d044214d4e58179",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/QueueVk.cpp",
      "new_id": "34082bed5077e8c0a1138f79ca505035562203cf",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/QueueVk.cpp"
    }
  ]
}
