Reland "[dawn][metal] Makes AllowSpontaneous work for Metal queue events." Relanding now that: - *MappedRange functions no longer acquire the device-wide lock. - The |completedSerial| in QueueAndSerial is atomic. Previously, the issues above along with some lock scopes resulted in deadlocks when spontaneous map async callbacks fired. Original change's description: > Revert "[dawn][metal] Makes AllowSpontaneous work for Metal queue events." > > This reverts commit b1c66af72925e24732b7c0f7c7275714d960b842. > > Reason for revert: Failures on Intel and AMD Macs, e.g.: > https://ci.chromium.org/ui/p/chromium/builders/ci/Dawn%20Mac%20x64%20DEPS%20Release%20%28AMD%29 > > Bug: 412761367 > Original change's description: > > [dawn][metal] Makes AllowSpontaneous work for Metal queue events. > > > > - Since the queues in Metal are updated via Metal callbacks already, > > we can make AllowSpontaneous work by having the Metal callbacks > > directly call the queue callbacks as well. > > - Adds spontaneous tests for queue events in Metal. > > > > Bug: 412761367 > > Change-Id: I83b338455c8271ed680faa0718ead2c9e66388be > > Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/236935 > > Reviewed-by: Kai Ninomiya <kainino@chromium.org> > > Commit-Queue: Loko Kung <lokokung@google.com> > > Bug: 412761367 > Change-Id: Ib6da7715e840afa7b6126c2f346385d22200f56a > Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/242055 > Reviewed-by: Loko Kung <lokokung@google.com> > Commit-Queue: Kai Ninomiya <kainino@chromium.org> > Reviewed-by: Kai Ninomiya <kainino@chromium.org> Bug: 412761367 Cq-Include-Trybots: luci.chromium.try:dawn-try-mac-amd-exp,dawn-try-mac-arm64-m2-exp,dawn-try-mac-intel-exp,mac-arm64-dawn-rel,mac-dawn-rel Include-Ci-Only-Tests: true Change-Id: I203a3c82225c27e486b16fcca610379e21e8f4a3 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/242334 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.