Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Unified Diff: cc/tile_manager.cc

Issue 12321053: cc: Complete pending tile uploads if they are needed for tree activation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased after managed_tile_state refactoring. Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/tile_manager.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/tile_manager.cc
diff --git a/cc/tile_manager.cc b/cc/tile_manager.cc
index 4c611b91a2ecb3ca11c5b80277110b748bb83eda..de471a821c3cf52df5f21b4c56ef18135ac8b38d 100644
--- a/cc/tile_manager.cc
+++ b/cc/tile_manager.cc
@@ -137,6 +137,9 @@ scoped_ptr<base::Value> TileRasterStateAsValue(
case UPLOAD_STATE:
return scoped_ptr<base::Value>(base::Value::CreateStringValue(
"UPLOAD_STATE"));
+ case FORCED_UPLOAD_COMPLETION_STATE:
+ return scoped_ptr<base::Value>(base::Value::CreateStringValue(
+ "FORCED_UPLOAD_COMPLETION_STATE"));
default:
DCHECK(false) << "Unrecognized TileRasterState value";
return scoped_ptr<base::Value>(base::Value::CreateStringValue(
@@ -428,6 +431,18 @@ void TileManager::DidCompleteFrame() {
did_schedule_cheap_tasks_ = false;
}
+void TileManager::ForceTileUploadToComplete(Tile* tile) {
+ ManagedTileState& managed_tile_state = tile->managed_state();
+ if (managed_tile_state.raster_state == UPLOAD_STATE) {
+ Resource* resource = tile->drawing_info().resource_.get();
+ DCHECK(resource);
+ resource_pool_->resource_provider()->
+ ForceSetPixelsToComplete(resource->id());
+ tile->drawing_info().resource_is_being_initialized_ = false;
+ DidTileRasterStateChange(tile, FORCED_UPLOAD_COMPLETION_STATE);
+ }
+}
+
void TileManager::GetMemoryStats(
size_t* memoryRequiredBytes,
size_t* memoryNiceToHaveBytes,
@@ -513,6 +528,7 @@ bool TileManager::HasPendingWorkScheduled(WhichTree tree) const {
case WAITING_FOR_RASTER_STATE:
case RASTER_STATE:
case UPLOAD_STATE:
+ case FORCED_UPLOAD_COMPLETION_STATE:
for (int j = 0; j < NEVER_BIN; ++j) {
if (raster_state_count_[i][tree][j])
return true;
« no previous file with comments | « cc/tile_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698