Skip to content(if available)orjump to list(if available)

Shipping WebGPU on Windows in Firefox 141

simonw

I hadn't realized WebGPU was already available on macOS in the Firefox Nightlies!

I just installed from https://www.mozilla.org/en-US/firefox/channel/desktop/ and now this demo works: https://huggingface.co/spaces/reach-vb/github-issue-generato...

It runs the SmolLM2 model compiled to WebAssembly for structured data extraction. I previously thought it only worked in Chrome.

If I try it in regular Firefox I get "Error: WebGPU is not supported in your current environment, but it is necessary to run the WebLLM engine."

SaintSeiya

As I see it, the current state of graphics API is worse now than the OpenGL era, despite its promises none of the modern API's are easier to use, truly portable and cross platform. Having to reinvent OpenGL by creating custom wrappers around Vulkan, Metal, DirectX12, etc is such a time waster as dropping strings and going back to raw char arrays in the name of performance on every modern language.

dvdkon

I don't see the problem. There have been lower-level APIs in the graphics stack for a long time (e.g. Mesa's Gallium), only now they are standardised and people are actually choosing to use them. It's not like higher-level APIs don't exist now, OpenGL is still supported on reasonable platforms and WebGPU has been usable from native code for some time.

As for true portability of those low-level APIs, you've basically got Apple to blame (and game console manufacturers, but I don't think anyone expected them to cooperate).

naikrovek

Yeah, it’s kind of insane how things have gotten.

There are no adults, no leaders with an eye on things leading us away from further mistakes, and we keep going deeper.

coffeeaddict1

I'm still hoping that WebGPU somehow takes off for non-web use so that we have an easy to use cross platform API with an official spec (a replacement for opengl). However, it seems that outside of the Rust world, there doesn't seem to be much interest for using WebGPU for native code. I don't know any big projects using Dawn for example. Part of the reason seems to be that WebGPU came a bit too late and everyone was already using custom-built abstractions over dx, vulkan and metal.

crthpl

Another reason may be that WebGPU didn't allow for as much optimization and control as Vulkan, and the performance isn't as good as Vulkan. WebGPU also doesn't have all the extensions that Vulkan has.

pjmlp

It is called middleware, no need to wait for WebGPU outside of the browser, with all the constraints of an API design targeted to browser sandboxes.

coffeeaddict1

None of those middlewares have a spec and none of them offer the compatibility guarantees that WebGPU provides.

mmis1000

Even webgl don't give any gurentee about your code will run well on any devices though. It only gurentee that it will run, but it can have 10x performance difference on different platform depends on how you wrote the shaders.

pjmlp

As anyone used to Khronos APIs is aware, that is of little value without actual Conformance Tests Suites, and even then there are plently of forgotten guarantees when using consumer hardware with all the usual OEM quality practices.

JasperBekkers

Very happy to see this as it means that our gpu-allocator [0] crate (used currently by wgpu's dx12 backend, but capable of supporting vulkan & metal as well) will see a significant wider audience then what we've been using it for so far (which is shipping our gpu benchmark suite: evolve [1]

[0]: https://github.com/Traverse-Research/gpu-allocator/

[1]: https://www.evolvebenchmark.com/

bobajeff

>we plan to ship WebGPU on Mac and Linux in the coming months, and finally on Android

Sounds good. I'm not really thrilled about it as of now. What ever the reason, it's not been supported in Linux for any browsers as of yet. My guess is it's too hard to expose without creating terrible attack surfaces.

This seems to support my view that web standards are too overgrown for how users actually use the web. It's obviously too late to do anything about it now but all the issues of monoculture and funding we are worried about today stem from the complexity of making a web browser due to decisions tracing all the way back to the days of Netscape.

pjmlp

Depends on which Linux, it is supported on Android/Linux, WebOS/Linux and ChromeOS/Linux.

However it kind of proves the point on how relevant browser vendors see GNU/Linux for this kind of workloads.

politelemon

Thanks, looking forward to the Linux implementation as well. Are there any webgpu demos worth trying when this is released?

ath92

I’d say this is one of the most impressive demos: https://github.com/ArthurBrussee/brush

Gaussian splatting training and rendering using webgpu

snickerdoodle12

The web demo is just a gray page, not very impressive. Maybe once they support linux.

diggan

Addition to other comments, (most of) Bevy's examples are both available in WebGL and WebGPU so useful for comparison. https://bevy.org/examples-webgpu/ + https://bevy.org/examples (WebGL)

s-macke

Most of the sites I’ve seen are indeed just demos. I especially like Compute Toys [0], a Shadertoy clone for WebGPU. [1] is probably the best place to find demos. I have a site myself in which I experiment mainly with WebGPU Compute Shaders [2].

[0] https://compute.toys/

[1] https://github.com/mikbry/awesome-webgpu

[2] https://github.com/s-macke/WebGPU-Lab

franga2000

I found this quite impressive: https://huggingface.co/spaces/webml-community/kokoro-webgpu

It also works without WebGPU, just very slowly.

vesterde

I have this toy I’ve enjoyed building immensely, for composing video effects.

https://vester.si/motion/

elpocko

https://threejs.org/examples/?q=webgpu (with fallback to WebGL if WebGPU is not available)

joelthelion

What are the use cases for this? Are we sure sites are not just going to use it to mine bitcoins using their users' hardware?

andybak

Same use cases that native apps have for using a GPU except in a browser?

> Are we sure sites are not just going to use it to mine bitcoins using their users' hardware?

Some almost certainly will but like all similar issues the game of cat and mouse will continue.

popcar2

It'll open the door for more ambitious webgames and web apps that use the GPU.

pjmlp

I keep waiting to see ambitious webgames that could match the experience of Infinity Blade from 2010, used to demo iOS new OpenGL ES 3.0 capabilities, the foundation of WebGL 2.0.

https://en.wikipedia.org/wiki/Infinity_Blade

Game demo, https://www.youtube.com/watch?v=_w2CXudqc6c

The only thing I like in Web 3D APIs, is that outside middleware engines, they are the only mainstream 3D APIs designed with managed languages in mind, instead of after the fact bindings.

Still waiting for something like RenderDoc on the respective browser developer tools, we never got anything better than SpectorJS.

It isn't even printf debugging, rather pixel colour debugging.

pjmlp

Finally! Kudos for everyone involved into this.

I was feeling a bit dirty playing around with WebGPU with only Chrome into the game thus far, even Safari has enabled their preview quite recently.

grovesNL

Really excited to see WebGPU/wgpu ship in Firefox! Congratulations and thanks to Mozilla for supporting this.

Zealotux

Great news, congrats to the team!

pixelpoet

Nice one, been waiting for this! Thanks to the devs.

tux3

Great news, congrats to the gfx team!