| commit | ac2f090d3838c6ebfd20a6ce6006e94ac0768f9e | [log] [tgz] |
|---|---|---|
| author | Lokbondo Kung <lokokung@google.com> | Sat Sep 20 23:01:21 2025 -0700 |
| committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Sat Sep 20 23:01:21 2025 -0700 |
| tree | 284b69f8dcc4c3e270d5e4e3e561eef80b18743a | |
| parent | 83c981ee477dd1ece3df6b27f6629e4c0ae5a956 [diff] |
[dawn][wire] Implements timed WaitAny for Dawn wire client. - Implements timed WaitAny via conditional variables on the wire client. Since the wire client now spontaneously receives future completion tasks, we can use conditional variables to notice changes in the state of the events, and fire the callbacks via WaitAny. - Updates EventTests.cpp to test pretty much all possible callback mode and wait mechanism combinations, both on and off the wire. - Updates other relevant tests w.r.t the wire not being able to handle timed waits. - Note that this change required refcounting the client future events since we use the presence of the event in the map as an indicator to that both the event and it's corresponding callback are completed. This means we can't remove the event from the list until the callback is finished, hence some of the changes. - This change also updates the way that the TrackedEvents on the client handle a call to `Complete`. Since multiple threads could potentially call `Complete`, we need to ensure that only one thread will ever really complete the callback. Bug: 441981783 Change-Id: I45ad9507f558860ceb7284ee9487e880e6e868ac Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/260461 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Kai Ninomiya <kainino@chromium.org> Commit-Queue: 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.