Index: cc/trees/layer_tree_host_impl.cc |
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
index 816383a6eb136e180b8874cce0576b24b1852120..32f9a2cd3225dfa9c177062bf33eee555c0f5491 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -174,7 +174,7 @@ LayerTreeHostImpl::LayerTreeHostImpl( |
did_lock_scrolling_layer_(false), |
should_bubble_scrolls_(false), |
wheel_scrolling_(false), |
- manage_tiles_needed_(false), |
+ tile_priorities_dirty_(false), |
root_layer_scroll_offset_delegate_(NULL), |
settings_(settings), |
visible_(true), |
@@ -255,7 +255,7 @@ void LayerTreeHostImpl::CommitComplete() { |
pending_tree_->set_needs_update_draw_properties(); |
pending_tree_->UpdateDrawProperties(); |
// Start working on newly created tiles immediately if needed. |
- if (!tile_manager_ || !manage_tiles_needed_) |
+ if (!tile_manager_ || !tile_priorities_dirty_) |
NotifyReadyToActivate(); |
else |
ManageTiles(); |
brianderson
2013/09/11 17:10:30
Will this ManageTiles() be a redundant call now th
epennerAtGoogle
2013/09/11 18:43:00
This isn't redundant unless we replicate this beha
|
@@ -327,12 +327,12 @@ void LayerTreeHostImpl::Animate(base::TimeTicks monotonic_time, |
void LayerTreeHostImpl::ManageTiles() { |
if (!tile_manager_) |
return; |
- if (!manage_tiles_needed_) |
+ if (!tile_priorities_dirty_) |
return; |
if (!device_viewport_valid_for_tile_management_) |
return; |
- manage_tiles_needed_ = false; |
+ tile_priorities_dirty_ = false; |
tile_manager_->ManageTiles(); |
size_t memory_required_bytes; |
@@ -1108,8 +1108,15 @@ void LayerTreeHostImpl::UpdateTileManagerMemoryPolicy( |
policy.priority_cutoff_when_visible : |
policy.priority_cutoff_when_not_visible); |
new_state.num_resources_limit = policy.num_resources_limit; |
+ |
+ WillModifyTilePriorities(); |
tile_manager_->SetGlobalState(new_state); |
- manage_tiles_needed_ = true; |
+} |
+ |
+void LayerTreeHostImpl::WillModifyTilePriorities() { |
+ // Mark priorities as dirty and schedule a ManageTiles(). |
+ tile_priorities_dirty_ = true; |
+ client_->SetNeedsManageTilesOnImplThread(); |
} |
void LayerTreeHostImpl::DidInitializeVisibleTile() { |
@@ -2509,8 +2516,9 @@ void LayerTreeHostImpl::SetTreePriority(TreePriority priority) { |
return; |
new_state.tree_priority = priority; |
+ |
+ WillModifyTilePriorities(); |
tile_manager_->SetGlobalState(new_state); |
- manage_tiles_needed_ = true; |
} |
void LayerTreeHostImpl::ResetCurrentFrameTimeForNextFrame() { |