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

Unified Diff: cc/resources/tile_manager.cc

Issue 270333003: cc: Do not limit number of raster tasks for upload limit. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed TileManagerPerfTest Created 6 years, 7 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 41286501cbceb7cc893f21a775eadd2d4cf865e3..1c04d077f106ecabe69a71cd6b4d5482b4f5aceb 100644
--- a/cc/resources/tile_manager.cc
+++ b/cc/resources/tile_manager.cc
@@ -369,14 +369,12 @@ scoped_ptr<TileManager> TileManager::Create(
ResourcePool* resource_pool,
Rasterizer* rasterizer,
Rasterizer* gpu_rasterizer,
- size_t max_raster_usage_bytes,
bool use_rasterize_on_demand,
RenderingStatsInstrumentation* rendering_stats_instrumentation) {
return make_scoped_ptr(new TileManager(client,
resource_pool,
rasterizer,
gpu_rasterizer,
- max_raster_usage_bytes,
use_rasterize_on_demand,
rendering_stats_instrumentation));
}
@@ -386,7 +384,6 @@ TileManager::TileManager(
ResourcePool* resource_pool,
Rasterizer* rasterizer,
Rasterizer* gpu_rasterizer,
- size_t max_raster_usage_bytes,
bool use_rasterize_on_demand,
RenderingStatsInstrumentation* rendering_stats_instrumentation)
: client_(client),
@@ -398,7 +395,6 @@ TileManager::TileManager(
memory_nice_to_have_bytes_(0),
bytes_releasable_(0),
resources_releasable_(0),
- max_raster_usage_bytes_(max_raster_usage_bytes),
ever_exceeded_memory_budget_(false),
rendering_stats_instrumentation_(rendering_stats_instrumentation),
did_initialize_visible_tile_(false),
@@ -829,14 +825,6 @@ void TileManager::AssignGpuMemoryToTiles(
bool oomed_hard = false;
bool have_hit_soft_memory = false; // Soft memory comes after hard.
- // Memory we assign to raster tasks now will be deducted from our memory
- // in future iterations if priorities change. By assigning at most half
- // the raster limit, we will always have another 50% left even if priorities
- // change completely (assuming we check for completed/cancelled rasters
- // between each call to this function).
- size_t max_raster_bytes = max_raster_usage_bytes_ / 2;
- size_t raster_bytes = 0;
-
unsigned schedule_priority = 1u;
for (PrioritizedTileSet::Iterator it(tiles, true); it; ++it) {
Tile* tile = *it;
@@ -861,7 +849,6 @@ void TileManager::AssignGpuMemoryToTiles(
const bool tile_uses_hard_limit = mts.bin <= NOW_BIN;
const size_t bytes_if_allocated = BytesConsumedIfAllocated(tile);
- const size_t raster_bytes_if_rastered = raster_bytes + bytes_if_allocated;
const size_t tile_bytes_left =
(tile_uses_hard_limit) ? hard_bytes_left : soft_bytes_left;
@@ -885,7 +872,9 @@ void TileManager::AssignGpuMemoryToTiles(
// Allow lower priority tiles with initialized resources to keep
// their memory by only assigning memory to new raster tasks if
// they can be scheduled.
- if (raster_bytes_if_rastered <= max_raster_bytes) {
+ bool reached_scheduled_raster_tasks_limit =
+ tiles_that_need_to_be_rasterized->size() >= kScheduledRasterTasksLimit;
+ if (!reached_scheduled_raster_tasks_limit) {
// If we don't have the required version, and it's not in flight
// then we'll have to pay to create a new task.
if (!tile_version.resource_ && !tile_version.raster_task_) {
@@ -929,8 +918,7 @@ void TileManager::AssignGpuMemoryToTiles(
// 2. Tiles with existing raster task could otherwise incorrectly
// be added as they are not affected by |bytes_allocatable|.
bool can_schedule_tile =
- !oomed_soft && raster_bytes_if_rastered <= max_raster_bytes &&
- tiles_that_need_to_be_rasterized->size() < kScheduledRasterTasksLimit;
+ !oomed_soft && !reached_scheduled_raster_tasks_limit;
if (!can_schedule_tile) {
all_tiles_that_need_to_be_rasterized_have_memory_ = false;
@@ -940,7 +928,6 @@ void TileManager::AssignGpuMemoryToTiles(
continue;
}
- raster_bytes = raster_bytes_if_rastered;
tiles_that_need_to_be_rasterized->push_back(tile);
}
« 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