The only thing good about it, is moving the Web 3D beyond GL ES 3.0 subset.
Don't expect nanite or Fortnite on the browser anytime soon.
The only thing good about it, is moving the Web 3D beyond GL ES 3.0 subset.
Don't expect nanite or Fortnite on the browser anytime soon.
I have a PR that does a lot of the same things (meshlets, visbuffer, material depth, two pass occlusion culling) open for Bevy https://github.com/bevyengine/bevy/pull/10164 that I've been working on, which uses WebGPU.
WebGPU is actually a pretty good API imo. It's missing some advanced features like raytracing, mesh shaders, and subgroup operations (coming soon!), but it can still do a lot.
The much bigger missing feature is "bindless" support (non-uniform arrays of bound resources). BindGroup overhead (and ergonomics) is a significant downside.
If you're ever looking to join a team to advance Unreal Engine 5 and graphics in the browser, please reach out. We're tackling Nanite and Lumen in the browser, and contributing to the WebGPU spec in collaboration with Google.
You can reach me on Discord - my username is astlouis44
I'm also on LinkedIn: https://www.linkedin.com/in/alex-st-louis-3986a5102/
Best of luck though, and always glad to see more people work on the WebGPU spec! Maybe you can help push for raytracing and bindless extensions :)
WebGPU still has a nice balance between convenience and a somewhat modern feature set, but going down to the native platform 3D APIs (Metal, D3D12 and Vulkan) will always offer a much bigger feature set and less CPU overhead (mainly because WebGPU also needs to support mobile GPUs, and some of those are indeed 10 years behind the curve).
[1] https://registry.khronos.org/vulkan/specs/1.3-extensions/man...
[2] https://registry.khronos.org/vulkan/specs/1.3-extensions/man...
[3] https://registry.khronos.org/vulkan/specs/1.3-extensions/man...
[4] https://registry.khronos.org/vulkan/specs/1.3-extensions/man...
WebGPU outside of the browser doesn't really matter, middleware engines already cover that, and with much better tooling.
Besides WebGPU outside of the browser cannot deviate from the WebGPU on the browser, otherwise it is exactly the same pain as porting between OpenGL ES, OpenGL and WebGL, API that are only compatible in name.
In my opinion, the main strength of WebGPU is it removes the cost of re-implementing something when targeting a different platform. If that was present in 2015, maybe we'd have more games, more interesting applications, and less pressure on people who feel locked into one vendor's ecosystem.