[Webkit-unassigned] [Bug 229606] New: Potential Memory Leak in Safari 15 (iOS) when calling gl.bindTexture()

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Aug 27 03:50:56 PDT 2021


https://bugs.webkit.org/show_bug.cgi?id=229606

            Bug ID: 229606
           Summary: Potential Memory Leak in Safari 15 (iOS) when calling
                    gl.bindTexture()
           Product: WebKit
           Version: Safari Technology Preview
          Hardware: iPhone / iPad
                OS: Other
            Status: NEW
          Severity: Critical
          Priority: P2
         Component: WebGL
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: wayne.langman at gmail.com
                CC: dino at apple.com, kbr at google.com, kkinnunen at apple.com

Created attachment 436616

  --> https://bugs.webkit.org/attachment.cgi?id=436616&action=review

Sample Code and Screenshots

I've encountered an issue present in all versions of the iOS / Safari 15 betas seemingly related to gl.bindTexture().

I've included some sample code, a butchered version of a WebGLFundamentals.org example to save some time, which demonstrates the problem.

PSA: Flashing Images Warning! The demo switches between 2 textures rapidly (requestAnimationFrame) so if you're sensitive please keep this in mind.

In the first screenshot (safari_15_macos.png) you can see the expected results (stable memory ~114MB) on MacBook Pro (2016 model w/Radeon Pro 450 GPU) with:
MacOS 11.5.1
Safari Techology Preview 130
All 4 'GPU Process' options enabled
WebGL via Metal enabled

This is also consistent with previous versions of Safari and other browsers.

However, in the second screenshot (safari_15_ios.png), you can see the memory climb until the page either freezes or reloads, often to a blank page as the WebGL context has been lost.

This test was performed on an iPhone 7 Plus with iOS 15 Beta 7 and the default experimental settings enabled.

While this example might be somewhat contrived, there is no need to bind the texture every frame, there are many other practical examples where this is required. With this in mind, I believe this bug is a high priority, but feel free to update accordingly and/or correct any (incorrect) assumptions.

Also, please let me know if you require any additional information and if you'd like me to upload the traces (the two combined are ~250MB).

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20210827/c6fd69cb/attachment.htm>


More information about the webkit-unassigned mailing list