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); |
} |