wgpu-rs is an idiomatic Rust wrapper over wgpu-core. It's designed to be suitable for general purpose graphics and computation needs of Rust community.
wgpu-rs can target both the natively supported backends and WASM directly.
See our gallery and the wiki page for the list of libraries and applications using wgpu-rs
.
All examples are located under the examples directory.
These examples use the default syntax for running examples, as found in the Cargo documentation. For example, to run the cube
example:
cargo run --example cube
The hello*
examples show bare-bones setup without any helper code. For hello-compute
, pass 4 numbers separated by spaces as arguments:
cargo run --example hello-compute 1 2 3 4
The following environment variables can be used to configure how the framework examples run:
-
WGPU_BACKEND
Options:
vulkan
,metal
,dx11
,dx12
,gl
,webgpu
If unset a default backend is chosen based on what is supported by your system.
-
WGPU_POWER_PREF
Options:
low
,high
If unset a low power adapter is preferred.
-
WGPU_ADAPTER_NAME
Select a specific adapter by specifying a substring of the adapter name.
See wiki article.
WGSL is the main shading language of WebGPU.
Users can run the naga binary in the following way to convert their SPIR-V shaders to WGSL:
cargo run -- <input.spv> <output.wgsl>
In addition, SPIR-V can be used by enabling the spirv
feature and GLSL can be enabled by enabling the glsl
feature at the cost of slightly increased build times.