commit | 4560538e2e5f9109e53c6011e9087334dbacc5e9 | [log] [tgz] |
---|---|---|
author | Tint team <no-reply@google.com> | Wed Nov 09 11:41:15 2022 +0000 |
committer | Tint LUCI CQ <tint-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Nov 09 11:41:15 2022 +0000 |
tree | 1e7b3562be77e5455b0cd76379f13a16af0b8ab0 | |
parent | 1eb2e9be43dd8b4bb0bf9ac0f4fdfeed1aca69fc [diff] |
Import Tint changes from Dawn Changes: - 4f3f45c00f414e6b57782126b4d98c8c44813d8f Tint/transform: Fix insertBits polyfill for HLSL by Zhaoming Jiang <zhaoming.jiang@intel.com> - a70e365313d31757bc9b75002fa46b3366d551a8 tint: fix extractBits edge case by Antonio Maiorano <amaiorano@google.com> - c36417343fe1c2a526dc83cc378d96a6db3ce5e5 tint: const eval of cross by Antonio Maiorano <amaiorano@google.com> - eb949c87ee5aaa819faae6252dd36bfeda649070 spirv-reader: use spirv.hpp11 by David Neto <dneto@google.com> - 1bdaded736d61e4bdbf18a90c8ebac9f3274cb2f Implemement const-eval for some unpack routines. by dan sinclair <dsinclair@chromium.org> - ec4b650adb133672f48ed7d76c12459933cb229c Remove fallthrough from fuzzer AST mutation. by dan sinclair <dsinclair@chromium.org> - ba200e87c5db20d67e3c0d51bfb4ddf3151766fc tint: Bump stack size for MSVC + debug build by Ben Clayton <bclayton@google.com> - 5071a54af491e05444c02122b48e9cd5d65f82c7 Make reserved words an error. by dan sinclair <dsinclair@chromium.org> - 2d706a04360dc35409a2df324b936f6735eb1cd8 Implemement const-eval for some pack routines. by dan sinclair <dsinclair@chromium.org> - 3b2b5484e239fc558871c04eb061c201d0c15c36 Remove module-scope let deprecation. by dan sinclair <dsinclair@chromium.org> - c027f33cfd88efd155e88623300dc3356fcd6b95 tint: Fix gdb and lldb pretty printers for recently updat... by Antonio Maiorano <amaiorano@google.com> - ca98b1b1b9d797bf1fc65340036193a2e7a205b1 tint/resolver: Resolve dependencies of parameter attributes by Ben Clayton <bclayton@google.com> - 6f799d676d8cdec69153cc6b5ca6003598baf19f Change default acos test value. by dan sinclair <dsinclair@chromium.org> - f218af04610a66598d44ecbba6c2b17bb1e78433 Remove the `@stage` attribute by dan sinclair <dsinclair@chromium.org> GitOrigin-RevId: 4f3f45c00f414e6b57782126b4d98c8c44813d8f Change-Id: Ica3b6cfbfc9b29a0d28600b6f3116001246ad3a2 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/109100 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.