mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
5b509692d1fb9654ae45b8c3eb752794ffc9e652
WebGPU
This is an experimental WebGPU implementation as a native static library. It's written in Rust and is based on gfx-hal and satellite libraries. The corresponding WebIDL specification can be found at gpuweb project.
The implementation consists of the following parts:
wgpu-native- the native implementation of WebGPU as a C API librarywgpu-bindings- automatic generator of actual C headerswgpu-remote- remoting layer to work with WebGPU across the process boundarywgpu-rs- idiomatic Rust wrapper of the native library
Example
To run an example, simply cd to the examples or gfx-examples directory, then use cargo run with --features {backend} to specify the backend (where {backend} is either vulkan, dx12, dx11 or metal). For example:
# Clone the wgpu repository
git clone https://github.com/gfx-rs/wgpu
# Change directory to `examples`
cd wgpu/examples
# Vulkan (Linux/Windows)
cargo run --bin hello_triangle --features vulkan
# Metal (macOS/iOS)
cargo run --bin hello_triangle --features metal
# DirectX12 (Windows)
cargo run --bin hello_triangle --features dx12
cd ../gfx-examples
# Vulkan (Linux/Windows)
cargo run --bin cube --features vulkan
# Metal (macOS/iOS)
cargo run --bin cube --features metal
# DirectX12 (Windows)
cargo run --bin cube --features dx12
These examples assume that necessary dependencies for the graphics backend are already installed. For more information about installation and usage, refer to the Getting Started guide.
Description
Languages
Rust
79.9%
WGSL
16.2%
HLSL
2%
GLSL
1.7%
JavaScript
0.2%