Title: [148765] trunk/Source/WebCore
Revision
148765
Author
[email protected]
Date
2013-04-19 13:41:23 -0700 (Fri, 19 Apr 2013)

Log Message

Remove non-overlap testing code in RenderLayerCompositor
https://bugs.webkit.org/show_bug.cgi?id=85521

Reviewed by Simon Fraser.

m_compositingConsultsOverlap is always true in the current
code. This patch removes this flag, and removes dead code that is
never executed because it was never false.

No new tests, no change in behavior.  The cleanup is covered by
existing tests.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateCompositingLayersAfterScroll):
removed if-statement that is always true.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::shouldClipCompositedBounds):
removed if-statement that would never get triggered.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::updateCompositingLayers):
removed m_compositingConsultsOverlap, and retained the code as if the flag were "true".

* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (148764 => 148765)


--- trunk/Source/WebCore/ChangeLog	2013-04-19 20:32:55 UTC (rev 148764)
+++ trunk/Source/WebCore/ChangeLog	2013-04-19 20:41:23 UTC (rev 148765)
@@ -1,3 +1,33 @@
+2013-04-19  Shawn Singh  <[email protected]>
+
+        Remove non-overlap testing code in RenderLayerCompositor
+        https://bugs.webkit.org/show_bug.cgi?id=85521
+
+        Reviewed by Simon Fraser.
+
+        m_compositingConsultsOverlap is always true in the current
+        code. This patch removes this flag, and removes dead code that is
+        never executed because it was never false.
+
+        No new tests, no change in behavior.  The cleanup is covered by
+        existing tests.
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
+        removed if-statement that is always true.
+        
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::shouldClipCompositedBounds):
+        removed if-statement that would never get triggered.
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
+        (WebCore::RenderLayerCompositor::updateCompositingLayers):
+        removed m_compositingConsultsOverlap, and retained the code as if the flag were "true".
+        
+        * rendering/RenderLayerCompositor.h:
+        (RenderLayerCompositor):
+
 2013-04-19  Roger Fong  <[email protected]>
 
         Unreviewed. WebKit_Source is incorrectly set.

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (148764 => 148765)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2013-04-19 20:32:55 UTC (rev 148764)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2013-04-19 20:41:23 UTC (rev 148765)
@@ -2370,13 +2370,10 @@
         // Our stacking container is guaranteed to contain all of our descendants that may need
         // repositioning, so update compositing layers from there.
         if (RenderLayer* compositingAncestor = stackingContainer()->enclosingCompositingLayer()) {
-            if (compositor()->compositingConsultsOverlap()) {
-                if (usesCompositedScrolling() && !hasOutOfFlowPositionedDescendant())
-                    compositor()->updateCompositingLayers(CompositingUpdateOnCompositedScroll, compositingAncestor);
-                else
-                    compositor()->updateCompositingLayers(CompositingUpdateOnScroll, compositingAncestor);
-            } else
-                compositingAncestor->backing()->updateAfterLayout(RenderLayerBacking::IsUpdateRoot);
+            if (usesCompositedScrolling() && !hasOutOfFlowPositionedDescendant())
+                compositor()->updateCompositingLayers(CompositingUpdateOnCompositedScroll, compositingAncestor);
+            else
+                compositor()->updateCompositingLayers(CompositingUpdateOnScroll, compositingAncestor);
         }
     }
 #endif

Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (148764 => 148765)


--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2013-04-19 20:32:55 UTC (rev 148764)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2013-04-19 20:41:23 UTC (rev 148765)
@@ -419,9 +419,6 @@
     if (m_usingTiledCacheLayer)
         return false;
 
-    if (!compositor()->compositingConsultsOverlap())
-        return false;
-
     if (layerOrAncestorIsTransformedOrUsingCompositedScrolling(m_owningLayer))
         return false;
 

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (148764 => 148765)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2013-04-19 20:32:55 UTC (rev 148764)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2013-04-19 20:41:23 UTC (rev 148765)
@@ -155,7 +155,7 @@
 };
 
 struct CompositingState {
-    CompositingState(RenderLayer* compAncestor, bool testOverlap)
+    CompositingState(RenderLayer* compAncestor, bool testOverlap = true)
         : m_compositingAncestor(compAncestor)
         , m_subtreeIsCompositing(false)
         , m_testingOverlap(testOverlap)
@@ -202,7 +202,6 @@
     , m_showDebugBorders(false)
     , m_showRepaintCounter(false)
     , m_acceleratedDrawingEnabled(false)
-    , m_compositingConsultsOverlap(true)
     , m_reevaluateCompositingAfterLayout(false)
     , m_compositing(false)
     , m_compositingLayersNeedRebuild(false)
@@ -512,8 +511,7 @@
         checkForHierarchyUpdate = true;
         break;
     case CompositingUpdateOnScroll:
-        if (m_compositingConsultsOverlap)
-            checkForHierarchyUpdate = true; // Overlap can change with scrolling, so need to check for hierarchy updates.
+        checkForHierarchyUpdate = true; // Overlap can change with scrolling, so need to check for hierarchy updates.
 
         needGeometryUpdate = true;
         break;
@@ -527,12 +525,11 @@
 
     bool needHierarchyUpdate = m_compositingLayersNeedRebuild;
     bool isFullUpdate = !updateRoot;
-    if (!updateRoot || m_compositingConsultsOverlap) {
-        // Only clear the flag if we're updating the entire hierarchy.
-        m_compositingLayersNeedRebuild = false;
-        updateRoot = rootRenderLayer();
-    }
 
+    // Only clear the flag if we're updating the entire hierarchy.
+    m_compositingLayersNeedRebuild = false;
+    updateRoot = rootRenderLayer();
+
     if (isFullUpdate && updateType == CompositingUpdateAfterLayout)
         m_reevaluateCompositingAfterLayout = false;
 
@@ -547,15 +544,11 @@
     if (checkForHierarchyUpdate) {
         // Go through the layers in presentation order, so that we can compute which RenderLayers need compositing layers.
         // FIXME: we could maybe do this and the hierarchy udpate in one pass, but the parenting logic would be more complex.
-        CompositingState compState(updateRoot, m_compositingConsultsOverlap);
+        CompositingState compState(updateRoot);
         bool layersChanged = false;
         bool saw3DTransform = false;
-        if (m_compositingConsultsOverlap) {
-            OverlapMap overlapTestRequestMap;
-            computeCompositingRequirements(0, updateRoot, &overlapTestRequestMap, compState, layersChanged, saw3DTransform);
-        } else
-            computeCompositingRequirements(0, updateRoot, 0, compState, layersChanged, saw3DTransform);
-        
+        OverlapMap overlapTestRequestMap;
+        computeCompositingRequirements(0, updateRoot, &overlapTestRequestMap, compState, layersChanged, saw3DTransform);
         needHierarchyUpdate |= layersChanged;
     }
 
@@ -568,8 +561,7 @@
 
         Frame* frame = m_renderView->frameView()->frame();
         bool isMainFrame = !m_renderView->document()->ownerElement();
-        LOG(Compositing, "\nUpdate %d of %s. Overlap testing is %s\n", m_rootLayerUpdateCount, isMainFrame ? "main frame" : frame->tree()->uniqueName().string().utf8().data(),
-            m_compositingConsultsOverlap ? "on" : "off");
+        LOG(Compositing, "\nUpdate %d of %s.\n", m_rootLayerUpdateCount, isMainFrame ? "main frame" : frame->tree()->uniqueName().string().utf8().data());
     }
 #endif
 

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.h (148764 => 148765)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.h	2013-04-19 20:32:55 UTC (rev 148764)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.h	2013-04-19 20:41:23 UTC (rev 148765)
@@ -119,11 +119,6 @@
     void setCompositingLayersNeedRebuild(bool needRebuild = true);
     bool compositingLayersNeedRebuild() const { return m_compositingLayersNeedRebuild; }
 
-    // Controls whether or not to consult geometry when deciding which layers need
-    // to be composited. Defaults to true.
-    void setCompositingConsultsOverlap(bool b) { m_compositingConsultsOverlap = b; }
-    bool compositingConsultsOverlap() const { return m_compositingConsultsOverlap; }
-    
     // GraphicsLayers buffer state, which gets pushed to the underlying platform layers
     // at specific times.
     void scheduleLayerFlush(bool canThrottle);
@@ -405,7 +400,6 @@
     bool m_showDebugBorders;
     bool m_showRepaintCounter;
     bool m_acceleratedDrawingEnabled;
-    bool m_compositingConsultsOverlap;
 
     // When true, we have to wait until layout has happened before we can decide whether to enter compositing mode,
     // because only then do we know the final size of plugins and iframes.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to