Comment by pjmlp

Comment by pjmlp 10 months ago

15 replies

WebGPU, like WebGL, is a decade behind the native APIs it is based on.

No one asked for a new Rust like shading language that they have to rewrite their shaders on.

Also contrary to FOSS circles, most studios don't really care about Web 3D, hence why streaming is such a thing for them.

There have been HLSL to SPIR-V compilers for several years now, this is Microsoft own official compiler getting SPIR-V backend as well.

torginus 10 months ago

Because WebGL, just like WebAssembly (with its hacky thread support and compilation issues) is a giant kludge.

WebGL still has fundamental issues of not even supporting anything resembling a modern OpenGL feature set (with modern meaning 2010s era stuff like compute shaders and multi draw indirect) in theory, and in practice, macOS doesn't support WebGL2, meaning stuff like multiple render targets (which is necessary for deferred rendering), so it's almost impossible to make a modernish game that runs in a browser well.

Imo the problem isn't that WebGPU/Wasm is a decade/X years behind, but that we cannot reliably expect a feature set that existed on typical mid 2000s PCs to reliably work in the browser across all platforms (which is the whole point of the web).

  • Ygg2 10 months ago

    It's almost as like some Fruit based company is sabotaging the efforts to keep its walled garden.

    • jsheard 10 months ago

      Despite all the bending over backwards to keep the fruit company on board with WebGPU, they still haven't actually shipped their Metal backend in Safari over a year after Chrome managed to ship DirectX, Metal and Vulkan backends simultaneously. Mozilla hasn't shipped WebGPU either but their resources can hardly be compared to Apples.

    • torginus 10 months ago

      Honestly Google's probably almost as guilty - Native Client was a great idea and sidestepped basically all the issues we are having now, but they killed it in favour of 'standard' APIs, like Wasm that basically barely work for their intended purposes

      • flohofwoe 10 months ago

        Nah, Native Client had a lot of its own problems. Except for pthreads-style multithreading, PNaCl couldn't even compete with asm.js, and Spectre/Meltdown would be just as catastrophic for PNaCl as it was for SharedArrayBuffer.

      • pjmlp 10 months ago

        Add Mozzilla to the mix, for not wanting to adopt PNaCL, coming up with asm.js, and for what.

        Firefox is almost irrelevant now, and Google is calling all the shots anyway.

        Without Safari's relevance on mobile, the Web would have long turned into ChromeOS everywhere by now.

      • Ygg2 10 months ago

        > Honestly Google's probably almost as guilty - Native Client was a great idea and sidestepped basically all the issues

        NaCl failed on its own.

        A) Wasn't backwards compatible

        B) Spec was - look at the Chrome source

        C) No one other than Google wanted it

        D) It was essentially ActiveX Google (yeah, ActiveX had some nifty ideas and they still persist to this day)

  • flohofwoe 10 months ago

    > macOS doesn't support WebGL2

    WebGL2 is fully supported in Safari since quite a while now. In fact it's using the same rendering backend as Chrome and Firefox (ANGLE), and AFAIK Google and Apple engineers worked together to create (or at least improve?) the ANGLE Metal backend and integrate ANGLE into Safari.

  • adrian17 10 months ago

    Safari supports WebGL2 since version 15 - unless you meant something else by macOS lacking support?

    (I agree with your general point though.)