This release modernizes gpu.cpp around current Dawn and adds a maintained browser target.
- A browser backend using Emdawnwebgpu, Emscripten, JSPI, and an ES-module Embind API for persistent contexts and JavaScript typed arrays.
- Explicit read/read-write bindings, reusable kernels, uniform parameters, and
asynchronous dispatch and readback through
gpu::Future. - Native SPIR-V input with an executable WebGPU-profile contract test.
- C++ stories for WGSL, native f16, and SPIR-V; a NumPy Python story; and a Chrome story covering browser errors, context reuse, dispatch, and readback.
- Reproducible scripts pinning Dawn, Emdawn, emsdk, SPIRV-Tools, and SPIRV-Headers to exact revisions.
- A self-contained macOS ARM64 Python wheel and direct PyPI publish workflow.
- WebGPU objects now use Dawn's generated C++ RAII facade and normal C++ value semantics.
- The Python binding now follows the C++ API and preserves NumPy shape and
float16,float32, andint32dtypes. Futures retain their context and support blocking waits or nativeasynciodispatch and NumPy readback. - Host-side f16 uses native
_Float16where supported; the portable core treats f16 as two-byte IEEE 754 storage. - Examples and the build are consolidated under the root CMake project and the
single
./testentrypoint.
- The legacy raw WebGPU C API implementation, manual resource pools, custom half implementation, Haskell binding, obsolete build files, and abandoned experimental targets.
- The Closure compiler and Java dependency from browser builds.