Title: [167792] trunk/Source/WebKit2
Revision
167792
Author
[email protected]
Date
2014-04-24 23:28:33 -0700 (Thu, 24 Apr 2014)

Log Message

[iOS WebKit2] RemoteLayerTreeDrawingArea should force CA to garbage collect surfaces.
<https://webkit.org/b/132160>
<rdar://problem/16110687>

Do an empty CATransaction at the end of RemoteLayerTreeDrawingArea::flushLayers()
to get CA to garbage collect its IOSurfaces. This helps clean up unused surfaces
that we'd otherwise end up hanging on to for a long time.

Reviewed by Tim Horton.

* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::didUpdate):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (167791 => 167792)


--- trunk/Source/WebKit2/ChangeLog	2014-04-25 06:02:42 UTC (rev 167791)
+++ trunk/Source/WebKit2/ChangeLog	2014-04-25 06:28:33 UTC (rev 167792)
@@ -1,3 +1,18 @@
+2014-04-24  Andreas Kling  <[email protected]>
+
+        [iOS WebKit2] RemoteLayerTreeDrawingArea should force CA to garbage collect surfaces.
+        <https://webkit.org/b/132160>
+        <rdar://problem/16110687>
+
+        Do an empty CATransaction at the end of RemoteLayerTreeDrawingArea::flushLayers()
+        to get CA to garbage collect its IOSurfaces. This helps clean up unused surfaces
+        that we'd otherwise end up hanging on to for a long time.
+
+        Reviewed by Tim Horton.
+
+        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
+        (WebKit::RemoteLayerTreeDrawingArea::didUpdate):
+
 2014-04-24  Commit Queue  <[email protected]>
 
         Unreviewed, rolling out r167700.

Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm (167791 => 167792)


--- trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm	2014-04-25 06:02:42 UTC (rev 167791)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm	2014-04-25 06:28:33 UTC (rev 167792)
@@ -42,6 +42,7 @@
 #import <WebCore/RenderView.h>
 #import <WebCore/Settings.h>
 #import <WebCore/TiledBacking.h>
+#import <QuartzCore/QuartzCore.h>
 
 using namespace WebCore;
 
@@ -295,6 +296,10 @@
         scheduleCompositingLayerFlush();
         m_hadFlushDeferredWhileWaitingForBackingStoreSwap = false;
     }
+
+    // This empty transaction serves to trigger CA's garbage collection of IOSurfaces. See <rdar://problem/16110687>
+    [CATransaction begin];
+    [CATransaction commit];
 }
 
 void RemoteLayerTreeDrawingArea::mainFrameContentSizeChanged(const IntSize& contentsSize)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to