| 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 27090dac4a75df9ca9e3b21362883fa1efb8588e..c2b77bd0ff1dab5daca92c288d6f89e036c32f63 100644
|
| --- a/cc/trees/layer_tree_host_common.cc
|
| +++ b/cc/trees/layer_tree_host_common.cc
|
| @@ -1088,6 +1088,7 @@ struct SubtreeGlobals {
|
| float page_scale_factor;
|
| LayerType* page_scale_application_layer;
|
| bool can_adjust_raster_scales;
|
| + bool can_render_to_separate_surface;
|
| };
|
|
|
| template<typename LayerType, typename RenderSurfaceType>
|
| @@ -1448,8 +1449,14 @@ static void CalculateDrawPropertiesInternal(
|
| ? combined_transform_scales
|
| : gfx::Vector2dF(layer_scale_factors, layer_scale_factors);
|
|
|
| - if (SubtreeShouldRenderToSeparateSurface(
|
| - layer, combined_transform.Preserves2dAxisAlignment())) {
|
| + bool render_to_separate_surface;
|
| + if (globals.can_render_to_separate_surface) {
|
| + render_to_separate_surface = SubtreeShouldRenderToSeparateSurface(
|
| + layer, combined_transform.Preserves2dAxisAlignment());
|
| + } else {
|
| + render_to_separate_surface = IsRootLayer(layer);
|
| + }
|
| + if (render_to_separate_surface) {
|
| // Check back-face visibility before continuing with this surface and its
|
| // subtree
|
| if (!layer->double_sided() && TransformToParentIsKnown(layer) &&
|
| @@ -1939,6 +1946,8 @@ void LayerTreeHostCommon::CalculateDrawProperties(
|
| globals.device_scale_factor = inputs->device_scale_factor;
|
| globals.page_scale_factor = inputs->page_scale_factor;
|
| globals.page_scale_application_layer = inputs->page_scale_application_layer;
|
| + globals.can_render_to_separate_surface =
|
| + inputs->can_render_to_separate_surface;
|
| globals.can_adjust_raster_scales = inputs->can_adjust_raster_scales;
|
|
|
| DataForRecursion<Layer, RenderSurface> data_for_recursion;
|
| @@ -1996,6 +2005,8 @@ void LayerTreeHostCommon::CalculateDrawProperties(
|
| globals.device_scale_factor = inputs->device_scale_factor;
|
| globals.page_scale_factor = inputs->page_scale_factor;
|
| globals.page_scale_application_layer = inputs->page_scale_application_layer;
|
| + globals.can_render_to_separate_surface =
|
| + inputs->can_render_to_separate_surface;
|
| globals.can_adjust_raster_scales = inputs->can_adjust_raster_scales;
|
|
|
| DataForRecursion<LayerImpl, RenderSurfaceImpl> data_for_recursion;
|
|
|