mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-12-08 21:26:17 +00:00
1525: Add Naga bypass to allow feeding raw SPIR-V shader data to the backend. r=kvark a=ElectronicRU **Connections** Fixes #1520 . **Description** While Naga checking is undoubtedly very useful, it currently lags behind what is possible in SPIR-V and even what is promised by WGPU (ie binding arrays). This adds an unsafe method to wgpu::Device to allow feeding raw SPIR-V data into the backend, and adds a feature flag to request a backend supporting this operation. **Testing** `texture_arrays` example is runnable now, which uncovers an additional bug in Vulkan backend - binding arrays are instead treated like sole bindings, and indices shift, too. Lots of errors from validation layer ensue. Co-authored-by: Alex S <alex0player@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
94.6%
JavaScript
5.4%