Guide for using gfx-rs's wgpu library.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Ben Hansen 56c917c749 correcting code in tutorial3 and tutorial2 2 years ago
.cargo more-testing 2 years ago
.github/workflows trying to fix wasm deploy 2 years ago
code migrated to 0.13 2 years ago
docs correcting code in tutorial3 and tutorial2 2 years ago
run-wasm more-testing 2 years ago
.gitignore got heightmap working with compute shaders 2 years ago
Cargo.lock migrated to 0.13 2 years ago
Cargo.toml migrated to 0.13 2 years ago
FEATURES.md some fixes to web 2 years ago
LICENSE.md license 4 years ago
build-wasm.sh migrated to 0.13 2 years ago
index.template.html wasm is building 3 years ago
indices.png got heightmap working with compute shaders 2 years ago
package-lock.json Bump eventsource from 1.1.0 to 1.1.1 2 years ago
package.json working on tutorial9 2 years ago
run-all.sh migrated to 0.13 2 years ago
rustfmt.toml rustfmt 4 years ago
yarn.lock fixes #348 2 years ago

docs/README.md

Introduction

What is wgpu?

Wgpu is a Rust implementation of the WebGPU API spec. WebGPU is a specification published by the GPU for the Web Community Group. It aims to allow web code access to GPU functions in a safe and reliable manner. It does this by mimicking the Vulkan API, and translating that down to whatever API the host hardware is using (ie. DirectX, Metal, Vulkan).

Wgpu is still in development, so some of this doc is subject to change.

Why Rust?

Wgpu actually has C bindings to allow you to write C/C++ code with it, as well as use other languages that interface with C. That being said, wgpu is written in Rust, and it has some convenient Rust bindings that don't have to jump through any hoops. On top of that, I've been enjoying writing in Rust.

You should be fairly familiar with Rust before using this tutorial as I won't go into much detail on Rust syntax. If you're not super comfortable with Rust you can review the Rust tutorial. You should also be familiar with Cargo.

I'm using this project to learn wgpu myself, so I might miss some important details, or explain things badly. I'm always open to constructive feedback.

Contribution and Support

  • I accept pull requests (GitHub repo) for fixing issues with this tutorial such as typos, incorrect information, and other inconsistencies.
  • Due to wgpu's rapidly changing api, I'm not accepting any new pull requests for showcase demos.
  • If you want to support me directly, check out my patreon!

Translations

Special thanks to these patrons!

  • David Laban
  • Gunstein Vatnar
  • Lennart
  • Ian Gowen
  • Aron Granberg
  • Bernard Llanos
  • Jan Šipr
  • Zeh Fernando
  • Felix
  • Youngsuk Kim
  • オリトイツキ
  • Andrea Postal
  • charlesk