commit | fb6a21db552a49a3addca9ee65b60b06056c36a2 | [log] [tgz] |
---|---|---|
author | Kyle Charbonneau <kylechar@google.com> | Fri Nov 22 14:25:48 2024 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri Nov 22 14:25:48 2024 +0000 |
tree | aa2404145a4a6b7d426f9f2c9ea9d76f771df585 | |
parent | eef82f6f51a2aca7e3cb513cd57a3038ea41d505 [diff] |
reland: 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. The first time this CL landed introduced a lock-order-inversion when the DescriptorSetAllocator lock and mDescriptorAllocatorsPendingDeallocation locks were held at the time but acquired in different orders. Release DescriptorSetAllocator lock before calling into EnqueueDeferredDeallocation() to avoid this. Bug: 372651189 Change-Id: Ie8df192528776e538eb7f4b1c5d28dd8e3553778 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/216114 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Kyle Charbonneau <kylechar@google.com> Reviewed-by: 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.