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

Unified Diff: cc/resources/picture_pile.cc

Issue 642983003: cc: Make PictureLayerImpl use a better choice for animated raster scale. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: animationscale: scaledownstillcheckssize 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/picture_pile.cc
diff --git a/cc/resources/picture_pile.cc b/cc/resources/picture_pile.cc
index 4858d247bab590dd766b50e054bb07340e3bf4ea..e5a613950c304c6108654754ca8a5ca12c319f39 100644
--- a/cc/resources/picture_pile.cc
+++ b/cc/resources/picture_pile.cc
@@ -166,6 +166,7 @@ bool PicturePile::UpdateAndExpandInvalidation(
int frame_number,
Picture::RecordingMode recording_mode,
RenderingStatsInstrumentation* stats_instrumentation) {
+ TRACE_EVENT0("cc", "PicturePile::UpdateAndExpandInvalidation");
ajuma 2014/10/10 15:43:03 Did you mean to add these trace events, or is this
danakj 2014/10/10 16:07:15 Oh thanks that's from debugging the next bug, they
background_color_ = background_color;
contents_opaque_ = contents_opaque;
contents_fill_bounds_completely_ = contents_fill_bounds_completely;
@@ -192,6 +193,7 @@ bool PicturePile::UpdateAndExpandInvalidation(
tiling_.ExpandRectToTileBounds(interest_rect);
if (old_tiling_size != layer_size) {
+ TRACE_EVENT0("cc", "PicturePile::SizeChanged");
has_any_recordings_ = false;
// Drop recordings that are outside the new layer bounds or that changed
@@ -207,6 +209,8 @@ bool PicturePile::UpdateAndExpandInvalidation(
min_toss_y =
tiling_.FirstBorderTileYIndexFromSrcCoord(old_tiling_size.height());
}
+ {
+ TRACE_EVENT0("cc", "PicturePile::FindingKeys");
for (PictureMap::const_iterator it = picture_map_.begin();
it != picture_map_.end();
++it) {
@@ -217,9 +221,13 @@ bool PicturePile::UpdateAndExpandInvalidation(
}
to_erase.push_back(key);
}
+ }
+ {
+ TRACE_EVENT0("cc", "PicturePile::DeletingKeys");
for (size_t i = 0; i < to_erase.size(); ++i)
picture_map_.erase(to_erase[i]);
+ }
// If a recording is dropped and not re-recorded below, invalidate that
// full recording to cause any raster tiles that would use it to be
@@ -381,6 +389,8 @@ bool PicturePile::UpdateAndExpandInvalidation(
Region invalidation_expanded_to_full_tiles;
for (Region::Iterator i(*invalidation); i.has_rect(); i.next()) {
gfx::Rect invalid_rect = i.rect();
+ TRACE_EVENT1(
+ "cc", "PicturePile::Invalidating", "rect", invalid_rect.ToString());
// Expand invalidation that is outside tiles that intersect the interest
// rect. These tiles are no longer valid and should be considerered fully
@@ -397,9 +407,11 @@ bool PicturePile::UpdateAndExpandInvalidation(
// Split this inflated invalidation across tile boundaries and apply it
// to all tiles that it touches.
bool include_borders = true;
+ int n = 0;
for (TilingData::Iterator iter(&tiling_, invalid_rect, include_borders);
iter;
++iter) {
+ ++n;
const PictureMapKey& key = iter.index();
PictureMap::iterator picture_it = picture_map_.find(key);
@@ -415,10 +427,14 @@ bool PicturePile::UpdateAndExpandInvalidation(
invalidation_expanded_to_full_tiles.Contains(
tiling_.TileBounds(key.first, key.second)));
}
+ TRACE_EVENT1("cc", "PicturePile::InvalidatingTiles", "tiles", n);
}
+ {
+ TRACE_EVENT0("cc", "PicturePile::Unioning");
invalidation->Union(invalidation_expanded_to_full_tiles);
invalidation->Union(resize_invalidation);
+ }
// Make a list of all invalid tiles; we will attempt to
// cluster these into multiple invalidation regions.
@@ -426,6 +442,7 @@ bool PicturePile::UpdateAndExpandInvalidation(
bool include_borders = true;
for (TilingData::Iterator it(&tiling_, interest_rect, include_borders); it;
++it) {
+ TRACE_EVENT0("cc", "PicturePile::ListingTiles");
const PictureMapKey& key = it.index();
PictureInfo& info = picture_map_[key];
@@ -453,7 +470,10 @@ bool PicturePile::UpdateAndExpandInvalidation(
}
std::vector<gfx::Rect> record_rects;
+ {
+ TRACE_EVENT0("cc", "PicturePile::Clustering");
ClusterTiles(invalid_tiles, &record_rects);
+ }
if (record_rects.empty())
return updated;
@@ -474,6 +494,7 @@ bool PicturePile::UpdateAndExpandInvalidation(
bool gather_pixel_refs = RasterWorkerPool::GetNumRasterThreads() > 1;
{
+ TRACE_EVENT0("cc", "PicturePile::Record");
base::TimeDelta best_duration = base::TimeDelta::Max();
for (int i = 0; i < repeat_count; i++) {
base::TimeTicks start_time = stats_instrumentation->StartRecording();
@@ -513,6 +534,7 @@ bool PicturePile::UpdateAndExpandInvalidation(
found_tile_for_recorded_picture = true;
}
}
+ TRACE_EVENT0("cc", "PicturePile::DetermineIfSolidColor");
DetermineIfSolidColor();
DCHECK(found_tile_for_recorded_picture);
}

Powered by Google App Engine
This is Rietveld 408576698