Expand description
§ironaccelerator-webgpu
WebGPU backend for the browser. This is the WASM compute path, and only that: on native targets, Vulkan, Metal, D3D12, and OpenGL reach the same hardware directly, so routing through a portability layer would add a translation step without adding coverage.
§How it works
WebGPU adapter negotiation is asynchronous and
Backend is not, so this crate does not
negotiate. The host awaits requestAdapter() / requestDevice(), keeps the
resulting GPUDevice, and describes it once via drv::bind_adapter.
From then on the adapter shows up in Runtime::devices() alongside every
native backend.
use ironaccelerator_webgpu::drv::{bind_adapter, AdapterInfo};
// After `requestDevice()` resolves, from whatever binding layer you use:
bind_adapter(AdapterInfo {
vendor: "nvidia".into(),
architecture: "ampere".into(),
shader_f16: true,
max_buffer_size: 1 << 28,
..Default::default()
});§What it deliberately does not do
No buffers, pipelines, or dispatch. Those need a live GPUDevice, which
stays with the host, and wrapping them would mean re-exporting a binding
crate’s types through this API — the coupling that made the previous
wgpu-based version 98 transitive dependencies deep. The host already
holds the device and can call WebGPU directly.
Consequently this crate has no dependencies beyond
ironaccelerator-core and compiles for every
target, wasm32-unknown-unknown included, with no feature flags and no
--cfg requirements.
Re-exports§
pub use backend::WebGpuBackend;pub use backend::WEBGPU_BACKEND;pub use drv::bind_adapter;pub use drv::bound_adapter;pub use drv::unbind_adapter;pub use drv::AdapterInfo;
Modules§
Functions§
- register
- Register the WebGPU backend into the given registry. Idempotent.