| Index: cc/resources/tile_manager.cc
|
| diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc
|
| index 86874e75bcb7345dd08b953b0d304f01d77afa38..a48a6d8bb013249c38d8ac77e7d2d3a8ad6536cd 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),
|
| + has_active_visible_tile_scheduled_(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;
|
| + has_active_visible_tile_scheduled_ = false;
|
| +
|
| 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();
|
| - 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,8 @@ void TileManager::ScheduleTasks(
|
|
|
| raster_queue_.Reset();
|
|
|
| + has_active_visible_tile_scheduled_ = false;
|
| +
|
| // 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();
|
| @@ -681,6 +680,9 @@ void TileManager::ScheduleTasks(
|
| Tile* tile = *it;
|
| ManagedTileState& mts = tile->managed_state();
|
|
|
| + if (tile->priority(ACTIVE_TREE).distance_to_visible == 0.f)
|
| + has_active_visible_tile_scheduled_ = true;
|
| +
|
| DCHECK(mts.draw_info.requires_resource());
|
| DCHECK(!mts.draw_info.resource_);
|
|
|
| @@ -822,9 +824,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);
|
| }
|
|
|
|
|