[tint][spirv-writer] Add a KeepBindingArrayAsPointer transform. KeepBindingArrayAsPointer is a transform that ensures that binding_arrays are never stored by value but only used via a pointer to them. This is used to produce SPIR-V that's more similar to what drivers typically ingest where OpTypeArray<OpTypeImage> is always kept as a pointer. Note that it doesn't handle function parameters so DirectVariableAccess (DVA) for handles must have run prior to this transform. This mismatch between Tint IR and SPIR-V at the time of writing is because Tint IR disallows handle address space pointers as function arguments, while "idiomatic" SPIR-V that drivers are used to use pointers to pass handle types as function arguments. Bug: 393558555 Change-Id: I2a37899b938dd773a6d991d6ebf58f30a3a6a5ca Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/247054 Reviewed-by: James Price <jrprice@google.com> Auto-Submit: Corentin Wallez <cwallez@chromium.org> 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.