Skip to content

Commit 8c5c103

Browse files
committed
Experimental warnings
1 parent 62a52d8 commit 8c5c103

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

_posts/2019-03-06-wgpu.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
---
22
layout: post
3-
title: The rise of WebGPU
3+
title: The rise of wgpu
44
---
55

66
[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.
77

88
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.
99

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+
1012
## WebGPU
1113

1214
[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
1820

1921
## wgpu-rs
2022

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:
2224

2325
- 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.
2426
- 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
4547

4648
![WGPU shadow](/img/wgpu-shadow.png) ![WGPU asteroid](/img/wgpu-asteroid-giger.png)
4749

48-
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

Comments
 (0)