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

Unified Diff: cc/resources/tile_manager.cc

Issue 643993005: Remove limit on number of resources in cc (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 2 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
Index: cc/resources/tile_manager.cc
diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc
index 77c4df607639fd51e57cb22c35d6c344d618e200..870af30cd017a855865ce6529cb664212a3bdd2b 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(int64 limit,
+ int64* usage) {
+ while (*usage > limit) {
RebuildEvictionQueueIfNeeded();
if (eviction_priority_queue_.IsEmpty())
return false;
Tile* tile = eviction_priority_queue_.Top();
- *usage -= MemoryUsage::FromTile(tile);
+ *usage -= BytesLimitFromTile(tile);
FreeResourcesForTileAndNotifyClientIfTileWasReadyToDraw(tile);
eviction_priority_queue_.Pop();
}
@@ -494,10 +493,10 @@ bool TileManager::FreeTileResourcesUntilUsageIsWithinLimit(
}
bool TileManager::FreeTileResourcesWithLowerPriorityUntilUsageIsWithinLimit(
- const MemoryUsage& limit,
+ int64 limit,
const TilePriority& other_priority,
- MemoryUsage* usage) {
- while (usage->Exceeds(limit)) {
+ int64* usage) {
+ 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 -= BytesLimitFromTile(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());
+ int64 hard_memory_limit = global_state_.hard_memory_limit_in_bytes;
+ int64 soft_memory_limit = global_state_.soft_memory_limit_in_bytes;
+ int64 memory_usage = resource_pool_->acquired_memory_usage_bytes();
eviction_priority_queue_is_up_to_date_ = false;
client_->BuildRasterQueue(&raster_priority_queue_,
@@ -587,10 +583,10 @@ 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;
+ int64 memory_required_by_tile_to_be_scheduled = 0;
if (!mts.raster_task.get()) {
- memory_required_by_tile_to_be_scheduled = MemoryUsage::FromConfig(
- tile->size(), resource_pool_->resource_format());
+ memory_required_by_tile_to_be_scheduled =
+ BytesLimitFromConfig(tile->size(), resource_pool_->resource_format());
}
bool tile_is_needed_now = priority.priority_bin == TilePriority::NOW;
@@ -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 =
+ int64 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,18 @@ void TileManager::CheckIfReadyToActivate() {
client_->NotifyReadyToActivate();
}
-TileManager::MemoryUsage::MemoryUsage() : memory_bytes_(0), resource_count_(0) {
+int64 TileManager::BytesLimitFromConfig(const gfx::Size& size,
+ ResourceFormat format) {
+ return Resource::MemorySizeBytes(size, format);
}
-TileManager::MemoryUsage::MemoryUsage(int64 memory_bytes, int resource_count)
- : memory_bytes_(memory_bytes), resource_count_(resource_count) {
-}
-
-// static
-TileManager::MemoryUsage TileManager::MemoryUsage::FromConfig(
- const gfx::Size& size,
- ResourceFormat format) {
- return MemoryUsage(Resource::MemorySizeBytes(size, format), 1);
-}
-
-// static
-TileManager::MemoryUsage TileManager::MemoryUsage::FromTile(const Tile* tile) {
+int64 TileManager::BytesLimitFromTile(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 BytesLimitFromConfig(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

Powered by Google App Engine
This is Rietveld 408576698