[dawn][platform] Implements PostWorkerJob platform API in Dawn. - This change adds the PostWorkerJob API as per the design doc in the bug with some minor changes. It also implements it for the default Platform class. Doc: https://docs.google.com/document/d/1o_1SvkpnWq0ysOxU5jJLkWKjBrLG5eUHqmWQSjQiu2s/edit?usp=sharing The main divergent change from the doc was to return a unique_ptr to the handle instead of just the handle. This makes it more consistent with the existing PostWorkerTask API. - Modernizes the other handling code in the AsyncWorkerThreadPool to use std::atomic::wait and MutexCondVarProtected. - Uses the same worker job handle to handle tasks. - Add new unittests related specifically to the Dawn implemented version of the WorkerTaskPool. Bug: 412761228 Change-Id: I3be3991dc69533871adf76dae5bc009e9a070b93 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/290376 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Loko Kung <lokokung@google.com> Reviewed-by: 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.