diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-14 06:51:56 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-14 06:51:56 +0000 |
commit | 8b09c34460ec0f1a41fc9f01049ac52d6ecea660 (patch) | |
tree | d93adba84e5a33b6b2aa0c66eebb569f74eb5e6f /cc/layers/picture_layer.cc | |
parent | 25eaf9b34c24d45b5c6f4bdb1c98ae20ae539d1f (diff) | |
download | chromium_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.cc | 1 |
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. |