mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
eeb9ead199662769084c7b07cd6a98045900e0de
1547: Don't merge stateless trackers from bind groups r=cwfitzgerald a=kvark **Connections** Hinted by @pythonesque on the matrix Follow-up to #1417 **Description** This is an optimization only. When a bind group is used, we need to ensure two things: 1. stateful usages are merged in (buffers and textures) 2. other resources are help alive by the command buffer We used to merge all of the states into the local trackers. However, the local tracker already keeps a strong reference to the whole bind group, so the resources in it are not going away. Therefore, we can skip having them separately in the local trackers. **Testing** Untested. Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.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%