![]() 553: Fix order of maintenace between submission tracking and buffer mapping. r=kvark a=kvark Fixes https://github.com/gfx-rs/wgpu-rs/issues/237 Logic needs to have the following order: 1. we first wait for the device to finish 2. then we move some tracked resources from per-submission lists into the "ready to destroy" or "ready to map" lists. 3. then we handle mapping, which goes through "ready to map" lists 4. then we destroy everything for realz that needs to be That order got broken with #547 Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com> |
||
---|---|---|
examples | ||
ffi | ||
wgpu-core | ||
wgpu-native | ||
wgpu-remote | ||
wgpu-types | ||
.clang-format | ||
.gitignore | ||
.travis.yml | ||
bors.toml | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
LICENSE | ||
logo.png | ||
Makefile | ||
README.md | ||
rustfmt.toml |

This is an active GitHub mirror of the WebGPU implementation in Rust, which now lives in "gfx/wgpu" of Mozilla-central. Issues and pull requests are accepted, but some bidirectional synchronization may be involved.
WebGPU
This is an experimental WebGPU implementation, exposing both Rust and C interfaces as a native static library. It's written in Rust and is based on gfx-hal with help of gfx-extras. See the upstream WebGPU specification (work in progress).
The implementation consists of the following parts:
wgpu-core
- internal Rust API for WebGPU implementations to usewgpu-native
- the native implementation of WebGPU as a C API librarywgpu-remote
- remoting layer to work with WebGPU across the process boundary, as a C API library used by Geckowgpu-types
- Rust types shared betweenwgpu-core
,wgpu-native
,wgpu-remote
, andwgpu-rs
ffi
- the C headers generated by cbindgen for the native headers
Bindings
- gfx-rs/wgpu-rs - idiomatic Rust wrapper with a few more examples to get a feel of the API
- almarklein/wgpu-py - experimental Python wrapper
- porky11/wgpu - experimental Scopes wrapper
- cshenton/WebGPU.jl - experimental Julia wrapper
Supported Platforms
API | Windows | Linux | macOS & iOS |
---|---|---|---|
DX11 | ✅ | ||
DX12 | ✔️ | ||
Vulkan | ✔️ | ✔️ | |
Metal | ✔️ | ||
OpenGL | 🚧 | 🚧 | 🚧 |
✔️ = Primary support — ✅ = Secondary support — 🚧 = Unsupported, but support in progress
Usage
This repository contains C-language examples that link to the native library targets and perform basic rendering and computation. Please refer to our Getting Started page at the wiki for more information.