Title: [113538] trunk/Source/WebCore
- Revision
- 113538
- Author
- [email protected]
- Date
- 2012-04-06 19:13:14 -0700 (Fri, 06 Apr 2012)
Log Message
[chromium] Avoid deleting impl tree when becoming invisible
https://bugs.webkit.org/show_bug.cgi?id=83396
Patch by James Robinson <[email protected]> on 2012-04-06
Reviewed by Adrienne Walker.
This bit of code in CCLayerTreeHost::didBecomeInvisible..() was an attempt to drop resources when becoming
invisible. However, it's fairly confused - we drop textures via TextureManagers when going invisible and
CCLayerImpl destructors can't delete non-managed resources since they do not have access to a context - so this
code was never actually freeing up GPU resources. Having a sometimes-null CCLayerImpl tree when we still have a
valid LayerChromium tree has lead to various tricky bugs.
No new tests since this code wasn't doing anything useful in the first place.
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (113537 => 113538)
--- trunk/Source/WebCore/ChangeLog 2012-04-07 02:06:26 UTC (rev 113537)
+++ trunk/Source/WebCore/ChangeLog 2012-04-07 02:13:14 UTC (rev 113538)
@@ -1,3 +1,21 @@
+2012-04-06 James Robinson <[email protected]>
+
+ [chromium] Avoid deleting impl tree when becoming invisible
+ https://bugs.webkit.org/show_bug.cgi?id=83396
+
+ Reviewed by Adrienne Walker.
+
+ This bit of code in CCLayerTreeHost::didBecomeInvisible..() was an attempt to drop resources when becoming
+ invisible. However, it's fairly confused - we drop textures via TextureManagers when going invisible and
+ CCLayerImpl destructors can't delete non-managed resources since they do not have access to a context - so this
+ code was never actually freeing up GPU resources. Having a sometimes-null CCLayerImpl tree when we still have a
+ valid LayerChromium tree has lead to various tricky bugs.
+
+ No new tests since this code wasn't doing anything useful in the first place.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
+
2012-04-06 Leo Yang <[email protected]>
LocalFileSystem::initializeLocalFileSystem should be static
Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp (113537 => 113538)
--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp 2012-04-07 02:06:26 UTC (rev 113537)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp 2012-04-07 02:13:14 UTC (rev 113538)
@@ -386,14 +386,6 @@
contentsTextureManager()->deleteEvictedTextures(hostImpl->contentsTextureAllocator());
}
- // Ensure that the dropped tiles are propagated to the impl tree.
- // If the frontbuffer is cached, then clobber the impl tree. Otherwise,
- // push over the tree changes.
- if (m_proxy->layerRendererCapabilities().contextHasCachedFrontBuffer) {
- hostImpl->setRootLayer(nullptr);
- return;
- }
-
hostImpl->setRootLayer(TreeSynchronizer::synchronizeTrees(rootLayer(), hostImpl->releaseRootLayer()));
// We may have added an animation during the tree sync. This will cause both layer tree hosts
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes