Senryoku/necromach-gpu-dawn
Google's Dawn WebGPU implementation, cross-compiled with Zig into a single static library. The fork is used for experimenting how things works and searching for improvements to make updating less painful.
Deprecated
This project has been deprecated and is no longer maintained.
Rationale: https://github.com/hexops/mach/issues/1166
OR IS IT?
Since the deprecation of the Mach project while the status of Mach is unknown, we shall bring this project back to live because zgpu and zgui relies on a dawn binary built originally from one of the Mach repo.
Requirement
Due to the deprecation of Mach,the dependency of using tool from Mach is decoupled due to the outdated and hard to update codebase (stopped at ~zig 0.10.x). We have replaced the build system natively to the original dawn requirement, so you will need the following tools to make it work for the current iteration:
To build the library, all you need is to run:
zig buildTo use as a dependency
If webgpu_dawn is the name of the dependency in your build.zig.zon:
try @import("webgpu_dawn").link(b, "webgpu_dawn", your_module);If the build script fails
It basically does this:
git clone -c core.longpaths=true https://github.com/Senryoku/necromach-dawn libs/dawn
cmake -DCMAKE_TOOLCHAIN_FILE="zig-toolchain.cmake" -DCMAKE_BUILD_TYPE=Release -G Ninja -B ./build
cmake --build ./build --config ReleaseAdd these to the cmake configure command on Linux:
-DDAWN_USE_WAYLAND=ON
-DDAWN_USE_X11=ON