Cross-platform, safe, pure-rust graphics api.
Go to file
bors[bot] d6d31695d3
Merge #553
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>
2020-04-05 21:54:16 +00:00
examples Check surface compatibility 2020-03-30 23:31:24 -04:00
ffi Use NonZeroU64 for Id 2020-04-04 19:43:16 -04:00
wgpu-core Merge #553 2020-04-05 21:54:16 +00:00
wgpu-native Use NonZeroU64 for Id 2020-04-04 19:43:16 -04:00
wgpu-remote Check surface compatibility 2020-03-30 23:31:24 -04:00
wgpu-types Use NonZeroU64 for Id 2020-04-04 19:43:16 -04:00
.clang-format Reduce left indentation for nested structs 2019-03-08 07:15:36 -07:00
.gitignore Using default nsview if not provided by raw-window-handle 2020-01-18 10:06:10 -08:00
.travis.yml Run clippy only when not on nightly 2020-01-23 16:05:44 +01:00
bors.toml CI scripts 2018-09-14 11:39:24 -04:00
Cargo.lock Parking lot update to 0.10 2020-03-27 10:42:18 -04:00
Cargo.toml Move some types into shared wgpu-types crate 2020-03-10 22:36:23 -02:30
CHANGELOG.md Release preparations 2019-11-03 18:52:57 -05:00
LICENSE Initial commit 2018-09-13 15:18:51 -04:00
logo.png Update logo and move bindings section 2020-03-03 00:10:04 -03:30
Makefile Update Makefile 2019-12-28 10:30:32 +01:00
README.md Merge #536 2020-03-27 13:43:26 +00:00
rustfmt.toml Enforce the HUB lock order 2019-07-04 14:43:54 -04:00

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

Matrix Build Status Crates.io Crates.io

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:

  1. wgpu-core - internal Rust API for WebGPU implementations to use
  2. wgpu-native - the native implementation of WebGPU as a C API library
  3. wgpu-remote - remoting layer to work with WebGPU across the process boundary, as a C API library used by Gecko
  4. wgpu-types - Rust types shared between wgpu-core, wgpu-native, wgpu-remote, and wgpu-rs
  5. ffi - the C headers generated by cbindgen for the native headers

Bindings

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.