commit | 82f1f838beb5da06ccc6a7175991db634909734b | [log] [tgz] |
---|---|---|
author | Tint team <no-reply@google.com> | Fri Dec 02 12:40:59 2022 +0000 |
committer | Tint LUCI CQ <tint-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri Dec 02 12:40:59 2022 +0000 |
tree | 0993d1a6a8bc31897e5d15a4d97f7a66dba62da4 | |
parent | f558c841df81adff97fdafa6a7c75db85482d228 [diff] |
Import Tint changes from Dawn Changes: - 15e7f94b762e86dec964bd040230271c39134df3 Remove ArrayCount helpers. by dan sinclair <dsinclair@chromium.org> - 4b1d79e29281c403e9a24c99dfde0b8e60b38487 Moved sem::ArrayCount to an inherited structure by dan sinclair <dsinclair@chromium.org> - 847cfa07c57e10f200329ac2c6eca16a8c2d93bb Move allocator into TypeManager by dan sinclair <dsinclair@chromium.org> - 2939c4531e84b22f49900b606cf56f0af4351d10 Fix stack-overflow in `lhs_expression`. by dan sinclair <dsinclair@chromium.org> - 6992f51ebd3feefb50b03e72cfc9170e5dd46793 tint: Add DirectVariableAccess transform by Ben Clayton <bclayton@google.com> - d257e287929813fae395a2d6766fe305d883ce1e tint: Don't override alignment with @offset by Ben Clayton <bclayton@google.com> - efb17b02543fb52c0b2e21d6082c0c9fbc2168a9 tint/writer/wgsl: Print @offset attributes as comment by Ben Clayton <bclayton@google.com> - f745e4e2bfacedfd6e127888c0ea55177a078ecf Add Source to sem::Struct by dan sinclair <dsinclair@chromium.org> - 8954189545af1423f7885afc7b9bee5778c49253 tint_common_fuzzer: Don't attempt to use an invalid program by Ben Clayton <bclayton@google.com> - 527e38b68bb2615a4277a6efae9271ba7291d8ea [sem] Move TransitivelyReferencedOverrides to sem::Info. by dan sinclair <dsinclair@chromium.org> - 331a3b7980ccd21ec06888acf6acbba934cddde0 Add Source to sem::StructMember by dan sinclair <dsinclair@chromium.org> - c5b1b5c77ad375f0706f9db305618f69274e6cb6 Access struct member name through sem. by dan sinclair <dsinclair@chromium.org> - d5d207ba9f5c44a578b6d790f28eada38687fab6 tint: Add builtin type aliases (vec3f, etc) by Ben Clayton <bclayton@google.com> - f62aec2dc86e41c6b5b61b891f2cb4909cac1fa4 tint: Add missing tests / benchmarks by Ben Clayton <bclayton@google.com> - f1f6e6fbea4e0fb0744f9300d6e1fbe25a595e1d tint: merge const eval shift left definitions by Antonio Maiorano <amaiorano@google.com> - a54df5eca5dcc90bc36d4fe3ece4bce8a036faa0 Tint: Fix extractBits polyfill by Zhaoming Jiang <zhaoming.jiang@intel.com> - 85ceb08d5ca7896605878551ad164d293dcc16d7 Add ExternalTexture Rotate and FlipY Functionality by Brandon Jones <brandon1.jones@intel.com> - 94706ecba727e2917e1a3104edaa4a755f39a816 tint: Add 'chromium_experimental_full_ptr_parameters' ext... by Ben Clayton <bclayton@google.com> - 53f646c55c973be64daf54b3deced5bf2e5ee29a [ir] Split Binary from Instruction by dan sinclair <dsinclair@chromium.org> - babc21f9316878f04a8968bef870453dabd8ee3c tint: const eval of modulo operator by Antonio Maiorano <amaiorano@google.com> - 171c542bf791f57400f3211180a94c671c6d58dd tint: improve compile error when calling builder::Val wit... by Antonio Maiorano <amaiorano@google.com> - 6e306d34b5067ee01144bb83bf2330c7a32beb40 [ir] Remove operator<< by dan sinclair <dsinclair@chromium.org> - a160ccb8c3f309064ba9e14656c4c958454ea2cd tint/ir: Fix build by Ben Clayton <bclayton@google.com> - cfea22092700ac50f0d5d314c8aad959dc8728bc tint/number: add CheckedMod functions by Antonio Maiorano <amaiorano@google.com> - 4c593c356b165b604396937839f6aba3aa592b0a tint/sem: Minor cleanup by Ben Clayton <bclayton@google.com> GitOrigin-RevId: 15e7f94b762e86dec964bd040230271c39134df3 Change-Id: I0da9b543283ca4c662dd1f13537bedc5c07ffee5 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/112540 Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Ben Clayton <bclayton@google.com> Reviewed-by: Ben Clayton <bclayton@google.com>
Note: This repo is read-only, minimized mirror of the Dawn repo.
Tint changes should be made in the Dawn repo.
Tint is a compiler for the WebGPU Shader Language (WGSL).
This is not an officially supported Google product.
TINT_BUILD_SPV_READER
: enable the SPIR-V input reader (off by default)TINT_BUILD_WGSL_READER
: enable the WGSL input reader (on by default)TINT_BUILD_SPV_WRITER
: enable the SPIR-V output writer (on by default)TINT_BUILD_WGSL_WRITER
: enable the WGSL output writer (on by default)TINT_BUILD_FUZZERS
: enable building fuzzzers (off by default)Tint uses Chromium dependency management so you need to install depot_tools and add it to your PATH.
# Clone the repo as "tint" git clone https://dawn.googlesource.com/tint tint cd tint # Bootstrap the gclient configuration cp standalone.gclient .gclient # Fetch external dependencies and toolchains with gclient gclient sync
mkdir -p out/Debug cd out/Debug cmake -GNinja ../.. ninja # or autoninja
mkdir -p out/Debug cd out/Debug cmake ../.. make # -j N for N-way parallel build
mkdir -p out/Debug gn gen out/Debug autoninja -C out/Debug
If you are attempting fuzz, using TINT_BUILD_FUZZERS=ON
, the version of llvm in the XCode SDK does not have the needed libfuzzer functionality included.
The build error that you will see from using the XCode SDK will look something like this:
ld: file not found:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0/lib/darwin/libclang_rt.fuzzer_osx.a
The solution to this problem is to use a full version llvm, like what you would get via homebrew, brew install llvm
, and use something like CC=<path to full clang> cmake ..
to setup a build using that toolchain.
The gn based work flow uses the Chromium toolchain for building in anticipation of integration of Tint into Chromium based projects. This toolchain has additional plugins for checking for style issues, which are marked with [chromium-style] in log messages. This means that this toolchain is more strict then the default clang toolchain.
In the future we will have a CQ that will build this work flow and flag issues automatically. Until that is in place, to avoid causing breakages you can run the [chromium-style] checks using the CMake based work flows. This requires setting CC
to the version of clang checked out by gclient sync
and setting the TINT_CHECK_CHROMIUM_STYLE
to ON
.
mkdir -p out/style cd out/style cmake ../.. CC=../../third_party/llvm-build/Release+Asserts/bin/clang cmake -DTINT_CHECK_CHROMIUM_STYLE=ON ../../ # add -GNinja for ninja builds
Please file any issues or feature requests at https://bugs.chromium.org/p/tint/issues/entry
Please see the contributing guide in the Dawn repo.