Expand description
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. Disable 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. -
serde
— Enables serialization viaserde
on common wgpu types. -
trace
— Enable API tracing. -
replay
— Enable API replaying -
wgsl
— EnableShaderModuleSource::Wgsl
-
glsl
— EnableShaderModuleSource::Glsl
-
spirv
— EnableShaderModuleSource::SpirV
-
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.
Re-exports§
pub use naga;
Modules§
- Allocating resource ids, and tracking the resources they refer to.
- Presentation.
Macros§
- gfx_if_dx12_hiddenNot (
dx12
and Windows) - gfx_if_empty_hiddenNot (neither
metal
norvulkan
norgles
and (macOS or iOS)) - gfx_if_metal_hiddenNot (
metal
and (macOS or iOS)) - gfx_if_vulkan_hiddenNot (
vulkan
and non-WebAssembly) - Dispatch on an
Id
’s backend to a backend-generic method.