commit | 7971bfe16fd8a30790a8989cd93f22ad38b6a73b | [log] [tgz] |
---|---|---|
author | Le Hoang Quyen <lehoangquyen@chromium.org> | Wed Apr 05 19:35:07 2023 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Apr 05 19:35:07 2023 +0000 |
tree | 880551ae898c81c66dcd9aa88e2f8752cac249bc | |
parent | 76b73730c5060302961a67a6f30d295dd2edf204 [diff] |
Add an option to enable implicit device synchronization. 1. Auto-generate mutex locking code in DawnNative's ProcTable's functions. Using a mutex owned by the related Device. - Unless the function/class has "no autolock" attribute (new) in dawn.json. In which cases, no locking code will be auto-generated. - Currently Instance, Adapter, Surface, Encoder classes and Reference/Release method have "no autolock". 2. Added Feature::ImplicitDeviceSynchronization to enable Device's mutex. - If this feature is disabled, lock/unlock Device's mutex is no-op. Auto-generated locking code will have no effect. This is the default. - This approach is used instead of generating two sets of ProcTable because it's cleaner and the internal code doesn't need to care about whether there is a mutex being locked or not. Furthermore, if there were two sets of ProcTable, and user used dawnProcSetProcs() to set global ProcTable, it would affect all other modules using different Devices. Even though those modules don't need thread safety. Bug: dawn:1662 Change-Id: I75f0d28959f333318e4159916b259131581f79f5 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119940 Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Austin Eng <enga@chromium.org>
Dawn is an open-source and cross-platform implementation of the work-in-progress 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)
(TODO)
Apache 2.0 Public License, please see LICENSE.
This is not an officially supported Google product.