commit | f5fcc294c56511b3052afe928f0d37d1bdc9caeb | [log] [tgz] |
---|---|---|
author | Lokbondo Kung <lokokung@google.com> | Fri Nov 22 00:14:33 2024 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri Nov 22 00:14:33 2024 +0000 |
tree | d4d40456a324f46772489a68382aa77a945c5d96 | |
parent | 83e66191b77afe75ceb03281aa0a6db8d2a1dc58 [diff] |
[dawn][metal] Work around race condition in timestamp resolution. - Adds a new toggle to gate the workaround, and enable it in Apple silicon > M1s. - Includes a small (kinda tangential) cleanup in TextureMTL with unused wait events. - Implements timestamp resolve query set workaround to avoid race between the the timestamp resolve and the actual writing of the timestamps. The workaround serializes the command buffer between generation of the timestamps, and their resolution, with a wait in between them via a MTLSharedEvent. Note that this workaround is also implemented in WebKit via: https://github.com/WebKit/WebKit/pull/36645 - Locally, this now passes the once failing dawn_end2end test: MultithreadTimestampQueryTests.ResolveQuerySets_InParallel on my M3, and seems to fix the repro detailed in the bug even with multiple refreshes in a local build of Chromium. Bug: 372698905 Change-Id: I7d77bbcaf269d507b1179478e1f69316613384e9 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/215774 Reviewed-by: Ken Russell <kbr@google.com> Commit-Queue: Loko Kung <lokokung@google.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
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.