[dawn][node] Do not create a JS promise for kUnusedPromise dawn.node needs to be updated because kUnusedPromise is used when something goes wrong, like a JS exception. The existing code tries to create a promise that is immediately rejected. However, that is not valid under the Node-API: > In many cases when a Node-API function is called and an exception is > already pending, the function will return immediately with a > napi_status of napi_pending_exception. So we fix dawn.node, and fix our Node-API implementation to match that behaviour. This fixes the following CTS tests under Node.js: - webgpu:api,validation,compute_pipeline:overrides,value,type_error:isAsync=true;* - webgpu:api,validation,render_pipeline,overrides:value,type_error,*:isAsync=true;* - webgpu:api,validation,capability_checks,features,*:isAsync=true;* Bug: 571890980 Change-Id: Ic5451a32626936a66e729aff9074bfbba4371936 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/350576 Auto-Submit: Steven Perron <stevenperron@google.com> Reviewed-by: dan sinclair <dsinclair@chromium.org> Commit-Queue: Steven Perron <stevenperron@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.