mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-07-07 21:55:53 +00:00
(I expect that) the WGSL signed division operator expects both operands to be signed and the result will also be signed. When the operands of a SPIR-V OpSDiv is unsigned, then wrap the operand in an as-cast to the corresponding signed type. When the result type of a SPIR-V OpSDiv instruction is unsigned, we have to wrap the generated WGSL operator with an as-cast to that unsigned type. This first CL addresses OpSDiv. We'll address other operations in future CLs. Bug: tint:3 Change-Id: If3849ceb44b21db87c1efd2c6a2cd63c6d648c88 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19800 Reviewed-by: dan sinclair <dsinclair@google.com>
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.
Description
CMake-only fork of https://dawn.googlesource.com/dawn with cleaned, vendored dependencies
Languages
C++
59.9%
HLSL
18.2%
GLSL
17.3%
Go
2.1%
Objective-C++
0.8%
Other
1.6%