You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2019-03-06-wgpu.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,14 @@
1
1
---
2
2
layout: post
3
-
title: The rise of WebGPU
3
+
title: The rise of wgpu
4
4
---
5
5
6
6
[gfx-rs](https://github.com/gfx-rs/gfx) is a Rust project aiming to make graphics programming more accessible and portable, focusing on exposing a universal Vulkan-like API targeting all platforms. Over the past 2 years we've put a lot of effort into making gfx-rs API compatible with Vulkan and wrapping it in the [Vulkan Portability bindings](https://github.com/gfx-rs/portability). We optimized the Metal backend, nailed down hundreds of issues revealed by [Vulkan Conformance Test Suite](https://github.com/KhronosGroup/VK-GL-CTS), contributed our expertize to the [standardization process](https://github.com/KhronosGroup/Vulkan-Portability). What didn't go entirely smooth was the integration into Rust ecosystem: building libraries and applications on top of gfx-hal proved to be extremely challenging due to the low-levelness and unsafety of the API.
7
7
8
8
The main community driving gfx-hal adoption today is Amethyst, and they produced a nice helper library called [Rendy](https://github.com/omni-viral/rendy). As they call it, a "collection of crates to build your own renderer". The concept has a reminiscent of LLVM ("build your own compiler") and overall fits nicely into Amethyst philosophy. The project has recently [been released](https://community.amethyst-engine.org/t/rendy-is-released/459), and we encourage everyone to check it out.
9
9
10
+
This is all still very experimental: Amethyst hasn't fully switched to gfx-hal yet, Rendy is version 0.1.1, and gfx itself may surprise with missing features, although your mileage may vary per backend. But we're having a lot of fun with it already!
11
+
10
12
## WebGPU
11
13
12
14
[WebGPU](https://www.w3.org/community/gpu/) is a new graphics/compute API developed by the browser vendors (and Intel) within W3C:
@@ -18,7 +20,7 @@ With these goals in mind, we'd like to announce our new project: [wgpu-rs](https
18
20
19
21
## wgpu-rs
20
22
21
-
wgpu-rs is a safe, portable API which reduces the complexity of working with low-level graphics APIs. It has a layered implementation:
23
+
wgpu-rs is aiming to be a safe, portable API which reduces the complexity of working with low-level graphics APIs. It has a layered implementation:
22
24
23
25
- The `wgpu-native` layer which exposes a C API. `wgpu-native` implemented on top of gfx-hal which allows it to work with the same platforms that gfx-hal already supports. The idea is that `wgpu-native` will have a compatible C API with Google's [Dawn](https://dawn.googlesource.com/daw) implementation so they can be used interchangeably for applications compiled in other languages.
24
26
- The `wgpu-rs` layer which is an idiomatic safe Rust API. It uses `wgpu-native` internally when targetting the native targets. It will use Web APIs (from WASM host bindings) directly when targetting the Web in the future.
@@ -45,4 +47,4 @@ In a way, WebGPU is trying to accomplish all the goals we set for ourselves orig
We are looking forward to see what the community is able to accomplish with it, and I myself (@kvark) have a number of projects using gfx pre-ll that have been waiting for this moment to upgrade. With `wgpu-rs` we can finally deprecate the old gfx and have a solid recommendation for people getting starting with graphics in Rust.
50
+
`wgpu-rs` is a heavy work in progress, has only been developed since September last year, and as such some assembly is still required. However, those who don't mind some tinkering, will find a promising library with a bright future and a compelling compatibility proposition already. We are looking forward to see what the community is able to accomplish with it, and I myself (@kvark) have a number of projects using gfx pre-ll that have been waiting for this moment to upgrade. With `wgpu-rs` we can finally deprecate the old gfx and have a solid recommendation for people getting starting with graphics in Rust.
0 commit comments