| Index: cc/trees/layer_tree_host_common.cc
|
| diff --git a/cc/trees/layer_tree_host_common.cc b/cc/trees/layer_tree_host_common.cc
|
| index c16382e20a0033d87d1d3fab8fc7f817985a0792..84204b72e847b1b27e676beb660a3c962567d698 100644
|
| --- a/cc/trees/layer_tree_host_common.cc
|
| +++ b/cc/trees/layer_tree_host_common.cc
|
| @@ -577,16 +577,18 @@ void CalculateRenderSurfaceLayerList(
|
|
|
| // |can_render_to_separate_surface| and |current_render_surface_layer_list_id|
|
| // are settings that should stay the same during recursion.
|
| - bool layer_is_drawn = false;
|
| DCHECK_GE(layer->effect_tree_index(), 0);
|
| - layer_is_drawn = property_trees->effect_tree.Node(layer->effect_tree_index())
|
| - ->data.is_drawn;
|
| + bool layer_is_drawn =
|
| + property_trees->is_active
|
| + ? property_trees->effect_tree.Node(layer->effect_tree_index())
|
| + ->data.is_drawn_on_active
|
| + : property_trees->effect_tree.Node(layer->effect_tree_index())
|
| + ->data.is_drawn_on_main_and_pending;
|
|
|
| // The root layer cannot be skipped.
|
| if (!IsRootLayer(layer) &&
|
| - draw_property_utils::LayerShouldBeSkipped(layer, layer_is_drawn,
|
| - property_trees->transform_tree,
|
| - property_trees->effect_tree)) {
|
| + draw_property_utils::LayerShouldBeSkipped(
|
| + layer, property_trees->transform_tree, property_trees->effect_tree)) {
|
| if (layer->render_surface())
|
| layer->ClearRenderSurfaceLayerList();
|
| for (auto* child_layer : layer->children()) {
|
| @@ -649,7 +651,7 @@ void CalculateRenderSurfaceLayerList(
|
| size_t descendants_size = descendants->size();
|
|
|
| bool layer_should_be_skipped = !draw_property_utils::LayerNeedsUpdate(
|
| - layer, layer_is_drawn, property_trees->transform_tree);
|
| + layer, property_trees->transform_tree);
|
| if (!layer_should_be_skipped) {
|
| MarkLayerWithRenderSurfaceLayerListId(layer,
|
| current_render_surface_layer_list_id);
|
|
|