CMake-only fork of https://dawn.googlesource.com/dawn with cleaned, vendored dependencies
Go to file
dan sinclair c954788b59 Move type methods to type class
This CL moves the checks for different types into the type class so it
can be used in both the type determinater and the SPIR-V builder.

Change-Id: I9142adaf5fc1d6048792645d7892f8d8900fcf59
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19921
Reviewed-by: David Neto <dneto@google.com>
2020-04-20 14:07:43 +00:00
build_overrides Add support for SPIRV reading to BUILD.gn 2020-04-15 20:35:38 +00:00
fuzz Initial commit 2020-03-02 15:47:43 -05:00
samples Add support for WGSL writing to BUILD.gn 2020-04-15 20:54:10 +00:00
src Move type methods to type class 2020-04-20 14:07:43 +00:00
test Fix type of gl_GlobalInvocationId in compute boids. 2020-03-31 15:06:07 +00:00
third_party Expand build flags for Tint. 2020-03-18 14:08:48 +00:00
tools Set root folder for linter. 2020-03-19 13:03:35 +00:00
.clang-format Initial commit 2020-03-02 15:47:43 -05:00
.gitignore More ignores 2020-04-12 18:21:02 +00:00
.gn Add in basic BUILD.gn and additional DEPS 2020-04-08 20:40:25 +00:00
BUILD.gn [spirv-writer] Add initial loop support. 2020-04-20 14:07:29 +00:00
CMakeLists.txt Set root folder for linter. 2020-03-19 13:03:35 +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 Initial commit 2020-03-02 15:47:43 -05:00
DEPS Adding support for testing BUILD.gn 2020-04-17 13:18:20 +00:00
Doxyfile Initial commit 2020-03-02 15:47:43 -05:00
LICENSE Initial commit 2020-03-02 15:47:43 -05:00
README.md Add depot tools to the requirements section. 2020-04-06 15:19:47 +00:00
standalone.gclient Convert dependency management to using gclient 2020-03-05 15:58:27 +00:00
tint_overrides_with_defaults.gni Adding support for testing BUILD.gn 2020-04-17 13:18:20 +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)

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

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.