commit | 2097b03bdcc25120188c6685e365811c876e1a44 | [log] [tgz] |
---|---|---|
author | Tint team <no-reply@google.com> | Wed Jan 25 09:21:29 2023 +0000 |
committer | Tint LUCI CQ <tint-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Jan 25 09:21:29 2023 +0000 |
tree | 5de52e2a8c1c613f614b026fd0ca35629dfca001 | |
parent | ac8c414ab834f72957aabd45cc45ae08f920c315 [diff] |
Import Tint changes from Dawn Changes: - bb0229002db5cd1c58df4ff846020dcc180f9258 tint/uniformity: Violations are now errors by James Price <jrprice@google.com> - f38ee3e07392eb1d66b8f9fb0702ccef3d062926 tint/exe: Add --allow-non-uniform-derivatives flag by James Price <jrprice@google.com> - e657c470bdc66ba10468ed494a4cda0a7258f982 tint/uniformity: Add derivative_uniformity filter by James Price <jrprice@google.com> - 5853205342386f296377f3276a76d36181558ca3 tint/sem: Record diagnostic severity modifications by James Price <jrprice@google.com> - 613fbcf79ad0b366711f144dbd1d1c07132b910d tint: Add diagnostic and enable to ModuleCloneTest by James Price <jrprice@google.com> - c744a23d77d53b8e8e7b9d5c7d7439e2622034da tint/reader/wgsl: Parse @diagnostic attributes by James Price <jrprice@google.com> - 75326f88e64cad9bbf3e469e61ac1427fc8f43d8 tint/writer/wgsl: Handle diagnostic attributes by James Price <jrprice@google.com> - 8dd35110c28830d2d6f81145b142860d57bfc845 wgsl/reader: Parse diagnostic directives by James Price <jrprice@google.com> - 02855b5060831b7fa2dedf1a62567a3dc0c6207b tint/resolver: Handle diagnostic attributes on functions by James Price <jrprice@google.com> - e8ea579bceafe593964e6110559925362eb80842 tint/writer: Handle diagnostic directives by James Price <jrprice@google.com> - 81e55754e148eb27ec835fceebac577003df8a6b tint/resolver: Handle diagnostic directives by James Price <jrprice@google.com> - 098e3d8f90800a8a2f1f0a5aff054fcdb4bca146 tint/dependency_graph: Handle diagnostic controls by James Price <jrprice@google.com> - 15bf15d55f5f90e08c912d70be5de207cd34a80f tint/ast: Add global diagnostic controls to Module by James Price <jrprice@google.com> - 7d2b192439cb4a0380a2eb60947540a79a157847 tint: rename template argument token strings by Ben Clayton <bclayton@google.com> - f0d8edecee77d05fb3e670ca5a77ad211116e78a tint: Fix x86 build by Ben Clayton <bclayton@google.com> - 355b70d2be291a5d069df330810d0b484592618d tint/reader/wgsl: Use ClassifyTemplateArguments() by Ben Clayton <bclayton@google.com> - ef5434dcd17a18369084fc8b6b315bf3ddb609e8 tint/ast: Add DiagnosticAttribute AST node by James Price <jrprice@google.com> - 4ff2645d1620d65aae6d847f191ae0ca3ee27e22 tint/reader/wgsl: Add ClassifyTemplateArguments() by Ben Clayton <bclayton@google.com> - 6c8aa8aff9d13050080ce3e7c471d5a72273ade7 Resolve some reader/writer dependency issues by Brandon Jones <bajones@chromium.org> - c98d57d662b7fdd0c82fa8169cd98f87007530be tint: Rename 'static_assert' to 'const_assert' by Ben Clayton <bclayton@google.com> - 9dc48bcef3c390ac55eb52b76f932092c7c79f0a tint: Rename 'type' to 'alias' by Ben Clayton <bclayton@google.com> GitOrigin-RevId: bb0229002db5cd1c58df4ff846020dcc180f9258 Change-Id: I2d8e330bd6e37c5bd974a4bafa259a3aa947c163 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/117530 Commit-Queue: Ben Clayton <bclayton@google.com> Reviewed-by: Ben Clayton <bclayton@google.com> Kokoro: Kokoro <noreply+kokoro@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.