mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-12-08 21:26:17 +00:00
1527: Fix wgpu-hal incorrectly ignoring arrays of bindings. r=kvark a=ElectronicRU **Connections** Fixes #1526. **Description** Even though binding sizes could potentially be derived from resource array lengths and binding indices, current implementation flat out ignored that. Metal did a more sensible (?) thing and bound only the first resource in each array, Vulkan did a less sensible thing and bound as many resources as there are bindings, obtaining them from unwrapped arrays. (IE on Vulkan, if you bound two arrays, [view1, view2] and [view3, view4], it would actually bind [view1, <invalid>] and [view2, <invalid>]). This aims to fix the issue. **Testing** After #1525 is merged, `cargo run --example texture-arrays` would be working as intended for Vulkan. Unfortunately, I can think of no easy way to test this on Metal - the shader support isn't there yet. 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%