CMake-only fork of https://dawn.googlesource.com/dawn with cleaned, vendored dependencies
Go to file
Ryan Harrison 11eda3cc3e Rolling 5 dependencies
Roll build/ aae8259e7..b1d8cdddd (59 commits)

aae8259e75..b1d8cdddd3

$ git log aae8259e7..b1d8cdddd --date=short --no-merges --format='%ad %ae %s'
2020-08-31 pkotwicz Update renamed PRESUBMIT function in docs
2020-08-31 chromium-autoroll Roll Fuchsia SDK from 0.20200831.0.1 to 0.20200831.1.1
2020-08-31 chromium-autoroll Roll Fuchsia SDK from 0.20200830.3.1 to 0.20200831.0.1
2020-08-31 wenbinzhang Revert "Rename wrapper_scripts for generated_script tests in MB."
2020-08-30 chromium-autoroll Roll Fuchsia SDK from 0.20200830.1.1 to 0.20200830.3.1
2020-08-30 chromium-autoroll Roll Fuchsia SDK from 0.20200830.0.1 to 0.20200830.1.1
2020-08-30 chromium-autoroll Roll Fuchsia SDK from 0.20200829.3.1 to 0.20200830.0.1
2020-08-30 chromium-autoroll Roll Fuchsia SDK from 0.20200829.2.1 to 0.20200829.3.1
2020-08-29 chromium-autoroll Roll Fuchsia SDK from 0.20200829.1.1 to 0.20200829.2.1
2020-08-29 chromium-autoroll Roll Fuchsia SDK from 0.20200828.3.1 to 0.20200829.1.1
2020-08-29 dpranke Add xvfb logic to all windowed test launcher targets.
2020-08-29 magchen Revert "Reland "Reland "X11 and Ozone: enable use_x11 and use_ozone"""
2020-08-28 chromium-autoroll Roll Fuchsia SDK from 0.20200828.1.1 to 0.20200828.3.1
2020-08-28 nharper Revert "Enable whole-program devirtualization for arm64 Android build."
2020-08-28 bjoyce Add result sink for test uploads.
2020-08-28 msisov Reland "Reland "X11 and Ozone: enable use_x11 and use_ozone""
2020-08-28 dpranke Rename wrapper_scripts for generated_script tests in MB.
2020-08-28 chromium-autoroll Roll Fuchsia SDK from 0.20200828.0.1 to 0.20200828.1.1
2020-08-28 benmason Revert "Update TrichromeChrome version code."
2020-08-28 chromium-autoroll Roll Fuchsia SDK from 0.20200827.3.2 to 0.20200828.0.1
2020-08-28 dewittj [AAR] Re-enable info file asserts.
2020-08-28 thomasanderson Reland "Roll sysroots"
2020-08-28 chromium-autoroll Roll Fuchsia SDK from 0.20200826.2.2 to 0.20200827.3.2
2020-08-27 smaier Removing extract_assets from android_aar_prebuilt
2020-08-27 msisov Reland "linux sysroot: fix libwayland-client-symbols file."
2020-08-27 chonggu [Fuchsia] Switch to dynamic loading of loosely-coupled target modules.
2020-08-27 waynepie [Fuchsia] Add recommended command-line to get access to /dev/kvm
2020-08-27 wez [fuchsia] Use virtio-net-pci for both ARM64 and x64 emulation.
2020-08-27 thomasanderson Revert "Roll sysroots"
2020-08-27 agrieve Revert "Android: Enable vertical class merging in R8"
2020-08-27 sclittle Revert "linux sysroot: fix libwayland-client-symbols file."
2020-08-27 thomasanderson Roll sysroots
2020-08-27 msisov linux sysroot: fix libwayland-client-symbols file.
2020-08-27 msisov Revert "Reland "X11 and Ozone: enable use_x11 and use_ozone""
2020-08-27 agrieve Remove unused constant build_utils.JAVA_PATH
2020-08-26 chromium-autoroll Roll Fuchsia SDK from 0.20200826.1.1 to 0.20200826.2.2
2020-08-26 chromium-autoroll Roll Fuchsia SDK from 0.20200826.0.1 to 0.20200826.1.1
2020-08-26 yukishiino base/allocator: Fix android_cronet build with PA-Everywhere
2020-08-26 msisov Reland "X11 and Ozone: enable use_x11 and use_ozone"
2020-08-26 wuwang Replaces uncommon char in file name for filesystem compatibility.
2020-08-26 chromium-autoroll Roll Fuchsia SDK from 0.20200825.3.1 to 0.20200826.0.1
2020-08-26 mark mac/arm64: Update to Xcode 12b6 (12A8189n)
2020-08-26 kouhei Specify libtinfo5 legacy package for building on Ubuntu 20.04
2020-08-25 chromium-autoroll Roll Fuchsia SDK from 0.20200825.1.1 to 0.20200825.3.1
2020-08-25 caseq Revert "X11 and Ozone: enable use_x11 and use_ozone"
2020-08-25 smaier Ignoring raw resources in HardcodeSharedLibraryDynamicAttributes
2020-08-25 msisov X11 and Ozone: enable use_x11 and use_ozone
2020-08-25 thestig Fix outdated comment in install-build-deps.sh.
2020-08-25 thestig install-build-deps: select between lib32gcc1 and lib32gcc-s1 as needed.
2020-08-25 wnwen Android: Ignore AppCompatResource lint warning
2020-08-25 msisov lacros: don't set pangocairo
2020-08-25 chromium-autoroll Roll Fuchsia SDK from 0.20200825.0.1 to 0.20200825.1.1
2020-08-25 agrieve Android: Enable vertical class merging in R8
2020-08-25 chromium-autoroll Roll Fuchsia SDK from 0.20200824.3.1 to 0.20200825.0.1
2020-08-25 brucedawson Handle toolchains with/without ..\.. in variables
2020-08-25 nbilling Implement DWARF Fission support in Chrome Android.
2020-08-25 caseq Fix headless build broken after #800929
2020-08-24 chromium-autoroll Roll Fuchsia SDK from 0.20200824.2.1 to 0.20200824.3.1
2020-08-24 chromium-autoroll Roll Fuchsia SDK from 0.20200824.0.1 to 0.20200824.2.1

Roll testing/ 3a36cd6d9..2691851e4 (48 commits)

3a36cd6d92..2691851e49

$ git log 3a36cd6d9..2691851e4 --date=short --no-merges --format='%ad %ae %s'
2020-08-31 jonahr Reduce webgl testing load on Mac Pro
2020-08-31 wenbinzhang Revert "Rename wrapper_scripts for generated_script tests in MB."
2020-08-29 dpranke Add xvfb logic to all windowed test launcher targets.
2020-08-29 zhaoyangli [iOS][infra] Run tests in iOS14 runtimes on ios-simulator-full-configs
2020-08-28 dpranke Rename wrapper_scripts for generated_script tests in MB.
2020-08-28 rmhasan skew tests, weblayer: Use temporary CIPD package tags
2020-08-28 wuwang Disable chrome_java_test_wpr_tests on Marshmallow 64 bit Tester
2020-08-27 dpranke Rework command handling for MB generated_scripts.
2020-08-27 svenzheng [lacros] Disable some content_browsertests
2020-08-27 zhaoyangli [iOS][infra] Remove iOS14 tester pool "chromium.tests.ios14" config.
2020-08-27 livvielin Enable HTTPDangerWarning by default
2020-08-27 cyan [Tab Groups Collapse] Add field trial testing config.
2020-08-27 fdoray Revert "[blink scheduler] Add OptOutWebRTCFromAllThrottling to testing config."
2020-08-27 ajuma [iOS] Add field trial testing config for real-time Safe Browsing
2020-08-27 javierrobles [iOS][Biometric-Auth] Add experiment config
2020-08-27 schwering [Autofill] Field trial config for user-filled-override fix.
2020-08-27 schwering [Autofill] Launched company-name blacklisting experiments.
2020-08-27 jinsukkim Enable gesturenav flaky test on android-pie-x86-fyi-rel
2020-08-26 dom Delay competing low priority requests in the renderer
2020-08-26 szager Add fieldtrial config for CompositeCrossOriginIframes
2020-08-26 rmhasan Change indents in variants.pyl to match other .pyl files
2020-08-26 sgilhuly Add test names to parameterized cc_unittests
2020-08-26 zhaoyangli [infra] Roll iOS bots to Xcode 12 beta 6 12a8189n.
2020-08-26 chonggu [Fuchsia] Enable more gpu integration tests on Fuchsia CI and CQ
2020-08-26 sgilhuly Enable TranslucentRectangles test on SkiaRenderer Dawn
2020-08-26 thestig Remove EnableCustomMacPaperSizes feature flag.
2020-08-26 mohsen Removed field trial config for DisableLatencyRecoveryDesktop
2020-08-26 yaoxia Field trial testing config for FlocIdComputedEventLogging
2020-08-26 jdeblasio [MIX-DL] Update field trial testing config
2020-08-26 rmhasan skew testing: Add variants.pyl owners
2020-08-25 dtseng Adds support for EventFrom action in desktop tree
2020-08-25 estaab Relax requirement to run web tests on Mac 10.13 bots with GPUs.
2020-08-25 svenzheng [lacros] Disable some flaky browser and interactive ui tests
2020-08-25 hypan Revert "android: Temporarily remove content_browsertests from L CQ builder"
2020-08-25 kmilka Add SharingHub to fieldtrial testing config
2020-08-25 twellington Reland "Disable P/CompositorImplBrowserTestRefreshRate.VideoPreference on M x86"
2020-08-25 hypan Revert "Disable P/CompositorImplBrowserTestRefreshRate.VideoPreference on M x86"
2020-08-25 hypan android: Increase the expiration for builders Android WebView {N,O} (dbg)
2020-08-25 gbeaty Set compile targets for chromium builders in test specs.
2020-08-25 sinansahin [Offline indicator v2] Add field trial testing entry
2020-08-25 vovoy Enable CrOSUserSpaceLowMemoryNotification by default
2020-08-24 svenzheng [lacros] Run components_unittests on CQ
2020-08-24 twellington Disable P/CompositorImplBrowserTestRefreshRate.VideoPreference on M x86
2020-08-24 michaelbai Support simulation of internal-profile reporting
2020-08-24 mcrouse [LiteVideo] Fieldtrial updated for beta experiment.
2020-08-24 johnchen [Perf] Configure android-pixel4a_power-perf bot
2020-08-24 jeffyoon Reland "[ios] noncq to run tests on 14.0 simulators"
2020-08-24 rmhasan weblayer: Add skew tests for new versions released in beta

Roll third_party/googletest/ 1e315c5b1..df6b75949 (1 commit)

1e315c5b1a..df6b75949b

$ git log 1e315c5b1..df6b75949 --date=short --no-merges --format='%ad %ae %s'
2020-08-26 absl-team Googletest export

Roll third_party/spirv-tools/ 4dd122392..8a0ebd40f (14 commits)

4dd122392f..8a0ebd40f8

$ git log 4dd122392..8a0ebd40f --date=short --no-merges --format='%ad %ae %s'
2020-08-31 jaebaek Correctly replace debug lexical scope of instruction (#3718)
2020-08-28 afdx spirv-fuzz: Remove opaque pointer design pattern (#3755)
2020-08-27 stefanomil spirv-fuzz: Create synonym via OpPhi and existing synonyms (#3701)
2020-08-27 stefanomil Add LoopNestingDepth function to StructuredCFGAnalysis (#3754)
2020-08-27 afdx spirv-fuzz: Do not make synonyms of void result ids (#3747)
2020-08-26 greg Do not register DebugFunction for functions optimized away. (#3749)
2020-08-26 jaebaek Handle DebugScope in compact-ids pass (#3724)
2020-08-26 afdx spirv-fuzz: Overflow ids (#3734)
2020-08-25 greg Fix DebugNoScope to not output InlinedAt operand. (#3748)
2020-08-25 vasniktel spirv-fuzz: Split the fact manager into multiple files (#3699)
2020-08-25 andreperezmaselco.developer spirv-fuzz: Add inline function transformation (#3517)
2020-08-25 vasniktel spirv-fuzz: Fix MaybeGetZeroConstant (#3740)
2020-08-24 greg Fix SSA-rewrite to remove DebugDeclare for variables without loads (#3719)
2020-08-24 stevenperron Add undef for inlined void function (#3720)

Roll tools/clang/ 9784c4f72..fcef86e30 (7 commits)

9784c4f72a..fcef86e30a

$ git log 9784c4f72..fcef86e30 --date=short --no-merges --format='%ad %ae %s'
2020-08-31 hans blink_gc_plugin: Update stack_allocated test expectations
2020-08-28 hans Fix the blink_gc_plugin tests after crrev.com/802490
2020-08-28 yukiy Remove a template param of LinkedHashSet in stub
2020-08-27 hans Roll clang llvmorg-12-init-3492-ga1caa302-1 : llvmorg-12-init-4187-g33ce275f-1.
2020-08-25 hans Clang build.py: Update gnuwin version to 14
2020-08-24 thakis clang upload script: Run mac-arm64-rel try bot on compiler rolls.
2020-08-24 thakis clang upload script: sort cq-include-trybots footer alphabetically

Created with:
  roll-dep build buildtools testing third_party/googletest third_party/gpuweb-cts third_party/spirv-headers third_party/spirv-tools tools/clang

Change-Id: I0f041fc70616672a715e6a8e63e988e947cc59ff
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/27762
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
2020-08-31 19:16:04 +00:00
build_overrides Remove binutils from DEPS and pull in changes to build.gni from Dawn 2020-07-28 17:57:53 +00:00
fuzzers Add SPIR-V Reader Fuzzer 2020-07-30 21:24:29 +00:00
include/tint Add vertex pulling transform 2020-08-12 17:23:58 +00:00
infra/config Remove refs.cfg. 2020-07-16 19:02:29 +00:00
samples Fix handling of .spvasm inputs 2020-08-13 17:33:59 +00:00
src [spirv-reader] Set some source locations 2020-08-31 18:52:54 +00:00
test Fix triangle.wgsl's floating point literals. 2020-08-24 13:04:36 +00:00
third_party Enable Tint as part of a larger CMake project 2020-06-26 22:29:27 +00:00
tools Handle review feedback. 2020-07-23 15:51:02 +00:00
.clang-format Initial commit 2020-03-02 15:47:43 -05:00
.gitignore Add simple test runner. 2020-07-23 15:01:37 +00:00
.gn Add in basic BUILD.gn and additional DEPS 2020-04-08 20:40:25 +00:00
BUILD.gn [spirv-writer] Convert ast image format types to spv 2020-08-31 15:49:43 +00:00
CMakeLists.txt Add SPIR-V Reader Fuzzer 2020-07-30 21:24:29 +00:00
CODE_OF_CONDUCT.md Initial commit 2020-03-02 15:47:43 -05:00
CONTRIBUTING.md Fixup the contributing file. 2020-04-06 18:43:20 +00:00
CPPLINT.cfg Adding PRESUBMIT.py with a bunch of checks turned on 2020-06-03 13:41:41 +00:00
DEPS Rolling 5 dependencies 2020-08-31 19:16:04 +00:00
Doxyfile Fixup some doc and compile issues. 2020-07-24 00:11:53 +00:00
LICENSE Initial commit 2020-03-02 15:47:43 -05:00
PRESUBMIT.py Fix nit in PRESUBMIT.py 2020-06-03 16:12:09 +00:00
README.md Add support for running [chromium-style] checks in CMake builds 2020-04-28 19:27:38 +00:00
standalone.gclient Convert dependency management to using gclient 2020-03-05 15:58:27 +00:00
tint_overrides_with_defaults.gni Change the default for BUILD.gn to build all the modules 2020-07-30 18:44:04 +00:00

README.md

Tint

Tint is a compiler for the WebGPU Shader Language (WGSL).

This is not an officially supported Google product.

Requirements

  • Git
  • CMake (3.10.2 or later)
  • Ninja (or other build tool)
  • Python, for fetching dependencies
  • depot_tools in your path

Build options

  • 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)

Building

Tint uses Chromium dependency management so you need to install depot_tools and add it to your PATH.

Getting source & dependencies

# 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

Compiling using CMake + Ninja

mkdir -p out/Debug
cd out/Debug
cmake -GNinja ../..
ninja # or autoninja

Compiling using CMake + make

mkdir -p out/Debug
cd out/Debug
cmake ../..
make # -j N for N-way parallel build

Compiling using gn + ninja

mkdir -p out/Debug
gn gen out/Debug
autoninja -C out/Debug

Fuzzers on MacOS

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.

Checking [chromium-style] issues in CMake builds

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

Issues

Please file any issues or feature requests at https://bugs.chromium.org/p/tint/issues/entry

Contributing

Please see the CONTRIBUTING and CODE_OF_CONDUCT files on how to contribute to Tint.