62 lines
1.5 KiB
Markdown
62 lines
1.5 KiB
Markdown
# 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.
|