To turn this on its head, if I'm creating a new product now, why invest time into an API where by the time the product would be ready with WebGL, instead I chose WebGPU, so now have the risks:
- The API is still years away from mainstream.
- Doesn't solve anything for my use case that wouldn't be solved with WebGL.
- Is too buggy to use on most configurations.
- Isn't supported by X hardware or Y OS.
- Has security issues that make browsers disable it for years.
- The code has to be regularly updated/maintained/fixed when browsers update.
- Performance could be lower for low end systems.
- Even if everything worked, it's a lot more work to do everything (e.g. VULKAN).
- To beat webGL, you have to optimise specifically for mobile/desktop/amd/nvidia/etc
- The documentation is poor.
- It's impossible to hire an expert in webGPU.
- It's very expensive to test every combination of GPU/OS/driver so you have no confidence it is working correctly.
Most rendering code should abstract to many APIs anyway, so not starting with a webgl version would be quite insane.It unlocks a number of nice to haves over WebGL 1 which improve usability, quality and performance. As Safari was the last stand out developers can now rely on these things being there.
It's here now. WebGPU has been on the horizon for many years, and probably will be for several more before you can actually expect it to work on users browsers. Presuming we don't end up with a repeat of WebGL 2 on Safari.
It's simpler. Much like DX12, WebGPU is intended to be lower level and have better control over hardware. Which makes it more complex and harder to use Vs WebGL.
It has plenty of community knowledge from OpenGL ES peeps, which makes it quite easy to find examples that can be used.
For anyone actually building this style of content today, this is huge news.
Web technologies lag behind desktop technologies for good reasons.
WebGL 2 is based on OpenGL ES 3, which brings it to rough feature parity with a fairly common baseline for GPU APIs that dates back to 2007-2008-ish, the OpenGL 3 / DirectX 10 feature set. This is a pretty good feature set.
The Metal ANGLE backend work done by Apple was a large chunk of work, but a lot of it needed to be done anyway to continue to support WebGL at all on Apple platforms given Apple's deprecation of OpenGL.
Not always true though.
The target hardware is different between the game industry and the web industry.
Games focus on delivering best graphics with the latest hardware, whereas websites should care about the compatibility first.
Even though modern web browsers auto update, it does not update the underlying hardware. That is, many non-latest smartphones that do not support Vulkan won't support WebGPU neither. We need to wait for years to safely use WebGPU.
> WebGPU is the working name for a future web standard and JavaScript API for accelerated graphics and compute, aiming to provide "modern 3D graphics and computation capabilities". It is developed by the W3C GPU for the Web Community Group with engineers from Apple, Mozilla, Microsoft, Google, and others. [1]