commit | a8c9c74d0132bf592a6cb67a9a99541673cf9db8 | [log] [tgz] |
---|---|---|
author | Lokbondo Kung <lokokung@google.com> | Wed Aug 20 12:58:21 2025 -0700 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Aug 20 12:58:21 2025 -0700 |
tree | ee73d8611404f5f7cee29be9959d5d6d22ce7db1 | |
parent | 621d846546cba2a9ee6bbfc24b14fe0b50d74db5 [diff] |
[dawn][native] Refactors ExecutionQueue to be an ApiObject. - For a while I was avoiding changing the class hierarchy to try to keep the ExecutionQueue separate from the Device, but with the locking issues, it was too hard to keep it separate and by changing it, it becomes a lot easier to manage the callbacks and ensure that we take the device lock in places to ensure that we don't ever run into lock inversion issues. This also lets us introduce a toggle so that we can incrementally implement thread safety across different backends. - Using the new toggle, we revert some of the changes from https://dawn-review.googlesource.com/c/dawn/+/252918 for backends other than Metal. Bug: 430401631, 412761228 Include-Ci-Only-Tests: true Change-Id: I2a0b04287789f42157b44cd48d99d0d988171799 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/251875 Commit-Queue: Loko Kung <lokokung@google.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Brandon Jones <bajones@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.