Index: cc/resources/tile_manager.cc |
diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc |
index 77c4df607639fd51e57cb22c35d6c344d618e200..299ba030625aa862868a1e00347afbad70663d5a 100644 |
--- a/cc/resources/tile_manager.cc |
+++ b/cc/resources/tile_manager.cc |
@@ -477,16 +477,15 @@ void TileManager::RebuildEvictionQueueIfNeeded() { |
eviction_priority_queue_is_up_to_date_ = true; |
} |
-bool TileManager::FreeTileResourcesUntilUsageIsWithinLimit( |
- const MemoryUsage& limit, |
- MemoryUsage* usage) { |
- while (usage->Exceeds(limit)) { |
+bool TileManager::FreeTileResourcesUntilUsageIsWithinLimit(MemoryUsage limit, |
+ MemoryUsage* usage) { |
+ while (*usage > limit) { |
RebuildEvictionQueueIfNeeded(); |
if (eviction_priority_queue_.IsEmpty()) |
return false; |
Tile* tile = eviction_priority_queue_.Top(); |
- *usage -= MemoryUsage::FromTile(tile); |
+ *usage -= MemoryUsageFromTile(tile); |
FreeResourcesForTileAndNotifyClientIfTileWasReadyToDraw(tile); |
eviction_priority_queue_.Pop(); |
} |
@@ -494,10 +493,10 @@ bool TileManager::FreeTileResourcesUntilUsageIsWithinLimit( |
} |
bool TileManager::FreeTileResourcesWithLowerPriorityUntilUsageIsWithinLimit( |
- const MemoryUsage& limit, |
+ MemoryUsage limit, |
const TilePriority& other_priority, |
MemoryUsage* usage) { |
- while (usage->Exceeds(limit)) { |
+ while (*usage > limit) { |
RebuildEvictionQueueIfNeeded(); |
if (eviction_priority_queue_.IsEmpty()) |
return false; |
@@ -506,7 +505,7 @@ bool TileManager::FreeTileResourcesWithLowerPriorityUntilUsageIsWithinLimit( |
if (!other_priority.IsHigherPriorityThan(tile->combined_priority())) |
return false; |
- *usage -= MemoryUsage::FromTile(tile); |
+ *usage -= MemoryUsageFromTile(tile); |
FreeResourcesForTileAndNotifyClientIfTileWasReadyToDraw(tile); |
eviction_priority_queue_.Pop(); |
} |
@@ -547,12 +546,9 @@ void TileManager::AssignGpuMemoryToTiles( |
all_tiles_that_need_to_be_rasterized_are_scheduled_ = true; |
bool had_enough_memory_to_schedule_tiles_needed_now = true; |
- MemoryUsage hard_memory_limit(global_state_.hard_memory_limit_in_bytes, |
- global_state_.num_resources_limit); |
- MemoryUsage soft_memory_limit(global_state_.soft_memory_limit_in_bytes, |
- global_state_.num_resources_limit); |
- MemoryUsage memory_usage(resource_pool_->acquired_memory_usage_bytes(), |
- resource_pool_->acquired_resource_count()); |
+ MemoryUsage hard_memory_limit = global_state_.hard_memory_limit_in_bytes; |
+ MemoryUsage soft_memory_limit = global_state_.soft_memory_limit_in_bytes; |
+ MemoryUsage memory_usage = resource_pool_->acquired_memory_usage_bytes(); |
eviction_priority_queue_is_up_to_date_ = false; |
client_->BuildRasterQueue(&raster_priority_queue_, |
@@ -587,9 +583,9 @@ void TileManager::AssignGpuMemoryToTiles( |
// If the tile already has a raster_task, then the memory used by it is |
// already accounted for in memory_usage. Otherwise, we'll have to acquire |
// more memory to create a raster task. |
- MemoryUsage memory_required_by_tile_to_be_scheduled; |
+ MemoryUsage memory_required_by_tile_to_be_scheduled = 0; |
if (!mts.raster_task.get()) { |
- memory_required_by_tile_to_be_scheduled = MemoryUsage::FromConfig( |
+ memory_required_by_tile_to_be_scheduled = MemoryUsageFromConfig( |
tile->size(), resource_pool_->resource_format()); |
} |
@@ -598,7 +594,7 @@ void TileManager::AssignGpuMemoryToTiles( |
// This is the memory limit that will be used by this tile. Depending on |
// the tile priority, it will be one of hard_memory_limit or |
// soft_memory_limit. |
- MemoryUsage& tile_memory_limit = |
+ MemoryUsage tile_memory_limit = |
tile_is_needed_now ? hard_memory_limit : soft_memory_limit; |
bool memory_usage_is_within_limit = |
@@ -632,7 +628,7 @@ void TileManager::AssignGpuMemoryToTiles( |
memory_stats_from_last_assign_.total_budget_in_bytes = |
global_state_.hard_memory_limit_in_bytes; |
- memory_stats_from_last_assign_.total_bytes_used = memory_usage.memory_bytes(); |
+ memory_stats_from_last_assign_.total_bytes_used = memory_usage; |
memory_stats_from_last_assign_.had_enough_memory = |
had_enough_memory_to_schedule_tiles_needed_now; |
@@ -877,54 +873,19 @@ void TileManager::CheckIfReadyToActivate() { |
client_->NotifyReadyToActivate(); |
} |
-TileManager::MemoryUsage::MemoryUsage() : memory_bytes_(0), resource_count_(0) { |
-} |
- |
-TileManager::MemoryUsage::MemoryUsage(int64 memory_bytes, int resource_count) |
- : memory_bytes_(memory_bytes), resource_count_(resource_count) { |
-} |
- |
-// static |
-TileManager::MemoryUsage TileManager::MemoryUsage::FromConfig( |
+TileManager::MemoryUsage TileManager::MemoryUsageFromConfig( |
const gfx::Size& size, |
ResourceFormat format) { |
- return MemoryUsage(Resource::MemorySizeBytes(size, format), 1); |
+ return Resource::MemorySizeBytes(size, format); |
} |
-// static |
-TileManager::MemoryUsage TileManager::MemoryUsage::FromTile(const Tile* tile) { |
+TileManager::MemoryUsage TileManager::MemoryUsageFromTile(const Tile* tile) { |
const ManagedTileState& mts = tile->managed_state(); |
if (mts.draw_info.resource_) { |
- return MemoryUsage::FromConfig(tile->size(), |
- mts.draw_info.resource_->format()); |
+ return MemoryUsageFromConfig(tile->size(), |
+ mts.draw_info.resource_->format()); |
} |
- return MemoryUsage(); |
-} |
- |
-TileManager::MemoryUsage& TileManager::MemoryUsage::operator+=( |
- const MemoryUsage& other) { |
- memory_bytes_ += other.memory_bytes_; |
- resource_count_ += other.resource_count_; |
- return *this; |
-} |
- |
-TileManager::MemoryUsage& TileManager::MemoryUsage::operator-=( |
- const MemoryUsage& other) { |
- memory_bytes_ -= other.memory_bytes_; |
- resource_count_ -= other.resource_count_; |
- return *this; |
-} |
- |
-TileManager::MemoryUsage TileManager::MemoryUsage::operator-( |
- const MemoryUsage& other) { |
- MemoryUsage result = *this; |
- result -= other; |
- return result; |
-} |
- |
-bool TileManager::MemoryUsage::Exceeds(const MemoryUsage& limit) const { |
- return memory_bytes_ > limit.memory_bytes_ || |
- resource_count_ > limit.resource_count_; |
+ return 0; |
} |
} // namespace cc |