summaryrefslogtreecommitdiffstats
path: root/cc/layers/picture_layer.cc
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-14 06:51:56 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-14 06:51:56 +0000
commit8b09c34460ec0f1a41fc9f01049ac52d6ecea660 (patch)
treed93adba84e5a33b6b2aa0c66eebb569f74eb5e6f /cc/layers/picture_layer.cc
parent25eaf9b34c24d45b5c6f4bdb1c98ae20ae539d1f (diff)
downloadchromium_src-8b09c34460ec0f1a41fc9f01049ac52d6ecea660.zip
chromium_src-8b09c34460ec0f1a41fc9f01049ac52d6ecea660.tar.gz
chromium_src-8b09c34460ec0f1a41fc9f01049ac52d6ecea660.tar.bz2
Revert of cc: Replace recorded region with direct map lookup (https://codereview.chromium.org/196343005/)
Reason for revert: Probably broke telemetry's testMeasurementSmoke (which only runs on the cq and not the main waterfall for some reason): http://crbug.com/350697 Original issue's description: > cc: Replace recorded region with direct map lookup > > If the viewport is extremely large, then keeping track of the recorded > region in PicturePile with an actual Region becomes extremely slow due > to a large number of rects being inserted into it. > > The recorded region behaves as a cache to the picture map; it's a > simpler way to know the state of all of the recordings contained within. > > In practice, the recorded region is only used for two things: a "should > this pile bother to create tilings" optimization and a "can a tile be > rastered in this content rect" check aka CanRaster. > > The optimization for "should create tilings" is replaced by a > has_any_recordings_ boolean, which could have a false positive in theory > (resizing to a smaller but non-empty size), but which shouldn't happen > in practice. Even if it did, this would only be a performance penalty > for creating no-op tilings that can't create tiles (due to CanRaster). > > The CanRaster check is replaced by a viewport hint, as most tiles that > the tiling creates will be inside of the very large expanded viewport > during recording, turning an expensive Region.Contains check to a > Rect.Contains one. In the edge cases where tiles are being created > outside of that expanded viewport, it will check the picture map > directly. This should only happen when the user has scrolled thousands > of pixels without a commit. > > BUG=b/13302269 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=256953 TBR=danakj@chromium.org,vmpstr@chromium.org,enne@chromium.org NOTREECHECKS=true NOTRY=true BUG=b/13302269 Review URL: https://codereview.chromium.org/196023015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257051 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/layers/picture_layer.cc')
-rw-r--r--cc/layers/picture_layer.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/cc/layers/picture_layer.cc b/cc/layers/picture_layer.cc
index 3a474d3..6f08b08 100644
--- a/cc/layers/picture_layer.cc
+++ b/cc/layers/picture_layer.cc
@@ -43,6 +43,7 @@ void PictureLayer::PushPropertiesTo(LayerImpl* base_layer) {
// Using layer_impl because either bounds() or paint_properties().bounds
// may disagree and either one could have been pushed to layer_impl.
pile_->Resize(gfx::Size());
+ pile_->UpdateRecordedRegion();
} else if (update_source_frame_number_ ==
layer_tree_host()->source_frame_number()) {
// If update called, then pile size must match bounds pushed to impl layer.