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

Unified Diff: cc/trees/property_tree.cc

Issue 1884613005: cc : Simplify layer skipping logic (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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: cc/trees/property_tree.cc
diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc
index 54f4ec47496a50ce1f32c6c0ef4d220859a6c18c..d5b272e29476418507aa09a93a933a4a538febf1 100644
--- a/cc/trees/property_tree.cc
+++ b/cc/trees/property_tree.cc
@@ -1244,11 +1244,12 @@ void EffectTree::UpdateIsDrawn(EffectNode* node, EffectNode* parent_node) {
// 1) Nodes that contribute to copy requests, whether hidden or not, must be
// drawn.
// 2) Nodes that have a background filter.
- // 3) Nodes with animating screen space opacity are drawn if their parent is
- // drawn irrespective of their opacity.
+ // 3) Nodes with animating screen space opacity on main thread or pending tree
+ // are drawn if their parent is drawn irrespective of their opacity.
if (node->data.has_copy_request)
node->data.is_drawn = true;
- else if (node->data.opacity == 0.f && !node->data.has_animated_opacity &&
+ else if (node->data.opacity == 0.f &&
+ (!node->data.has_animated_opacity || property_trees()->is_active) &&
!node->data.has_background_filters)
node->data.is_drawn = false;
else if (parent_node)
@@ -1330,7 +1331,8 @@ bool EffectTree::ContributesToDrawnSurface(int id) {
EffectNode* parent_node = parent(node);
bool contributes_to_drawn_surface =
node->data.is_drawn &&
- (node->data.opacity != 0.f || node->data.has_animated_opacity ||
+ (node->data.opacity != 0.f ||
+ (node->data.has_animated_opacity && !property_trees()->is_active) ||
ajuma 2016/04/13 19:53:06 Is this needed? It changes behavior in the computa
jaydasika 2016/04/13 20:21:24 This should be the cause for browser test crashes.
node->data.has_background_filters);
if (parent_node && !parent_node->data.is_drawn)
contributes_to_drawn_surface = false;
« cc/trees/draw_property_utils.cc ('K') | « cc/trees/layer_tree_host_common_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698