NEW290620
WebGL context lost on https://3d.sprie.io/dita_diamonds/
https://bugs.webkit.org/show_bug.cgi?id=290620
Summary WebGL context lost on https://3d.sprie.io/dita_diamonds/
Kimmo Kinnunen
Reported 2025-03-28 05:34:50 PDT
Original reporter reports: I have been facing the issue with my app on following devices I have access to - M4 iPads (Air and Pro) (iOS 18.3.2) M3 Max Macbook Pro 16" (MacOS 15.3.1) Issue is not present on my iPhone 12 Pro (iOS 18.3.2) as well as intel/M1/M2/M3 iPads. May be present in other devices apart from these. Minimum version of my app displaying the diamonds eyewear frame can be found on https://3d.sprie.io/dita_diamonds/
Attachments
Kimmo Kinnunen
Comment 1 2025-03-28 05:36:17 PDT
I'm seeing context loss due to long running shader. Original reporter: - Does the content work better on some other browser / machine - Would it be possible for you to reduce the app to smaller test case?
Kimmo Kinnunen
Comment 2 2025-03-28 05:55:53 PDT
ANGLE: ERR: mtl_command_buffer.mm:646 (onCommandBufferCompleted): Completed MTLCommandBuffer failed, and error is Discarded (victim of GPU error/recovery) (00000005:kIOGPUCommandBufferCallbackErrorInnocentVictim)
robyer1
Comment 3 2025-03-28 05:59:46 PDT
Content runs fine on Chrome on Android and Windows 11 tested here on a HP Zbook Laptop and a Xperia 1 V. On iOS the context lost crash happens on Safari on iPhone 13 mini and iPad Pro 2020
rohan
Comment 4 2025-03-28 07:54:18 PDT
(In reply to Kimmo Kinnunen from comment #1) > I'm seeing context loss due to long running shader. > > Original reporter: > - Does the content work better on some other browser / machine Yes. It works on my MacBook Pro in Chrome as well as my iPad M2 Pro (both in Safari and Chrome), but on M4 iPad Pro it crashes on both Safari and Chrome. I haven't tried on Windows machines, as my app is only released for iPadOS and development platform is MacBook. > - Would it be possible for you to reduce the app to smaller test case? I have created a codesandbox with minimal example from my side here - https://codesandbox.io/p/sandbox/c78rmh This example has the refraction shader code (Line 214 - 392) which is causing the context loss. It works on one model (single diamond), but not on the other (eyewear with multiple diamonds).
Radar WebKit Bug Importer
Comment 5 2025-04-04 05:35:15 PDT
rohan
Comment 6 2025-06-23 06:37:52 PDT
Hello, Is there any further movement or advice on this one?
Kimmo Kinnunen
Comment 7 2025-06-25 01:40:40 PDT
I cannot immediately reproduce the issue with iOS 26, iPadOS 26, macOS Tahoe 26 betas. So if you have access to the betas, you perhaps could test there. https://beta.apple.com For workaround for earlier releases, we would need to further reduce the test case to understand what exactly is the source of the timeout. With the betas, on WebKit side changes related to this, we have improved only the infinite loop mitigation. Prior to 26, all loops would incur a bit of performance penalty. For critical loops this could perhaps cause the reported problem. However, since the issue seemed to surface only with M4s, it could more realistically be a driver level issue. To work around this sort of issues, we would need to reduce the test case futher to understand more exactly what is the cause.
Note You need to log in before you can comment on or make changes to this bug.