commit | 08d927984acb0e1034926cdd14235b40c74ef61e | [log] [tgz] |
---|---|---|
author | Antonio Maiorano <amaiorano@google.com> | Thu Jan 11 20:51:50 2024 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Jan 11 20:51:50 2024 +0000 |
tree | 1be10030c5a3c4ee689fd5a512d7601a3c141fcb | |
parent | 3252383e3842a722e39f404882a1ae10f5fdbace [diff] |
tint: add syntax sugar for dereferencing pointers Adds support to Tint for syntax sugar for dereferencing pointers for member or index access as per: https://github.com/gpuweb/gpuweb/pull/4311 - Resolver: when the lhs of a accessor expression is a pointer, it is now resolved to a sem::Reference. - Added "pointer_composite_access" feature as experimental, hooked up validation in Resolver, and added tests. - Added resolver tests for the new syntax to resolver/ptr_ref_test.cc. - Fixed multiple transforms to deal with the fact that the lhs of accessor expressions can now be pointers, including: Robustness, Renamer, Std140, and SimplifyPointers. - In transforms that rely on other transforms, such as SimplifyPointers, to remove/inline pointers, I added asserts that the type is not a pointer. - Added unit tests for transforms that use pointer-dot/index for accessor expressions. - Fixed uniformity analysis code so that ProcessLValueExpression correctly deals with accessor expressions where the object is a pointer, in the same way we do for UnaryOp::kIndirection, including partial pointer checks. Added many tests for these new cases. - Fixed ProgramToIR so that EmitAccess handles the new syntax. Added multiple tests. - Added end2end tests under test/tint/ptr_sugar For Googlers, see my work log at go/add-syntax-sugar-for-dereferencing-composites for more details. Bug: tint:2113 Change-Id: I7a0093f52ca2237be598e44245b45049f21d056c Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/164900 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: James Price <jrprice@google.com> Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: Antonio Maiorano <amaiorano@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.