commit | 03d524b15fb5d0129b7a4e0746576d49f3cb993a | [log] [tgz] |
---|---|---|
author | Corentin Wallez <cwallez@chromium.org> | Wed Jul 10 07:07:28 2024 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Jul 10 07:07:28 2024 +0000 |
tree | 82c5a6460f7a4d34c1729ebe82a531f69693289b | |
parent | 99272625cef9a7b377fc54b2a0c9e72dac158b83 [diff] |
dawn::wire::client Use Refcounted for ObjectBase. In future CLs this will let objects references each other, without breaking the semantic that Instance/Device are destroyed/lost immediately when their external refcount reaches 0. This changes the lifetime semantics in the Dawn wire client to have each object manage its own allocation lifetime through refcounting. Previously the dawn::wire::client::Client managed their lifetime inside the ObjectStores by getting a signal from the object when it reached a refcount of 0. This CL also changes Instance and Device to use RefCountedWithExternalCount so that they can get a signal to unregister themselves from the wire when the external refcount gets to 0. Future cleanups will come in follow-up CLs: - Removing the logic to destroy Device first on Client disconnects. as it is no longer needed to preserve semantics. - Replacing the Device::mIsAlive weak_ptr with refs to the device. - Removing the LinkedList used to keep the list of all ObjectBase. - <your suggestion here?> Bug: 344963953 Change-Id: I277ceef4ef30291d16c75df543eeae1d6552aff1 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/197235 Reviewed-by: Austin Eng <enga@chromium.org> Reviewed-by: Loko Kung <lokokung@google.com> Commit-Queue: 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.