commit | 43b18d23f1be9ea4e01da9f164d1dbbb510978df | [log] [tgz] |
---|---|---|
author | Kyle Charbonneau <kylechar@google.com> | Sat Nov 16 00:17:54 2024 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Sat Nov 16 00:17:54 2024 +0000 |
tree | 2754022b7d0de7d728af3832ba5af146a858c540 | |
parent | 43e7da53d189d2da034ac6ffcdb391eb8633e72f [diff] |
Revert "Use mutex with DeviceVk deallocation queue" This reverts commit ae9acbdf215860b1474735cd00abffc2ecd79f8f. Reason for revert: Causes mutex order inversion Original change's description: > Use mutex with DeviceVk deallocation queue > > DeviceVk::mDescriptorAllocatorsPendingDeallocation can be accessed from > an arbitrary thread without holding the device mutex. BindGroup > destruction ends up appending values to the queue in > Device::EnqueueDeferredDeallocation(). Add a mutex to protect > mDescriptorAllocatorsPendingDeallocation against data races. > > Adding MutexProtected wouldn't work with the existing iteration through > the queue. This is because mutex would only be held for the duration of > IterateUpTo() function call which builds BeginEnd. BeginEnd holds > iterators into the container and if the container is modified while > BeginEnd exists those iterators may be invalidated. Instead, add > SerialStorage::TakeUpTo() which makes a new container that contains all > the elements up to specific serial and removes them from the original > container. > > Bug: 372651189 > Change-Id: I125a575e8b2ee632a681685ede744ae57f790bfa > Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/214734 > Reviewed-by: Corentin Wallez <cwallez@chromium.org> > Commit-Queue: Kyle Charbonneau <kylechar@google.com> # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 372651189 Change-Id: I6f8a187c7dd07d8e91d93b23be9304b97dbdf465 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/215254 Commit-Queue: Kyle Charbonneau <kylechar@google.com> Auto-Submit: Kyle Charbonneau <kylechar@google.com> Reviewed-by: Loko Kung <lokokung@google.com> 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.