Revert "[dawn][d3d] Adds loop for WaitForMultipleObjects with INFINITY." This reverts commit 2bf640bbd9f73e703855650d02f844e7e485a927. Reason for revert: Suppression removals were premature. Original change's description: > [dawn][d3d] Adds loop for WaitForMultipleObjects with INFINITY. > > - Adding the loop addresses the reverted workaround. > - Also includes a small fix for potential race in spontaneous > event handling. > - Re-enables all the related tests now that they seem to be > passing fine now on the arm64 Qualcomm devices with this fix. > - Also reverts "Fix MapAsyncAndWait use-after-free" > commit 37905ab50503cb442aac9a8a28ac7306416dee39. > > Original change's description: > > Fix MapAsyncAndWait use-after-free > > > > Fixes an issue where the callback registered in > > DawnTestBase::MapAsyncAndWait could cause an access violation during > > global test teardown due to trying to run a callback that was allocated > > on the stack and had already gone out of scope. This only occurred when > > instance.WaitAny() timed out, which would cause the callback to still > > be around until the instance got destroyed and ensured that all pending > > callbacks were complete. > > > > Now, the actual callback to run is provided via a shared_ptr and the > > lambda provided to buffer.MapAsync() checks if it is null before running > > it. After instance.WaitAny() returns but before we make any asserts, we > > set the pointer to null, preventing the soon-to-be-dangling pointer from > > being used in the future. > > > > This is meant as a temporary workaround, as WaitAny() should always run > > the provided callback. This can be reverted once the underlying issue > > is fixed. > > > > Bug: 459864803, 460743383 > > Change-Id: I5384e74ff6ab9da6104b07e6d9d235bf5d4b40c2 > > Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/273736 > > Commit-Queue: Brian Sheedy <bsheedy@google.com> > > Reviewed-by: Loko Kung <lokokung@google.com> > > Auto-Submit: Brian Sheedy <bsheedy@google.com> > > Reviewed-by: Kai Ninomiya <kainino@chromium.org> > > Bug: 459864803, 460743383, 461837996, 469328928, 465497435 > Change-Id: Iabf26a66fbd6c92bf788a283c05b64d72e6f12ee > Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/277975 > Reviewed-by: Brian Sheedy <bsheedy@google.com> > Commit-Queue: Kai Ninomiya <kainino@chromium.org> > Auto-Submit: Loko Kung <lokokung@google.com> > Commit-Queue: Loko Kung <lokokung@google.com> > Reviewed-by: Kai Ninomiya <kainino@chromium.org> # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 459864803, 460743383, 461837996, 469328928, 465497435 Change-Id: Ic6bd387733dfef37207b98df73bec174b6e01c91 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/283676 Commit-Queue: Loko Kung <lokokung@google.com> Reviewed-by: Brian Sheedy <bsheedy@google.com> Reviewed-by: Loko Kung <lokokung@google.com> Auto-Submit: Loko Kung <lokokung@google.com> Commit-Queue: Brian Sheedy <bsheedy@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.