Understanding 'GPU Process: DOM Rendering' and 'GPU Process: WebGL' on Safari

269 views
Skip to first unread message

Philip Taylor

unread,
Feb 10, 2023, 10:12:57 PM2/10/23
to webgl-d...@googlegroups.com
Hi all, I've been scouring the internet for any explanation of the 2 experimental features listed above. 

It looks like for Safari 16, these 2 flags are now enabled by default, where they were disabled before. 

My guess is that with them turned on, there is more isolation between tabs in Safari. So I see it as some stability improvement that may prevent one tab from crashing and taking down other tabs.

However, we are finding that with this new default setting we are getting crashes loading large CAD models in Safari.  We are using Safari to render large CAD models in an enterprise environment (e.g. a factory floor). We are actively disabling these settings to address the crashes. 

I believe the settings change the maximum GPU memory usable by a single tab. Can anyone confirm this? What is the maximum amount of GPU memory we can allocate per tab?


Thanks
--
Philip TAYLOR
CTO, Zea Inc.
Montréal, Québec

The contents of this e-mail are confidential with all rights reserved to the author. It is illegal to use or divulge this information without authorization. If you have received this e-mail by mistake, please notify me immediately by replying to the e-mail. 

Kimmo Kinnunen

unread,
Feb 22, 2023, 1:43:32 PM2/22/23
to webgl-d...@googlegroups.com
Hello Philip,
Yes, these flags are now on for Safari for iOS 16.0 and onwards. They’re part of the work to increase the security of the browser via limiting the web process access to GPU APIs. Sorry that you have run into some unintended bugs with the implementation.

If you have time, you may try the new iOS 16.4 beta and see if the upcoming release will fix some of your problems. As always, we also appreciate your bug reports in https://bugs.webkit.org/ or https://developer.apple.com/bug-reporting/.

The maximum memory for a web page in iOS Safari is 2-3 gb, it depends on the device model. This covers all memory, including GPU memory.

In releases prior to 16.4, under some circumstances, some part of the used WebGL memory would not be attributed correctly. This would result in restarts of the GPU process. As is natural to unforeseen circumstances, some edge-cases might occur after 16.4. If you see such, feel free to drop me an email or webkit.org bug report.

One source of such memory is intermediate memory used in readPixels(). If it is a possibility for your app, one workaround would be to not do large readPixels() calls, rather few smaller ones.

Br,
Kimmo

--
You received this message because you are subscribed to the Google Groups "WebGL Dev List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to webgl-dev-lis...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/webgl-dev-list/CAC7g9xQfUHLpM25JDwbGV9rRfFufzXxz8HapDpNw7KydP7tSQA%40mail.gmail.com.

Reply all
Reply to author
Forward
0 new messages