commit | 4b8a3d34d4e5185c580ca613dbdd4e84ba78f3c8 | [log] [tgz] |
---|---|---|
author | Ben Clayton <bclayton@google.com> | Tue Jun 13 16:55:57 2023 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Jun 13 16:55:57 2023 +0000 |
tree | 4de9c96307f3bfd090e84728cf28e9f2effb77d6 | |
parent | 8ab22d45da518d74ba300723e2580ed8b983ef0c [diff] |
[tint][transform][hlsl] Fix bad materialization As reported in tint:1963, the PromoteSideEffectsToDecl transform could hoist a constant expression to an implicitly typed 'let' declaration, resulting in the expression type materializing early and resolve to a different type. Constant expressions don't need to be hoisted, but it seems generally safer to continue emitting these, but with an explicit type on the 'let' declaration. This is what this CL does. In doing this, I uncovered a second bug where the DecomposeMemoryAccess transform would create a new a struct for the result of the atomicCompareExchangeWeak() intrinsic, which would fail to assign to the new explicitly typed lets. The fix for this is simple - don't generate a new struct, but instead use the (fairly new) internal struct declarations for these. This keeps the resolver happy, and actually reduces a bunch of spew from the HLSL output. Fixed: tint:1963 Change-Id: I271a2130dc303da3b9f11876ec5c6e8b98a16ee7 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/137100 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: James Price <jrprice@google.com> Commit-Queue: Ben Clayton <bclayton@google.com>
Dawn is an open-source and cross-platform implementation of the work-in-progress 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)
(TODO)
Apache 2.0 Public License, please see LICENSE.
This is not an officially supported Google product.