52 releases
new 0.19.4 | Apr 18, 2024 |
---|---|
0.19.3 | Mar 1, 2024 |
0.19.2 | Feb 29, 2024 |
0.18.1 | Nov 15, 2023 |
0.5.6 | Jul 9, 2020 |
#23 in #web-gpu
214,704 downloads per month
Used in 1,309 crates
(12 directly)
5.5MB
118K
SLoC
This library safely implements WebGPU on native platforms. It is designed for integration into browsers, as well as wrapping into other language-specific user-friendly libraries.
Feature flags
-
api_log_info
--- Log all API entry points at info instead of trace level. -
resource_log_info
--- Log resource lifecycle management at info instead of trace level. -
link
(enabled by default) --- Use static linking for libraries. Disale to manually link. Enabled by default. -
renderdoc
--- Support the Renderdoc graphics debugger: https://renderdoc.org/ -
strict_asserts
--- Apply run-time checks, even in release builds. These are in addition to the validation carried out at public APIs in all builds. -
trace
--- Enable API tracing. -
replay
--- Enable API replaying -
serial-pass
--- Enable serializable compute/render passes, and bundle encoders. -
wgsl
--- EnableShaderModuleSource::Wgsl
-
fragile-send-sync-non-atomic-wasm
--- ImplementSend
andSync
on Wasm, but only if atomics are not enabled.WebGL/WebGPU objects can not be shared between threads. However, it can be useful to artificially mark them as
Send
andSync
anyways to make it easier to write cross-platform code. This is technically very unsafe in a multithreaded environment, but on a wasm binary compiled without atomics we know we are definitely not in a multithreaded environment.
Backends, passed through to wgpu-hal
-
metal
--- Enable themetal
backend. -
vulkan
--- Enable thevulkan
backend. -
gles
--- Enable theGLES
backend.This is used for all of GLES, OpenGL, and WebGL.
-
dx12
--- Enable thedx12
backend.
Dependencies
~2–14MB
~148K SLoC