Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(922)

Unified Diff: Source/core/rendering/RenderLayer.cpp

Issue 183763016: Reduce compositing update in Silk's toggle_drawer by 20% (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix the glitch Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/rendering/RenderLayer.cpp
diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp
index 71c1ebf9c1a3dbc5742c8849ebd69fa57678308f..80362fe7d3d741e8487f7139b9edb2b11d40e937 100644
--- a/Source/core/rendering/RenderLayer.cpp
+++ b/Source/core/rendering/RenderLayer.cpp
@@ -710,8 +710,15 @@ void RenderLayer::setHasVisibleContent()
return;
}
- m_visibleContentStatusDirty = false;
m_hasVisibleContent = true;
+ m_visibleContentStatusDirty = false;
+
+ {
+ DisableCompositingQueryAsserts disabler;
ojan 2014/03/05 18:29:51 Are there tests that you know hit this? It'd be ni
abarth-chromium 2014/03/05 23:12:19 I haven't tried, but I'm sure it's hit by many tes
+ if (RenderLayer* compositingLayer = enclosingCompositingLayer())
+ compositingLayer->compositedLayerMapping()->setNeedsGeometryUpdate();
+ }
+
repainter().computeRepaintRects(renderer()->containerForRepaint());
if (!m_stackingNode->isNormalFlowOnly()) {
// We don't collect invisible layers in z-order lists if we are not in compositing mode.
@@ -875,6 +882,10 @@ void RenderLayer::updateDescendantDependentFlags()
}
}
m_visibleContentStatusDirty = false;
+
+ DisableCompositingQueryAsserts disabler;
+ if (RenderLayer* compositingLayer = enclosingCompositingLayer())
+ compositingLayer->compositedLayerMapping()->setNeedsGeometryUpdate();
ojan 2014/03/05 18:29:51 Technically, you only need to do this if m_hasVisi
abarth-chromium 2014/03/05 23:12:19 That's right. I'll add that branch.
}
}
@@ -3507,6 +3518,7 @@ CompositedLayerMappingPtr RenderLayer::ensureCompositedLayerMapping()
{
if (!m_compositedLayerMapping) {
m_compositedLayerMapping = adoptPtr(new CompositedLayerMapping(this));
+ m_compositedLayerMapping->setNeedsGeometryUpdate();
updateOrRemoveFilterEffectRenderer();
@@ -3518,6 +3530,9 @@ CompositedLayerMappingPtr RenderLayer::ensureCompositedLayerMapping()
void RenderLayer::clearCompositedLayerMapping(bool layerBeingDestroyed)
{
+ if (!layerBeingDestroyed)
+ m_compositedLayerMapping->setNeedsGeometryUpdate();
+
m_compositedLayerMapping.clear();
if (!layerBeingDestroyed)
@@ -3873,6 +3888,9 @@ void RenderLayer::styleChanged(StyleDifference diff, const RenderStyle* oldStyle
// https://code.google.com/p/chromium/issues/detail?id=343756
DisableCompositingQueryAsserts disabler;
+ if (RenderLayer* compositingLayer = enclosingCompositingLayer())
+ compositingLayer->compositedLayerMapping()->setNeedsGeometryUpdate();
+
const RenderStyle* newStyle = renderer()->style();
compositor()->updateLayerCompositingState(this, RenderLayerCompositor::UseChickenEggHacks);

Powered by Google App Engine
This is Rietveld 408576698