Really interesting read. I'm just getting through the API history and one of the more interesting things that's claimed is that Vulkan was not designed to be targetted by programmers broadly. The expectation seemed to be that most game devs would use middleware like UE, Unity and those middleware would leverage the APIs directly.
Seems like this will go on to suggest WebGPU as a general alternative API, not just for web.
Edit: So WebGPU is basically Metal for web browsers, because Apple got their way, but Metal is generally well liked by devs for being the most pleasant to use. You can use WebGPU in standalone apps written in Rust or C++. It basically has standalone libraries for that purpose that match the web implementation. If you use it with standalone apps it sounds like SPIR-V might be an option instead of using the new WGSL. WebGPU basically gets translated into a native API (Metal, Vulkan, D3D) depending on which platform you are using. So WebGPU is the high-quality wrapper library that Vulkan had hoped would show up, it just took a long time to appear.
WebGPU spec https://www.w3.org/TR/webgpu/
WGSL spec https://www.w3.org/TR/WGSL/
Rust tutorial https://sotrh.github.io/learn-wgpu/
C++ tutorial https://eliemichel.github.io/LearnWebGPU/
Edit:
Found this cool blog post comparing graphics APIs. This blog in general looks very good.
Literally. Khronos does not want you to write Vulkan, or rather, they don't want you to write it directly. I was in the room when Vulkan was announced, across the street from GDC in 2015, and what they explained to our faces was that game developers were increasingly not actually targeting the gaming API itself, but rather targeting high-level middleware, Unity or Unreal or whatever, and so Vulkan was an API designed for writing middleware. The middleware developers were also in the room at the time, the Unity and Epic and Valve guys. They were beaming as the Khronos guy explained this. Their lives were about to get much, much easier.
...
Khronos did not forget about you and me. They just made a judgement, and this actually does make a sort of sense, that they were never going to design the perfectly ergonomic developer API anyway, so it would be better to not even try and instead make it as easy as possible for the perfectly ergonomic API to be written on top, as a library. Khronos thought within a few years of Vulkan⁸ being released there would be a bunch of high-quality open source wrapper libraries that people would use instead of Vulkan directly. These libraries basically did not materialize. It turns out writing software is work and open source projects do not materialize just because people would like them to⁹.
I want to talk about WebGPU
WebGPU is the new WebGL. That means it is the new way to draw 3D in web browsers. It is, in my opinion, very good actually. It is so good I think it will also replace Canvas and become the new way to draw 2D in web browsers. In fact it is so good I think it will replace Vulkan as well as normal...
cohost.org
Seems like this will go on to suggest WebGPU as a general alternative API, not just for web.
Edit: So WebGPU is basically Metal for web browsers, because Apple got their way, but Metal is generally well liked by devs for being the most pleasant to use. You can use WebGPU in standalone apps written in Rust or C++. It basically has standalone libraries for that purpose that match the web implementation. If you use it with standalone apps it sounds like SPIR-V might be an option instead of using the new WGSL. WebGPU basically gets translated into a native API (Metal, Vulkan, D3D) depending on which platform you are using. So WebGPU is the high-quality wrapper library that Vulkan had hoped would show up, it just took a long time to appear.
WebGPU spec https://www.w3.org/TR/webgpu/
WGSL spec https://www.w3.org/TR/WGSL/
Rust tutorial https://sotrh.github.io/learn-wgpu/
C++ tutorial https://eliemichel.github.io/LearnWebGPU/
Edit:
Found this cool blog post comparing graphics APIs. This blog in general looks very good.
A Comparison of Modern Graphics APIs
Low level Graphics APIs such as DirectX 12, Vulkan, Metal, and WebGPU are converging to a model similar to the way GPUs are currently built. In this article we'll review modern graphics APIs and how they compare with older graphics APIs such as OpenGL in their design and data structures.
alain.xyz
Last edited: