bun-webgpu
WebGPU (Dawn) FFI bindings for Bun.
Usage
import { setupGlobals } from 'bun-webgpu';
setupGlobals();
const adapter = navigator.gpu.requestAdapter();
const device = await adapter?.requestDevice();
Find out more about WebGPU types here.
Building
Note: There are prebuilt binaries in the pipeline artifacts.
Prerequisites
- Bun: Ensure you have BunJS installed. (https://bun.sh)
- Zig: The native components of this library are written in Zig. Ensure Zig is installed and available in your PATH. (https://ziglang.org/learn/getting-started/)
- Pre-built Dawn Libraries: This project relies on pre-built Dawn libraries.
Building the FFI Liberary
The package.json includes scripts to build the native library components.
Conformance Test Suite (CTS)
To run the CTS, build the library first, then run the tests:
./run-cts.sh 'webgpu:api,operation,adapter,requestDevice:always_returns_device:*'
Run all webgpu tests for example with ./run-cts.sh 'webgpu:*'
Current results for webgpu:api,* are:
** Summary **
Passed w/o warnings = 39994 / 51160 = 78.17%
Passed with warnings = 0 / 51160 = 0.00%
Skipped = 8290 / 51160 = 16.20%
Failed = 2876 / 51160 = 5.62%
Testing
To run tests, build the library first, then run the tests:
bun test