| # 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. |
| |
| [depot_tools]: http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up |
| |
| ### Getting source & dependencies |
| |
| ```sh |
| # 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 |
| ```sh |
| mkdir -p out/Debug |
| cd out/Debug |
| cmake -GNinja ../.. |
| ninja # or autoninja |
| ``` |
| |
| ### Compiling using CMake + make |
| ```sh |
| 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. |