This is a small test app that uses WebGPU's unofficial
webgpu.h
header
as a platform-agnostic hardware abstraction layer.
It uses a C++ layer over webgpu.h
, called webgpu_cpp.h
.
On native platforms, this project can be built against
Dawn, Chromium's native WebGPU implementation.
On the Web, this project can be built against Emscripten, which implements webgpu.h
on top of the browser's own WebGPU JavaScript API (if
enabled).
It currently hasn't been set up to build against
wgpu-native's webgpu.h
implementation,
but that is a goal.
Check the issues tab for known issues.
Instructions are for Linux/Mac; they will need to be adapted to work on Windows.
Build has only been tested on Linux/Mac.
./setup_native_build.sh
mkdir -p out/native
cd out/native
cmake ../..
make clean all
This has been mainly tested with Chrome Canary on Mac, but should work on
Chrome/Edge/Firefox on any platform with support.
Requires chrome://flags/#enable-unsafe-webgpu
on Chrome/Edge.
Note: To build, the active Emscripten version must be at least 2.0.0.
# Make sure Emscripten tools are in the path.
pushd path/to/emsdk
source emsdk_env.sh
popd
mkdir -p out/web
cd out/web
emcmake cmake ../..
make clean all