We just released naga v0.17.0 — our Pure Go shader compiler now generates
DXIL (DirectX 12 bytecode) directly, without requiring Microsoft's FXC or
DXC compilers.
naga compiles WGSL to five backend formats: SPIR-V (Vulkan), MSL (Metal),
GLSL (OpenGL), HLSL (DirectX 11/12), and now DXIL (DirectX 12 SM 6.0).
All in Pure Go, zero CGO.
The DXIL backend implements LLVM 3.7 bitcode generation from scratch —
no LLVM linking. ~12,500 lines of Go, 190 tests. Verified rendering at
60 FPS on D3D12.
Usage:
import "
github.com/gogpu/naga/dxil"
dxilBytes, err := dxil.Compile(irModule, dxil.DefaultOptions())
Install:
go get
github.com/gogpu/na...@v0.17.0 GitHub:
https://github.com/gogpu/naga Release:
https://github.com/gogpu/naga/releases/tag/v0.17.0 Article:
https://dev.to/kolkov/we-built-the-first-pure-go-dxil-generator-because-optimizing-the-wrong-path-wasnt-enough-35en Part of the GoGPU ecosystem (
https://github.com/gogpu).