Chromium Code Reviews| 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() { |