| 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 973885887424b18c70560375d5585bb2c6e992ee..44d324b9e8f266fcc70a29bd59a3dd2d419ddc78 100644
|
| --- a/cc/trees/layer_tree_host_common.cc
|
| +++ b/cc/trees/layer_tree_host_common.cc
|
| @@ -20,6 +20,7 @@
|
| #include "cc/trees/layer_tree_impl.h"
|
| #include "cc/trees/property_tree_builder.h"
|
| #include "cc/trees/scroll_node.h"
|
| +#include "cc/trees/transform_node.h"
|
| #include "ui/gfx/geometry/rect_conversions.h"
|
| #include "ui/gfx/geometry/vector2d_conversions.h"
|
| #include "ui/gfx/transform.h"
|
| @@ -294,9 +295,20 @@ static void ComputeInitialRenderSurfaceLayerList(
|
| layer->set_is_drawn_render_surface_layer_list_member(false);
|
|
|
| bool is_root = layer_tree_impl->IsRootLayer(layer);
|
| - bool skip_layer = !is_root && draw_property_utils::LayerShouldBeSkipped(
|
| - layer, property_trees->transform_tree,
|
| - property_trees->effect_tree);
|
| +
|
| + bool skip_draw_properties_computation =
|
| + draw_property_utils::LayerShouldBeSkippedForDrawPropertiesComputation(
|
| + layer, property_trees->transform_tree, property_trees->effect_tree);
|
| +
|
| + const TransformNode* transform_node =
|
| + property_trees->transform_tree.Node(layer->transform_tree_index());
|
| + bool skip_for_invertibility = !transform_node->ancestors_are_invertible;
|
| +
|
| + bool skip_layer = !is_root && (skip_draw_properties_computation ||
|
| + skip_for_invertibility);
|
| +
|
| + layer->set_raster_even_if_not_in_rsll(skip_for_invertibility &&
|
| + !skip_draw_properties_computation);
|
| if (skip_layer)
|
| continue;
|
|
|
|
|