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

Issue 294163009: cc: Expand invalidation to full tile when recording is missing for the tile. (Closed)

Created:
6 years, 7 months ago by danakj
Modified:
6 years, 6 months ago
Reviewers:
enne (OOO)
CC:
enne (OOO), cc-bugs_chromium.org, chromium-reviews, reveman, vmpstr
Visibility:
Public.

Description

cc: Expand invalidation to full tile when recording is missing for the tile. Currently we do a walk over all tiles in the pending tree's pile, but there can be 1 million x 1 million tiles on some pages, which makes this method take multiple _seconds_ to complete. These loops were added in r184525 which gave the tradeoffs that led to them, which are that we want to only use a single pile for all the tiles on this layer, but we don't want raster tiles on the active layer (when this activates) that can't be rastered by the pile they are attached to. Instead of walking every pile-tile, to find the tiles that are not present in the current recording and invalidate them, we expand invalidations outside the interest rect to cover the full recording tiles, and we expand invalidation inside the interest rect to include any raster tiles that don't have a recording (such as in the offscreen animating gif case). We give this expanded invalidation to the pending layer, causing it to drop rastered tiles from the active tree that intersect with an unrecorded area. R=enne BUG=371839 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=277964 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=278196

Patch Set 1 #

Total comments: 1

Patch Set 2 : pictureslow: rebase #

Patch Set 3 : pictureslow: doitinpicturepile #

Total comments: 3

Patch Set 4 : pictureslow: . #

Total comments: 2

Patch Set 5 : pictureslow: noborders #

Patch Set 6 : pictureslow: complicated. #

Total comments: 7

Patch Set 7 : pictureslow: . #

Patch Set 8 : pictureslow: don't change region while iterating it #

Unified diffs Side-by-side diffs Delta from patch set Stats (+248 lines, -97 lines) Patch
M cc/base/tiling_data.h View 1 2 3 4 5 1 chunk +2 lines, -1 line 0 comments Download
M cc/base/tiling_data.cc View 1 2 3 4 5 6 1 chunk +18 lines, -6 lines 0 comments Download
M cc/base/tiling_data_unittest.cc View 1 2 3 4 5 6 1 chunk +60 lines, -0 lines 0 comments Download
M cc/layers/picture_layer.cc View 1 2 3 4 1 chunk +15 lines, -9 lines 0 comments Download
M cc/layers/picture_layer_impl.cc View 1 2 2 chunks +1 line, -17 lines 0 comments Download
M cc/resources/picture_pile.h View 1 2 1 chunk +13 lines, -10 lines 0 comments Download
M cc/resources/picture_pile.cc View 1 2 3 4 5 6 7 4 chunks +45 lines, -18 lines 0 comments Download
M cc/resources/picture_pile_base.h View 1 2 3 4 5 6 2 chunks +5 lines, -1 line 0 comments Download
M cc/resources/picture_pile_unittest.cc View 1 2 3 4 5 9 chunks +89 lines, -35 lines 0 comments Download

Messages

Total messages: 22 (0 generated)
danakj
enne's out so PTAL david/vlad.
6 years, 7 months ago (2014-05-22 20:20:33 UTC) #1
enne (OOO)
https://codereview.chromium.org/294163009/diff/1/cc/layers/picture_layer_impl.cc File cc/layers/picture_layer_impl.cc (right): https://codereview.chromium.org/294163009/diff/1/cc/layers/picture_layer_impl.cc#newcode691 cc/layers/picture_layer_impl.cc:691: invalidation_.Union(outside_recorded_viewport); There's a performance bug here. As the comment ...
6 years, 7 months ago (2014-05-27 21:09:22 UTC) #2
danakj
Ok this does the invalidation expansion to full recording-tiles and everything outside the recording viewport ...
6 years, 6 months ago (2014-06-13 21:08:35 UTC) #3
enne (OOO)
https://codereview.chromium.org/294163009/diff/40001/cc/resources/picture_pile.cc File cc/resources/picture_pile.cc (right): https://codereview.chromium.org/294163009/diff/40001/cc/resources/picture_pile.cc#newcode175 cc/resources/picture_pile.cc:175: invalidation_across_frames.Subtract(interest_rect); The one bad part about this is that ...
6 years, 6 months ago (2014-06-13 21:16:44 UTC) #4
danakj
https://codereview.chromium.org/294163009/diff/40001/cc/resources/picture_pile.cc File cc/resources/picture_pile.cc (right): https://codereview.chromium.org/294163009/diff/40001/cc/resources/picture_pile.cc#newcode175 cc/resources/picture_pile.cc:175: invalidation_across_frames.Subtract(interest_rect); On 2014/06/13 21:16:44, enne wrote: > The one ...
6 years, 6 months ago (2014-06-13 21:19:18 UTC) #5
enne (OOO)
https://codereview.chromium.org/294163009/diff/40001/cc/resources/picture_pile.cc File cc/resources/picture_pile.cc (right): https://codereview.chromium.org/294163009/diff/40001/cc/resources/picture_pile.cc#newcode175 cc/resources/picture_pile.cc:175: invalidation_across_frames.Subtract(interest_rect); On 2014/06/13 21:19:18, danakj wrote: > On 2014/06/13 ...
6 years, 6 months ago (2014-06-13 21:23:20 UTC) #6
danakj
On Fri, Jun 13, 2014 at 5:23 PM, <enne@chromium.org> wrote: > > https://codereview.chromium.org/294163009/diff/40001/cc/ > resources/picture_pile.cc ...
6 years, 6 months ago (2014-06-13 21:45:53 UTC) #7
danakj
Ok fixed up, InvalidateOnTileBoundaryInflated should cover this stuff already so no new test. PTAL
6 years, 6 months ago (2014-06-13 22:06:56 UTC) #8
enne (OOO)
https://codereview.chromium.org/294163009/diff/60001/cc/resources/picture_pile.cc File cc/resources/picture_pile.cc (right): https://codereview.chromium.org/294163009/diff/60001/cc/resources/picture_pile.cc#newcode200 cc/resources/picture_pile.cc:200: gfx::UnionRects(tiling_.TileBoundsWithBorder(left_tile, top_tile), I think invalidation_expanded_to_recording_tiles.Union(ExpandRectToTileBoundsWithBorders(invalid_rect)) will do what you're ...
6 years, 6 months ago (2014-06-13 22:26:42 UTC) #9
enne (OOO)
https://codereview.chromium.org/294163009/diff/60001/cc/resources/picture_pile.cc File cc/resources/picture_pile.cc (right): https://codereview.chromium.org/294163009/diff/60001/cc/resources/picture_pile.cc#newcode200 cc/resources/picture_pile.cc:200: gfx::UnionRects(tiling_.TileBoundsWithBorder(left_tile, top_tile), Actually, more importantly, you should only inflate ...
6 years, 6 months ago (2014-06-13 22:34:13 UTC) #10
danakj
PTAL
6 years, 6 months ago (2014-06-16 20:43:41 UTC) #11
enne (OOO)
https://codereview.chromium.org/294163009/diff/100001/cc/base/tiling_data.cc File cc/base/tiling_data.cc (right): https://codereview.chromium.org/294163009/diff/100001/cc/base/tiling_data.cc#newcode142 cc/base/tiling_data.cc:142: const gfx::Rect& rect) const { OOPS. Thanks! https://codereview.chromium.org/294163009/diff/100001/cc/base/tiling_data.cc#newcode161 cc/base/tiling_data.cc:161: ...
6 years, 6 months ago (2014-06-17 00:02:54 UTC) #12
danakj
PTAL https://codereview.chromium.org/294163009/diff/100001/cc/base/tiling_data.cc File cc/base/tiling_data.cc (right): https://codereview.chromium.org/294163009/diff/100001/cc/base/tiling_data.cc#newcode161 cc/base/tiling_data.cc:161: int index_right = LastBorderTileXIndexFromSrcCoord(rect.right()); On 2014/06/17 00:02:54, enne ...
6 years, 6 months ago (2014-06-17 18:51:34 UTC) #13
danakj
Updated the patch description.
6 years, 6 months ago (2014-06-17 18:54:13 UTC) #14
enne (OOO)
lgtm
6 years, 6 months ago (2014-06-17 19:14:01 UTC) #15
danakj
The CQ bit was checked by danakj@chromium.org
6 years, 6 months ago (2014-06-17 21:55:47 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/danakj@chromium.org/294163009/120001
6 years, 6 months ago (2014-06-17 21:56:55 UTC) #17
commit-bot: I haz the power
Change committed as 277964
6 years, 6 months ago (2014-06-18 07:12:40 UTC) #18
danakj
The CQ bit was checked by danakj@chromium.org
6 years, 6 months ago (2014-06-18 16:32:26 UTC) #19
danakj
This was reverted because I changed the |invalidation| Region while iterating on it which caused ...
6 years, 6 months ago (2014-06-18 16:33:06 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/danakj@chromium.org/294163009/140001
6 years, 6 months ago (2014-06-18 16:33:30 UTC) #21
commit-bot: I haz the power
6 years, 6 months ago (2014-06-18 23:48:20 UTC) #22
Message was sent while issue was closed.
Change committed as 278196

Powered by Google App Engine
This is Rietveld 408576698