Chromium Code Reviews| Index: cc/resources/tile_manager.cc |
| diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc |
| index c785cf6fd7fec0b0b4c17985ef1be5f7540efaa0..654ffdfbf0417c3e889c4d04f6ed9e7f6d3d507b 100644 |
| --- a/cc/resources/tile_manager.cc |
| +++ b/cc/resources/tile_manager.cc |
| @@ -239,9 +239,9 @@ TileManager::TileManager( |
| scheduled_raster_task_limit_(scheduled_raster_task_limit), |
| all_tiles_that_need_to_be_rasterized_are_scheduled_(true), |
| rendering_stats_instrumentation_(rendering_stats_instrumentation), |
| - did_initialize_visible_tile_(false), |
| did_check_for_completed_tasks_since_last_schedule_tasks_(true), |
| did_oom_on_last_assign_(false), |
| + is_top_priority_uninitialized_tile_visible_and_active_(false), |
| ready_to_activate_check_notifier_( |
| task_runner_.get(), |
| base::Bind(&TileManager::CheckIfReadyToActivate, |
| @@ -318,6 +318,10 @@ void TileManager::DidFinishRunningTasks(TaskSet task_set) { |
| if (task_set == ALL) { |
| TRACE_EVENT1("cc", "TileManager::DidFinishRunningTasks", "task_set", "ALL"); |
| + rasterizer_->CheckForCompletedTasks(); |
| + did_check_for_completed_tasks_since_last_schedule_tasks_ = true; |
| + is_top_priority_uninitialized_tile_visible_and_active_ = false; |
|
reveman
2014/10/31 00:44:01
'false' might be incorrect. I guess we're assuming
|
| + |
| bool memory_usage_above_limit = resource_pool_->total_memory_usage_bytes() > |
| global_state_.soft_memory_limit_in_bytes; |
| @@ -327,9 +331,6 @@ void TileManager::DidFinishRunningTasks(TaskSet task_set) { |
| !memory_usage_above_limit) |
| return; |
| - rasterizer_->CheckForCompletedTasks(); |
|
reveman
2014/10/31 00:44:01
This call has a cost. It's done here so it can be
|
| - did_check_for_completed_tasks_since_last_schedule_tasks_ = true; |
| - |
| TileVector tiles_that_need_to_be_rasterized; |
| AssignGpuMemoryToTiles(&tiles_that_need_to_be_rasterized); |
| @@ -430,7 +431,7 @@ void TileManager::ManageTiles(const GlobalStateThatImpactsTilePriority& state) { |
| resource_pool_->acquired_memory_usage_bytes()); |
| } |
| -bool TileManager::UpdateVisibleTiles() { |
| +void TileManager::UpdateVisibleTiles() { |
| TRACE_EVENT0("cc", "TileManager::UpdateVisibleTiles"); |
| rasterizer_->CheckForCompletedTasks(); |
| @@ -443,10 +444,6 @@ bool TileManager::UpdateVisibleTiles() { |
| "stats", |
| RasterTaskCompletionStatsAsValue(update_visible_tiles_stats_)); |
| update_visible_tiles_stats_ = RasterTaskCompletionStats(); |
| - |
| - bool did_initialize_visible_tile = did_initialize_visible_tile_; |
| - did_initialize_visible_tile_ = false; |
| - return did_initialize_visible_tile; |
| } |
| scoped_refptr<base::debug::ConvertableToTraceFormat> |
| @@ -673,6 +670,14 @@ void TileManager::ScheduleTasks( |
| raster_queue_.Reset(); |
| + if (tiles_that_need_to_be_rasterized.empty()) { |
| + is_top_priority_uninitialized_tile_visible_and_active_ = false; |
| + } else { |
| + const Tile* tile = tiles_that_need_to_be_rasterized.front(); |
| + is_top_priority_uninitialized_tile_visible_and_active_ = |
| + tile->is_active_and_visible_priority(); |
|
reveman
2014/10/31 00:44:01
is_top_priority_uninitialized_tile_visible_and_act
|
| + } |
| + |
| // Build a new task queue containing all task currently needed. Tasks |
| // are added in order of priority, highest priority task first. |
| for (TileVector::const_iterator it = tiles_that_need_to_be_rasterized.begin(); |
| @@ -822,9 +827,6 @@ void TileManager::OnRasterTaskCompleted( |
| mts.draw_info.resource_ = resource.Pass(); |
| } |
| - if (tile->priority(ACTIVE_TREE).distance_to_visible == 0.f) |
| - did_initialize_visible_tile_ = true; |
| - |
| client_->NotifyTileStateChanged(tile); |
| } |