summaryrefslogtreecommitdiffstats
path: root/cc/resources
diff options
context:
space:
mode:
authorkbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-01 13:13:23 +0000
committerkbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-01 13:13:23 +0000
commita4e454984bd0f758bab24c5c8bd4eef68eb19f6f (patch)
treef81e39b6e9939f00a47aab5c1640bb902365aeed /cc/resources
parent3cf8fe52af3d6266fe041a70a7c079391cd8b8af (diff)
downloadchromium_src-a4e454984bd0f758bab24c5c8bd4eef68eb19f6f.zip
chromium_src-a4e454984bd0f758bab24c5c8bd4eef68eb19f6f.tar.gz
chromium_src-a4e454984bd0f758bab24c5c8bd4eef68eb19f6f.tar.bz2
Revert of cc: Change required_for_activation bookkeeping. (https://codereview.chromium.org/257773009/)
Reason for revert: Caused context_lost tests to hang on Win and Mac GPU bots. See original CL for links to failing builds. Original issue's description: > cc: Change required_for_activation bookkeeping. > > This patch changes the bookkeeping of whether required for activation > tiles all received memory during AssignGpuMemory. The new approach > doesn't rely on the fact that we process every tile in that loop, thus > allowing us to early out or use another approach at getting tiles that > does not guarantee that every tile will be visited. > > The end goal is to evaluate if we can activate when the rasterizer > notifies us that all tasks given to it that are required for > activation are finished rather than trying to figure this out > when we schedule tasks. > > R=reveman, enne > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=267400 TBR=enne@chromium.org,reveman@chromium.org,vmpstr@chromium.org NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/269633006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267521 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/resources')
-rw-r--r--cc/resources/tile_manager.cc28
1 files changed, 4 insertions, 24 deletions
diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc
index eb389c5..38948c3 100644
--- a/cc/resources/tile_manager.cc
+++ b/cc/resources/tile_manager.cc
@@ -675,8 +675,7 @@ void TileManager::GetTilesWithAssignedBins(PrioritizedTileSet* tiles) {
// should keep it in the prioritized tile set to ensure that AssignGpuMemory
// can visit it.
if (mts.bin == NEVER_BIN &&
- !mts.tile_versions[mts.raster_mode].raster_task_ &&
- !tile->required_for_activation()) {
+ !mts.tile_versions[mts.raster_mode].raster_task_) {
FreeResourcesForTile(tile);
continue;
}
@@ -841,7 +840,6 @@ void TileManager::AssignGpuMemoryToTiles(
size_t max_raster_bytes = max_raster_usage_bytes_ / 2;
size_t raster_bytes = 0;
- int processed_required_for_activation_tile_count = 0;
unsigned schedule_priority = 1u;
for (PrioritizedTileSet::Iterator it(tiles, true); it; ++it) {
Tile* tile = *it;
@@ -861,8 +859,6 @@ void TileManager::AssignGpuMemoryToTiles(
// If the tile is not needed, free it up.
if (mts.bin == NEVER_BIN) {
FreeResourcesForTile(tile);
- if (tile->required_for_activation())
- ++processed_required_for_activation_tile_count;
continue;
}
@@ -921,10 +917,8 @@ void TileManager::AssignGpuMemoryToTiles(
hard_bytes_left -= tile_bytes;
soft_bytes_left =
(soft_bytes_left > tile_bytes) ? soft_bytes_left - tile_bytes : 0;
- if (tile_version.resource_) {
- DCHECK(tile->IsReadyToDraw());
+ if (tile_version.resource_)
continue;
- }
}
DCHECK(!tile_version.resource_);
@@ -943,30 +937,16 @@ void TileManager::AssignGpuMemoryToTiles(
if (!can_schedule_tile) {
all_tiles_that_need_to_be_rasterized_have_memory_ = false;
+ if (tile->required_for_activation())
+ all_tiles_required_for_activation_have_memory_ = false;
it.DisablePriorityOrdering();
continue;
}
raster_bytes = raster_bytes_if_rastered;
tiles_that_need_to_be_rasterized->push_back(tile);
- if (tile->required_for_activation())
- ++processed_required_for_activation_tile_count;
- }
-
- int total_required_for_activation_tile_count = 0;
- for (std::vector<PictureLayerImpl*>::const_iterator it = layers_.begin();
- it != layers_.end();
- ++it) {
- if ((*it)->GetTree() == PENDING_TREE) {
- total_required_for_activation_tile_count +=
- (*it)->UninitializedTilesRequiredForActivationCount();
- }
}
- all_tiles_required_for_activation_have_memory_ =
- processed_required_for_activation_tile_count ==
- total_required_for_activation_tile_count;
-
// OOM reporting uses hard-limit, soft-OOM is normal depending on limit.
ever_exceeded_memory_budget_ |= oomed_hard;
if (ever_exceeded_memory_budget_) {