mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
a74de20ac6f2e10c0328b21c0bb521986adbd258
514: Move some types into shared wgpu-types crate r=kvark a=grovesNL As we discussed a while ago, we need to be able to share some types between wgpu-core/wgpu-native/wgpu-remote/wgpu-rs. The problem is that we want to avoid a dependency on wgpu-core and wgpu-native when building [wgpu-rs for the wasm32-unknown-unknown target](https://github.com/gfx-rs/wgpu-rs/issues/101). We can avoid this by moving all shared types into a separate crate which is exposed on all targets. Let me know if we should use some other approach or organize the types somehow. This isn't complete yet, but it might be easier to integrate this over several PRs instead of diverging my branch too far. Co-authored-by: Joshua Groves <josh@joshgroves.com>
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 and a few Rendy bits. 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 Geckoffi- 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 | 🚧 | 🚧 | 🚧 |
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.
Description
Languages
Rust
79.9%
WGSL
16.2%
HLSL
2%
GLSL
1.7%
JavaScript
0.2%