Bug 280799

Summary: noclip.website appears broken in Safari 18
Product: WebKit Reporter: Jasper St. Pierre <jstpierre>
Component: WebGLAssignee: Mike Wyrzykowski <mwyrzykowski>
Status: RESOLVED FIXED    
Severity: Normal CC: djg, kbr, kkinnunen, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari 18   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=274137

Jasper St. Pierre
Reported 2024-10-02 19:10:17 PDT
Visiting https://noclip.website/#mkwii/farm_course , I see the contents blink in for one frame, and then the frame goes black. I do not see the same behavior in Chrome, or in Firefox.
Attachments
Kenneth Russell
Comment 1 2024-10-07 14:36:27 PDT
It appears that the associated bug which was filed against Chromium, crbug.com/355605685 , slipped into the latest iOS release. Is there any chance of cherry-picking Quyen's fix for the bug, https://chromium-review.googlesource.com/c/angle/angle/+/5741121 , into WebKit's Safari 18 branch?
Jasper St. Pierre
Comment 2 2024-10-07 16:33:07 PDT
Are we convinced this is the same bug? That bug appears to be related to changing gl.TEXTURE_MAX_LEVEL/gl.TEXTURE_BASE_LEVEL, but I don't do that in my code; I use gl.texStorage2D (or relevant) for all texture allocation.
Radar WebKit Bug Importer
Comment 3 2024-10-09 19:11:12 PDT
Kenneth Russell
Comment 4 2024-10-10 14:02:45 PDT
I'm not sure - I thought that bug was mentioned as the culprit in the WebGL Matrix chat room. Can a bisect be run against WebKit to see when this regressed?
Kimmo Kinnunen
Comment 5 2024-10-11 00:51:53 PDT
Resizing the window or clicking vigorously flashes the content. Commenting out InvalidateFramebuffer fixes it. Likely cause bug 274137
Jasper St. Pierre
Comment 6 2024-10-12 10:42:09 PDT
Thank you. I've added a workaround for now to disable use of invalidateFramebuffer when UNMASKED_VENDOR says it is from "Apple Inc.". To continue to debug, if you run this in the JS Console: main.viewer.gfxDevice._invalidateFramebufferBroken = false Then the screen should go black again. For reference, my usage of gl.invalidateFramebuffer here is for the same reason: trying to optimize MSAA resolves, since WebGL lacks an equivalent to EXT_multisampled_render_to_texture.
Mike Wyrzykowski
Comment 7 2024-10-24 11:15:53 PDT
EWS
Comment 8 2024-11-04 16:43:34 PST
Committed 286127@main (2aa166d7c00b): <https://commits.webkit.org/286127@main> Reviewed commits have been landed. Closing PR #35683 and removing active labels.
EWS
Comment 9 2024-11-18 12:00:00 PST
Committed 283286.488@safari-7620-branch (d2944cc2b525): <https://commits.webkit.org/283286.488@safari-7620-branch> Reviewed commits have been landed. Closing PR #2298 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.