[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Public WebGL] WebGL/WebGPU Considerations
I personally believe it is better to work on single API and get it best, instead of different parties going to jump out and start working on own API's.
For engine developers - this just complicates everything.
For app developers if they use vanilla GPU API's, then they target only single platform (Apple comes up with one, Microsoft with another, and Google with third. The rest, who knows) - this scenario would be a disaster and back to 90s..00s.
We want avoid previous mistakes on such things.
Great thing about WebGL - it is influenced by many parties, and they all can start a conversation and everybody can actually make difference.
Another major point, is currently GPU performance and lack of very-low-level access to GPU is not a problem with WebGL application performance.
Right now we are all in WebGL limited to single big thing - shader compilation times. With such large times it takes to compile any decent shader, rich content will be never possible in the Web.
This been raised, and it is constantly being a biggest bottleneck.
We've recently made a demo to present WebGL 2.0 features in close collaboration with Mozilla. (WebGL 2.0 capable browser is required: https://playcanv.as/p/44MRmJRU/
And here, it downloads ~19mb of data, but takes on majority of platforms 70%+ in shader compilation. And we did very careful profiling over each shader, and made a lot of notes about how slow it is without many reasons. We've simplified most shaders we could and pre-compiling them on loading phase. But this is very limiting, as many applications need to compile shaders on the go, but this creates huge stalls. Before we made compilation in batches split in different animation frames, it was stalling many browsers rendering them unresponsive, to user it seems like they crash.
This is insanely bad, and before we even think about WebGPU or WebNXT, we need to solve issues that relates to Web 3D platform as a whole - make shader compilation faster.