mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
5f2df9af79cc7c36531aa0ae4d5998c9ec42fcd3
1518: Make spirv an optional feature r=cwfitzgerald a=kvark **Connections** https://github.com/gfx-rs/naga/issues/940 shows how much SPIR-V parsing can be a pain. **Description** Keep it supported natively, but put it behind a feature flag. This allows to skip compilation of parts of Naga as well as dependencies like `petgraph`. On my machine, compiling `wgpu-core` time is reduced from 40.87s to 35.36s, which is about 13% improvement. **Testing** Just compiling Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
wgpu
This is an implementation of WebGPU API in Rust, targeting both native and the Web. See the upstream WebGPU specification (work in progress).
The repository hosts the following parts:
- public Rust API for users
- internal Rust API for WebGPU implementations to use
- internal unsafe GPU abstraction API
- Rust types shared between
wgpu-coreandwgpu-rsplayer- standalone application for replaying the API traces, useswinit
Rust examples can be found at wgpu/examples. wgpu is a default member, so you can run the examples directly from the root, e.g. cargo run --example boids.
If you are looking for the native implementation or bindings to the API in other languages, you need wgpu-native.
Supported Platforms
| API | Windows 7/10 | Linux & Android | macOS & iOS |
|---|---|---|---|
| DX11 | |||
| DX12 | |||
| Vulkan | ✅ | ✅ | |
| Metal | ✅ | ||
| GLes3 |
✅ = Primary support — 🆗 = Secondary support — 🚧 = Unsupported, but support in progress
Description
Languages
Rust
79.9%
WGSL
16.2%
HLSL
2%
GLSL
1.7%
JavaScript
0.2%