Index: cc/layer_tree_impl.cc |
diff --git a/cc/layer_tree_impl.cc b/cc/layer_tree_impl.cc |
index 832ecaa84d1da7fe6abe6172d483d6215d2b4d67..088cf86363a40bd4fdddf08bcc4a3c319c325a3b 100644 |
--- a/cc/layer_tree_impl.cc |
+++ b/cc/layer_tree_impl.cc |
@@ -28,6 +28,7 @@ LayerTreeImpl::LayerTreeImpl(LayerTreeHostImpl* layer_tree_host_impl) |
scrolling_layer_id_from_previous_tree_(0), |
contents_textures_purged_(false), |
needs_update_draw_properties_(true), |
+ needs_update_tile_priorities_(false), |
needs_full_tree_sync_(true) { |
} |
@@ -213,13 +214,17 @@ struct UpdateTilePrioritiesForLayer { |
void LayerTreeImpl::UpdateDrawProperties(UpdateDrawPropertiesReason reason) { |
if (!needs_update_draw_properties_) { |
- if (reason == UPDATE_ACTIVE_TREE_FOR_DRAW && RootLayer()) |
+ if (needs_update_tile_priorities_ && RootLayer()) { |
+ DCHECK_EQ(UPDATE_ACTIVE_TREE_FOR_DRAW, reason); |
LayerTreeHostCommon::callFunctionForSubtree<UpdateTilePrioritiesForLayer>( |
RootLayer()); |
+ needs_update_tile_priorities_ = false; |
+ } |
return; |
} |
needs_update_draw_properties_ = false; |
+ needs_update_tile_priorities_ = true; |
render_surface_layer_list_.clear(); |
// For maxTextureSize. |
@@ -249,6 +254,9 @@ void LayerTreeImpl::UpdateDrawProperties(UpdateDrawPropertiesReason reason) { |
settings().canUseLCDText, |
render_surface_layer_list_, |
update_tile_priorities); |
+ |
+ if (update_tile_priorities) |
+ needs_update_tile_priorities_ = false; |
} |
DCHECK(!needs_update_draw_properties_) << |