| commit | 0b88469034e0e93ed8f5e42f57c0468a9f4c2b24 | [log] [tgz] |
|---|---|---|
| author | Lokbondo Kung <lokokung@google.com> | Fri Jan 09 16:02:41 2026 -0800 |
| committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri Jan 09 16:02:41 2026 -0800 |
| tree | b5bd2feb3e5c34cb61dbb3d126159f52966de135 | |
| parent | 6c870d0d2261e8931af759c984d24a61a3360bd3 [diff] |
[dawn] Make the Instance simply RefCounted. - Before, the Instance needed to be externally refcounted because there wasn't a way to get the Instance once the last external reference was dropped, hence it could cause any WaitAnyOnly or AllowProcessEvent events to be leaked. Since then, we have added a `GetInstance()` API on the Adapter which means that as long as we have a Device (which has `GetAdapter()`) on it, the instance can be reached. As a result, we only need to clear all events when the last device reference is dropped. This means that the Instance can just be a simple refcounted object now. - This is also necessary because the `WaitAny()` and `ProcessEvents()` APIs implicitly assume that if they are called, that the Instance is externally alive. However, because users can drop the last external reference, then get a new one when they need it via the Device/Adapter, some teardown code in Chromium could cause a crash by calling those APIs on an Instance retrieved via the getter APIs after the original external reference was dropped. Bug: 467732049, 474662276 Change-Id: Ib04c6243538983c2ba4c3060beb23487da66a499 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/283515 Reviewed-by: Kai Ninomiya <kainino@chromium.org> Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org> Auto-Submit: Loko Kung <lokokung@google.com> Commit-Queue: Kai Ninomiya <kainino@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.