commit | b3b28f2246a958a512c3ec95ac1a2435dd15c242 | [log] [tgz] |
---|---|---|
author | Le Hoang Quyen <lehoangquyen@chromium.org> | Tue May 06 17:14:42 2025 -0700 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue May 06 17:14:42 2025 -0700 |
tree | 8308bb89f6151543b0264ee65ce9fbb1df54e0e2 | |
parent | 4e7195f98950575b2edf9819ab1c854655399c12 [diff] |
D3D11: fix SystemEventQueue's incorrect tracking of completed serials SystemEventQueue currently recycles events in 2 places: - CheckAndUpdateCompletedSerials(). - WaitForQueueSerial(). This leads to incorrect update of the completed serial in CheckAndUpdateCompletedSerials(). Considering the following scenario: - Queue.Submit() is called 2 times. - SystemEventQueue will store a pending list of event 1 & 2 associated with serial 1 & 2. - WaitQueueSerials(serial=1, timeout=inf) is called. - WaitForQueueSerial() is called. - This waits until serial=1 is completed. - Event 1 will be removed from the pending list. - CheckAndUpdateCompletedSerials() is called. - This function attempts to check the status of all pending events. - Event 2 is the only one in the pending list at this point. - If the event 2 was not signaled yet, the function would return GetCompletedCommandSerial() which is zero. Because the actual completed serial=1 has not been notified to the parent Queue class yet. This CL fixes the bug by removing the recycling from WaitForQueueSerial(). Only CheckAndUpdateCompletedSerials() should recycle the events. Because it's the place supposed to update the completed serial. Bug: 415561579 Change-Id: Ifb9fca831a5ccb7bfc165641179966a6bc4a6203 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/240374 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Quyen Le <lehoangquyen@chromium.org> Auto-Submit: Quyen Le <lehoangquyen@chromium.org> Commit-Queue: Loko Kung <lokokung@google.com> Reviewed-by: Loko Kung <lokokung@google.com>
Dawn is an open-source and cross-platform implementation of the WebGPU standard. More precisely it implements webgpu.h
that is a one-to-one mapping with the WebGPU IDL. Dawn is meant to be integrated as part of a larger system and is the underlying implementation of WebGPU in Chromium.
Dawn provides several WebGPU building blocks:
webgpu.h
version that Dawn implements.webgpu.h
.Helpful links:
Developer documentation:
User documentation: (TODO, figure out what overlaps with the webgpu.h docs)
BSD 3-Clause License, please see LICENSE.
This is not an officially supported Google product.