| 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
|
|
|