[Webkit-unassigned] [Bug 129474] New: [GTK] We should not be destroying GL resources for pages stored in the page cache

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Feb 28 01:11:18 PST 2014


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

           Summary: [GTK] We should not be destroying GL resources for
                    pages stored in the page cache
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKit Gtk
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: itoral at igalia.com
                CC: mrobinson at webkit.org


When we leave a page that required AC (and hence we created GL objects for it) to load a different URL, the page might go into the page cache but we are still destroying its context and with we might also destroy the GL objects we created with it (particularly the textures). When going back to the page, and if it was stored in the page cache, WebKit will attempt to reuse objects that assume the GL textures still exist, leading to rendering failures.

Although the problem is really there it is not actually producing any harm in X11 because we have a sharing context. Having a sharing context makes it so that the textures created are not destroyed with the LayerTreeHost's context because they are shared with the sharing context, and hence, if we go back to the page at a later time and the page was stored in the page cache, the GL textures needed for this to work will still be there. Not having a sharing context, however, does end up with black quads being rendered due to missing textures, as I found while developing Wayland support. Adding a sharing context in Wayland does indeed fix this problem as it does for X11, but I guess this is probably hiding a real problem we have.

Not sure how we should go about this or if we want to actually do anything since we are kind of assuming that we will always have a sharing context in our implementation.

I suppose any fix to this would involve not destroying the GL context (and thus, probably not invalidating/destroying the LayerTreeHost) when we know that the page will land in the page cache. I am not sure if this is something easy to do though.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list