commit | ae530a0dac1ee15be1d396d221567a296ed557a6 | [log] [tgz] |
---|---|---|
author | Tint team <no-reply@google.com> | Thu Mar 02 13:12:26 2023 +0000 |
committer | Tint LUCI CQ <tint-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Mar 02 13:12:26 2023 +0000 |
tree | 96298f8551455678775334a02bb9008eaed75c82 | |
parent | effabfdc93c90d5d755c11a33f26d41dd4acf9b8 [diff] |
Import Tint changes from Dawn Changes: - d623182c336bad0be262a544d8b5865a1565c5da tint/PromoteInitializers: Do not hoist abstracts by James Price <jrprice@google.com> - dee884c9257cc3b2c533c6b0ec338296d3839632 Convert most remaining usages to utils::StringStream. by dan sinclair <dsinclair@chromium.org> - 7c21fe5d92c87e7defd37a367de0ab933dad1973 tint/uniformity: Fix struct member partial pointers by James Price <jrprice@google.com> - b7c2aed189b5006628a6998d3d9aca783c89c864 tint: Skip short-circuited array init const eval by James Price <jrprice@google.com> - 0723a3c7f8f193db9e557edae9833f86c226539e Convert WGSL reader to utils::StringStream. by dan sinclair <dsinclair@chromium.org> - 0c184c285621f91969c199e6da54beaeac6560f0 Convert SPIR-V reader to utils::StringStream. by dan sinclair <dsinclair@chromium.org> - b23cda4bc24f931f8be3d8999dbbf67838c407eb Convert the resolver over to utils::StringStream. by dan sinclair <dsinclair@chromium.org> - b2ba57b15d6c935eaf8c2c4e6a6d6c6d5ab02566 Convert TextGenerator over to utils::StringStream. by dan sinclair <dsinclair@chromium.org> - 88fea2a9c33436d42f284948cc8fab2d31295116 Convert the WGSL generator to utils::StringStream. by dan sinclair <dsinclair@chromium.org> - ec24bb2f0ce2eed088d0d1fc9dcd2a087d51f5f9 Convert SPIR-V Writer over to utils::StringStream. by dan sinclair <dsinclair@chromium.org> - 52fa68b1a748b90b3f646a46c98ce72607608c60 Convert MSL generator over to utils::StringStream. by dan sinclair <dsinclair@chromium.org> - 2b9d5b338a28cf6d919bcb51c84561f77d2b2f16 Convert HLSL generator over to utils::StringStream. by dan sinclair <dsinclair@chromium.org> - dba03d30fb141e94d7d823924fd9a7c3a642d095 Convert GLSL Generator over to utils::StringStream. by dan sinclair <dsinclair@chromium.org> - a4637ad8a314c50138c03500dfe76c3ee5ffde3e Convert IR over to `utils::StringStream`. by dan sinclair <dsinclair@chromium.org> - 7ca41fffb782f0f75203dbaf91a6594203894a0d Add a utils/string_stream class. by dan sinclair <dsinclair@chromium.org> - 4d3af66bbdafda4284a0eefb0d384ccdb77a7080 tint/msl: Preserve trailing vec3 padding by James Price <jrprice@google.com> - 43ffb09247e1e48f021abb63131bedd449e55209 tint: validate max number of case selectors in a switch s... by Antonio Maiorano <amaiorano@google.com> - 1bb5be9789272206ea23ebe6454fa8afca579722 tint: improve error message about function paramter limit by Antonio Maiorano <amaiorano@google.com> - 6b304e9ffd649602d8074d0362928479416c8d3e tint: validate max nesting depth of composite types by Antonio Maiorano <amaiorano@google.com> - 0b3400c56e1ac2782f8bca1854cab1a1c282b141 tint: Add chromium_internal_relaxed_uniform_layout by James Price <jrprice@google.com> - 806135658dbc91b5dd581cc11effca62455bd2ca tint: Pass constant::Values to ArrayOrStructCtor by James Price <jrprice@google.com> - c5ec169b890ac8a16bffbb4f063cbede6f34294e classify template args: add cases used to debug Treesitte... by David Neto <dneto@google.com> - 6176c85be83b08a7bf4f2e6ec6422d65a5ee5290 tint: Preserve padding in matrices with three rows by James Price <jrprice@google.com> - fe19fee3ea3ddf7d0ef1995f7e89739870c20a94 tint/const-eval: Fix runtime semantics for (x % 0) by James Price <jrprice@google.com> - 04529be9b74e20e515eb30ca14303063ae49df3f Dawn/Tint: Polyfill reflect vec2<f32> for D3D12 FXC on In... by Zhaoming Jiang <zhaoming.jiang@intel.com> GitOrigin-RevId: d623182c336bad0be262a544d8b5865a1565c5da Change-Id: Ie09db15507c3ff36b0e23aadb5ef1a70753dbe61 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/121680 Commit-Queue: Ben Clayton <bclayton@google.com> Kokoro: Kokoro <noreply+kokoro@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.