mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
c293d6dcea0170bfa3835cfbd919f300560e0da6
429: Defer command buffer recycling until allocate r=kvark a=LaylConway As discussed on Matrix, this change defers command buffer recycling until allocation. This lets a rendering thread clean up its own command buffers, making sure only the owning thread accesses anything from its command pool. I have also added a TODO comment about cleaning up thread pools, which currently isn't happening as far as I can tell. This previously was an issue as well but now is a slightly bigger one as the command buffer wouldn't get recycled either. I figured that, for now, fixing that issue is out of the scope of this PR. This PR focuses only on resolving the race condition causing the validation error. This fixes #423 Co-authored-by: Layl <2385329-layl@users.noreply.gitlab.com>
This is an active GitHub mirror of the WebGPU native implementation in Rust, which now lives in Mozilla-central. Issues and pull requests are accepted, but we merge them in m-c manually and then sync to GitHub instead of landing directly here.
WebGPU
This is an experimental WebGPU implementation as a native static library. It's written in Rust and is based on gfx-hal and Rendy libraries. The corresponding WebIDL specification can be found at gpuweb project.
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 boundaryffi- the C headers generated by cbindgen for both of the libraries
Supported Platforms
| API | Windows | Linux | macOS & iOS |
|---|---|---|---|
| DX11 | ✔️ | ||
| DX12 | ✔️ | ||
| Vulkan | ✔️ | ✔️ | |
| Metal | ✔️ | ||
| OpenGL |
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.
Bindings:
- https://github.com/gfx-rs/wgpu-rs - idiomatic Rust wrapper with a few more examples to get a feel of the API
- https://nest.pijul.com/porky11/wgpu - experimental Scopes wrapper
Description
Languages
Rust
79.9%
WGSL
16.2%
HLSL
2%
GLSL
1.7%
JavaScript
0.2%