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

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: review 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
« no previous file with comments | « cc/resources/tile_manager.h ('k') | cc/resources/tile_manager_perftest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resources/tile_manager.cc
diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc
index 77c4df607639fd51e57cb22c35d6c344d618e200..c0672c65a913a93cd48af1c3728731c2c9b9f731 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 -= MemoryUsageFromTile(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 -= 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());
+ int64 hard_memory_limit = global_state_.hard_memory_limit_in_bytes;
vmpstr 2014/10/27 17:58:55 i would kinda weakly prefer to have something alon
jamesr 2014/10/27 18:03:25 we use int64_t, etc, nowadays not int64
+ 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,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;
+ int64 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 =
+ 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::MemoryUsageFromConfig(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::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
« no previous file with comments | « cc/resources/tile_manager.h ('k') | cc/resources/tile_manager_perftest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698