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

Unified Diff: cc/tiles/tile_manager.cc

Issue 1351283003: Allow task pools to reason about transparency. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make StagingBuffer constructor non-explicit Created 5 years, 3 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/tiles/tile_manager.h ('k') | cc/tiles/tile_manager_perftest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/tiles/tile_manager.cc
diff --git a/cc/tiles/tile_manager.cc b/cc/tiles/tile_manager.cc
index 6f798e67c6a822ba173ffa0439fad3bbca6a4d64..f682893c402efb9b839ed9b83db53b9acf26f5f1 100644
--- a/cc/tiles/tile_manager.cc
+++ b/cc/tiles/tile_manager.cc
@@ -527,7 +527,7 @@ void TileManager::AssignGpuMemoryToTiles(
MemoryUsage memory_required_by_tile_to_be_scheduled;
if (!tile->raster_task_.get()) {
memory_required_by_tile_to_be_scheduled = MemoryUsage::FromConfig(
- tile->desired_texture_size(), tile_task_runner_->GetResourceFormat());
+ tile->desired_texture_size(), DetermineResourceFormat(tile));
}
bool tile_is_needed_now = priority.priority_bin == TilePriority::NOW;
@@ -667,12 +667,12 @@ scoped_refptr<RasterTask> TileManager::CreateRasterTask(
}
if (resource) {
resource_content_id = tile->invalidated_id();
- DCHECK_EQ(tile_task_runner_->GetResourceFormat(), resource->format());
+ DCHECK_EQ(DetermineResourceFormat(tile), resource->format());
DCHECK_EQ(tile->desired_texture_size().ToString(),
resource->size().ToString());
} else {
- resource = resource_pool_->AcquireResource(
- tile->desired_texture_size(), tile_task_runner_->GetResourceFormat());
+ resource = resource_pool_->AcquireResource(tile->desired_texture_size(),
+ DetermineResourceFormat(tile));
}
// Create and queue all image decode tasks that this tile depends on.
@@ -737,8 +737,7 @@ void TileManager::UpdateTileDrawInfo(
DCHECK(resource);
draw_info.set_use_resource();
draw_info.resource_ = resource;
- draw_info.contents_swizzled_ =
- tile_task_runner_->GetResourceRequiresSwizzle();
+ draw_info.contents_swizzled_ = DetermineResourceRequiresSwizzle(tile);
}
DCHECK(draw_info.IsReadyToDraw());
draw_info.set_was_ever_ready_to_draw();
@@ -919,6 +918,14 @@ void TileManager::CheckIfMoreTilesNeedToBePrepared() {
signals_check_notifier_.Schedule();
}
+ResourceFormat TileManager::DetermineResourceFormat(const Tile* tile) const {
+ return tile_task_runner_->GetResourceFormat(!tile->is_opaque());
+}
+
+bool TileManager::DetermineResourceRequiresSwizzle(const Tile* tile) const {
+ return tile_task_runner_->GetResourceRequiresSwizzle(!tile->is_opaque());
+}
+
TileManager::MemoryUsage::MemoryUsage() : memory_bytes_(0), resource_count_(0) {
}
« no previous file with comments | « cc/tiles/tile_manager.h ('k') | cc/tiles/tile_manager_perftest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698