Bug 280799
| Summary: | noclip.website appears broken in Safari 18 | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Jasper St. Pierre <jstpierre> |
| Component: | WebGL | Assignee: | 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
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 | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Kenneth Russell
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
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
<rdar://problem/137643297>
Kenneth Russell
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
Resizing the window or clicking vigorously flashes the content.
Commenting out InvalidateFramebuffer fixes it.
Likely cause bug 274137
Jasper St. Pierre
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
Pull request: https://github.com/WebKit/WebKit/pull/35683
EWS
Committed 286127@main (2aa166d7c00b): <https://commits.webkit.org/286127@main>
Reviewed commits have been landed. Closing PR #35683 and removing active labels.
EWS
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.