12 ms·
What's Next for WebGPU
- brcmthrowaway 2y agoBeing spun off to a different company.
- doctorpangloss 2y agoWhom is WebGPU for, besides Unity?
- AshleysBrain 2y agoOur browser based game engine Construct (https://www.construct.net https://www.construct.net) supports rendering with both WebGL and WebGPU.
- doctorpangloss 2y agoWhen I visit a Construct 3 Ultra Pixel Survive on Mobile Safari on the latest production iOS with either WebGPU enabled and disabled, I only see black: https://www.construct.net/en/free-online-games/ultra-pixel-survive-26420/play https://www.construct.net/en/free-online-games/ultra-pixel-s... Which Construct 3 game should I try on Mobile Safari? I know there are other game engines. Supporting Mobile Safari is very very hard. It has its own flavor of everything. I would never speak in absolutes about some web standard and how it will work on Mobile Safari.
- itishappy 2y agoRuns great on Android!
- doctorpangloss 2y agoThen you agree that WebGPU isn't for Construct, it's for Unity.
- itishappy 2y agoNo. How does that follow?
- nox101 2y agoYou realize that WebGPU has not shipped in Safari right? There's a reason it's still behind a developer flag. It's not finished.
- doctorpangloss 2y agoConstruct 3 doesn’t work with WebGPU disabled either. I’m sure it has official support for Mobile Safari, just not official enough to work when someone visits a Construct 3 experience. I’m not dunking on the engine. It’s just to say, well this is what graphics programming in browser is: making shit work on mobile Safari.
- deleted 2y ago[deleted]
- dahart 2y agoResponding to your pre-edited comment. > whom is WebGPU for? […] it’s a huge rigamarole. Where is this comment coming from? WebGPU enables compute shaders, and there are applications in anything that uses a GPU, from ML to physics to audio to … you name it. What is making you think game engines would be the only users? I bet a lot of companies are looking forward to being able to use compute shaders in JS apps and web pages. > Godot has had zero development for WebGPU support. Why would Godot be an indicator? I love Godot and their efforts, but it’s less than 1% of game engine market share, and a much smaller less well funded team. Of course they’re not on the bleeding edge. Unity is closer to 30% market share and is actively engaging with WebGPU, so it seems like you’re downplaying and contradicting a strong indicator.
- doctorpangloss 2y agoI edited my comment. > WebGPU enables compute shaders, and there are applications in anything that uses a GPU, from ML to physics to audio to … you name it. I know. If you have to go through a giant product like Unity for example to use WebGPU because Apple will essentially have its own flavor of WebGPU just like it has its own flavor of everything, is it really cross platform? Does Apple support Vulkan? No. It was invented for middlewares! Apple has a flag to toggle on WebGPU on iOS today. I know dude. What does that really mean? They have such a poor record of support for gamey things on Mobile Safari. No immersive WebXR, a long history of breaking WASM, a long history of poor WebGL 2 and texture compression support. Why is this going to be any different?
- dahart 2y agoI’m still not sure what the point is. WebGPU is an API, is that that you mean by middleware? What’s the issue? Apple will do their own thing, and they might not allow WebGPU on Safari. What bearing does that have on what people using Linux, Windows, Firefox, and Chrome should do? And where exactly is this cross platform claim you’re referring to?
- doctorpangloss 2y agoThe issue is, it's likely that a company with $2 BILLION spent on product development and a very deep relationship with Apple, like Unity, will have success using WebGPU the way it is intended, and nobody else will. So then, in conclusion, WebGPU is designed for Unity, not you and me. Unity is designed for you and me. Are you getting it?
- lukaqq 2y agoWeb video editor(https://chillin.online https://chillin.online), we are eagerly looking forward to the WebGPU API maturing and being extended to all major browsers, enabling faster rendering, bringing more effects, and facilitating the rendering and editing of 3D assets.
- edflsafoiewq 2y agoDevs in the future? There was a long time between when WebGL2 released and when it finally worked "everywhere" too.
- nox101 2y agoThe number 1 use of WebGL is Google Maps by several orders of magnitude over any other use. At some point they'll likely switch to WebGPU making it the number 1 use of Google Maps. Google went over what this enables when they shipped it. Lots of features including being able to highlight relevant roads that change depending on what you searched for. https://www.youtube.com/watch?v=HrLyZ24UcRE https://www.youtube.com/watch?v=HrLyZ24UcRE Apple maps and others also use it
- pornel 2y agoI'm new to GPU programming, and WebGPU and Rust's wgpu seem pretty nice to me (except the bindings!). The API is high-level enough that it's easy to learn. It hasn't grown deprecated parts or vendor-specific extensions yet.
- vFunct 2y agoI could use more 2-d line support for CAD applications as well as font drawing.
- Waterluvian 2y agoSame. I do a ton of 2D map stuff and it’s always quite uncomfortable to do in shaders or very slow in a Canvas context. The last time I tried with pixi.js the problem was smoothly zooming polygons with a constant width border thicker than hairline. Doing that was basically just generating new textures on every frame.
- jsheard 2y agoFont drawing is very much out of scope for a 3D API, that's something you (or a library) would implement on top of WebGPU. Likewise for line drawing, the API may expose some simple line primitives that the hardware supports natively, but if you want anything fancier then you're expected to do it yourself with shaders which is already possible in WebGPU. The 3D API is just meant to be a minimal portable abstraction over common low-level hardware features, composing those features into higher level constructs is intentionally left as an exercise for the user.
- lmariscal 2y ago
- blurbleblurble 2y agoLinux support please!
- stackghost 2y agoHonest question: Can someone explain to me why people are excited about WebGPU and WASM and similar technologies? To me, one of the greatest things about the web is that the DOM is malleable in that you can right click -> view source -> change things. This is dead in an era where the server just sends you a compiled WASM dll. It seems to me that the inevitable result of things like WASM and WebGPU will be "rich media web 4.0 applications" that are just DRM, crypto miners, and spyware compiled so that they're more difficult to circumvent, and delivered via the browser. An excuse to write web apps with poor performance because "well the user just needs a stronger GPU". It seems like an express train back to the bad old days of every website being written in flash. I honestly cannot see the upsides of these technologies. Is it gaming? Why would I want to play a 3D game in my fucking browser of all places? That's a strict downgrade in almost every way I can think of. Why would anyone want that? Is it "AI"? Why would I want to run an LLM in the browser, I could just run it natively for better performance? All I can see and have seen over the last several years is a steady parade of new technologies that will make the internet (and in some cases the lives of every day people) objectively worse while enriching a handful of big tech douchebags. Why are we going down this path? Who is asking for this stuff? Why the fuck would I want to expose my GPU to a website?
- do_not_redeem 2y agoWhy do you think wasm is harder to circumvent? The only way to instantiate a wasm module in the browser is through (drum roll) javascript. Install noscript if you're worried. The days of view source -> edit are basically over anyway due to every site's 1MB+ minified JS blobs. > Why would I want to run an LLM in the browser, I could just run it natively for better performance? Why would you try out a new app in a sandboxed browser, when instead you could give it complete access to your entire computer?
- stackghost 2y agoIf the app can run arbitrary code on my GPU it's not exactly sandboxed, is it?
- 2y ago
- jms55 2y agoBindless is pretty much _the_ most important feature we need in WebGPU. Other stuff can be worked around to varying degrees of success, but lack of bindless makes our state changes extremely frequent, which heavily kills performance with how expensive WebGPU makes changing state. The default texture limits without bindless are also way too small for serious applications - just implementing the glTF PBR spec + extensions will blow past them. I'm really looking forward to getting bindless later down the road, although I expect it to take quite a while. By the same token, I'm quite surprised that effort is being put into a compatibility mode, when WebGPU is already too old and limiting for a lot of people, and when WebGL(2) is going to have to be maintained by browsers anyways.
- Animats 2y ago> Bindless is pretty much _the_ most important feature we need in WebGPU. Other stuff can be worked around to varying degrees of success, but lack of bindless makes our state changes extremely frequent, which heavily kills performance with how expensive WebGPU makes changing state. Yes. This has had a devastating effect on Rust 3D graphics. The main crate for doing 3D graphics in Rust is WGPU. WGPU supports not just WebGPU, but Android, Vulkan, Metal, Direct-X 12, and OpenGL. It makes them all look much like Vulkan. Bevy, Rend3, and Renderling, the next level up, all use WGPU. It's so convenient. WGPU has lowest common denominator support. If WebGPU can't do something inside a browser, then WGPU probably can't do it on other platforms which could handle it. So WGPU makes your gamer PC perform like a browser or a phone. No bindless, no multiple queues, and somewhat inefficient binding and allocation. This is one reason we don't see high-performance games written in Rust. After four years of development, WGPU performance has gone down, not up. When it dropped 21% recently and I pointed that out, some people were very annoyed.[1] Google pushing bindless forward might help get this unstuck. Although notice that the target date on their whiteboard is December 2026. I'm not sure that game dev in Rust has that much runway left. Three major projects have been cancelled and the main site for Rust game dev stopped updating in June 2024.[2] [1] https://github.com/gfx-rs/wgpu/issues/6434 https://github.com/gfx-rs/wgpu/issues/6434 [2] https://gamedev.rs/ https://gamedev.rs/
- jms55 2y ago
- worik 2y agoThey say: "This is the next step in the standardization process, and it comes with stronger guarantees of stability and intellectual property protection." I understand stability, and in the general sense I see that people feel they need to protect their IP, but in this specific case what is meant by "intellectual property protection"?
- choonway 2y agoI think it means protection from intellectual property claims in the future.
- vasilvv 2y agoW3C generally requires Working Group participants to provide IPR licensing commitments for the spec in question [0]. As far as I understand, higher level of specification maturity implies stronger level of obligations, though the specifics of what specifically changes when were never clear to me. [0] https://www.w3.org/policies/patent-policy/#sec-Requirements https://www.w3.org/policies/patent-policy/#sec-Requirements
- sakesun 2y agoI'm curious why supporting ML algorithms is important inside browser ? Will my machine be improperly utilized by the sites I visit ?
- Grimblewald 2y agoIt can absolutely be used for bad, and I know many sites do use it for bad. However, it does good as well, and I think it's important to develop but also it should come with similar permission requests that use of microphone or camera do. I do research and develop ANN's for data analysis within chemistry. Making it possible for less tech literate people to visit a site, select a model, load their dataset, and get answers, is quite handy. The best part is because I can use their hardware to do it all, it all stays private, no one has to upload any sensitive research data etc. and I don't have to ship to various devices etc. I know if they have a mainstream updated browser they can likely use the tool. No endless requests for help, no mystery issues to solve, things just work.
- chrismorgan 2y ago> it should come with similar permission requests that use of microphone or camera do. Such permissions requests have been associated I think exclusively with input and output, not computation.
- Grimblewald 2y agoRight, but I think it should change. I think consumers should have a say when a website wants to compute things that are out of scope for a normal page of text/information. I certainly dont want my laptop hot, slow, an poorly responsive because some news site's borderline malware is running several poorly built and implemented models that aim to track and predict my behaviour from mouse movement etc.
- sakesun 2y agoLot of downvote for my curiosity
- 2y ago
- tkzed49 2y agoI wish there were a good way to profile WebGPU code. I've seen this (very useful) article[1] on setting up PIX, but I'm ambitious. I want to see everything from draw call timings to flamegraphs of shader code. Right now I feel like the only way to write efficient WebGPU code is to deeply understand specific GPU architectures. I hope some day there's a dev tools tab that shows me I'm spending too much time sampling a texture or there's a lot of contention on my atomic add. [1]: https://toji.dev/webgpu-profiling/pix.html https://toji.dev/webgpu-profiling/pix.html
- jms55 2y agoTimestamp queries will give you essentially time spans you can use for profiling, but anything more than that and you really want to use a dedicated tool from your vendor like NSight, RGP, IGA, XCode, or PIX. > Right now I feel like the only way to write efficient WebGPU code is to deeply understand specific GPU architectures. I hope some day there's a dev tools tab that shows me I'm spending too much time sampling a texture or there's a lot of contention on my atomic add. It's kind of the nature of the beast. Something that's cheap on one GPU might be more expensive on another, or might be fine because you can hide the latency even if it's slow, or the CPU overhead negates any GPU wins, etc. The APIs that give you the data for what you're asking are also vendor-specific.
- tkzed49 2y agoThat's fine—same with CPUs, right? But if I do something that's slow on _my_ CPU, at least there's tooling that will show me! I know that the reason is a lot of technical complexity (plus little standardization between vendors), but I think the end goal should be to make GPU programming more accessible.
- jms55 2y agoI don't disagree, but good luck getting vendors to standardize on anything...
- pjmlp 2y agoCan forget about it. Developer tooling for debugging 3D Web APIs has been a continuous request since WebGL 1.0, from 2011. Until now the only thing that ever came out of it was SpectorJS and it shows its age. For a while Firefox did have a debugger, that they eventually removed from developer tools. You are left with writing the application twice, so that can make use of modern native debugging tools for graphics programming.
- wwwtyro 2y agoAny word on when it'll be supported on Linux without a flag?
- nox101 2y agoMy guess is when someone one who cares about Linux submits a pull request to support it.
- vetinari 2y agoSo that's how it worked with MacOS and Windows? Color me surprised. But bth, Google doesn't seem to care about Android either. Chrome supports it on Snapdragons and that's it. Do you have Xclipse GPU? Like, I don't know, Samsung's current flagship line Galaxy S24 does? Too bad, not good enough.
- sealeck 2y ago> So that's how it worked with MacOS and Windows? Color me surprised. Lots of people use MacOS and Windows though, so Google has incentive to support these platforms.
- pjmlp 2y agoWhen they see a business value on GNU/Linux Desktop WebGPU support for Chrome, note that other Linux kernel based systems from Google already support it.
- jeroenhd 2y agoI don't think Google cares. If it works on Chromebooks and most Android phones, their job is done. On to the next API, let's make WebWiFi or WebAI. WebGPU demos never work for me, so I personally consider the tech dead until that gets fixed. WebGL is barely stable enough to use as well, so I guess I'll just have to keep doing GPU stuff outside of the browser.
- astlouis44 2y agoMy team (third party) has developed WebGPU support for Unreal Engine 5, along with an asset-streaming system that solves the large download, multi-gigabyte game in your webpage issue by only loading in what a player needs to see at any given moment. It's constantly loading and unloading data, which helps tremendously with memory management. WebGPU is going to usher in a new era of web games, the biggest benefit being compute shaders which have never before been possible inside the browser. DISCLAIMER - Will only work on a Windows device running Chrome or a Chromium browser. Mac and iOS isn't well supported yet. Space demo - https://play.spacelancers.com/ https://play.spacelancers.com/ Forest demo - https://play-dev.simplystream.com/?token=bd4ca6db-522a-4a73-b2c0-7bed0041d3ad https://play-dev.simplystream.com/?token=bd4ca6db-522a-4a73-...
- gsuuon 2y agoThis was cool (spacelancers didn't work in Arc but did in Chrome, forest demo 403's) - audio and fullscreen fail because they aren't initiated by a user gesture. Impressive how quick it is to get into a game with this level of fidelity, normally you'd need several minutes of downloading.
- iknowstuff 2y agoAw neither works on iOS 18.2
- astlouis44 2y agoYeah WebGPU isn't officially enabled by default on Safari yet, but that's actually not what's stopping these demos from working. Once we mobile optimize, they should work well.
- bobajeff 2y agoNor Linux. So basically Webgpu is just another graphics API for targeting Windows. Yay.
- astlouis44 2y agoLinux isn't supported currently, doesn't mean it won't be in the future.
- amdivia 2y ago[dead]
- hit8run 2y agoDon't know for you but for me the next thing for WebGPU is uninstalling Google Chrome. Manifest v3 my ass.
- smcleod 2y agoWhat's the Firefox compatibility looking like now? Pretty annoying when websites that use it tell you to download and install google chrome.