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

Issue 62283012: cc: Added tile bundles (Closed)

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

Description

cc: Added tile bundles This patch adds TileBundles to cc. Currently, in impl side painting we work with Tiles. A PictureLayerTiling creates enough tiles to cover its rect (and registers them with the tile manager), then it updates the priorities of each of the tile, and finally informs TileManager to do its work. TileManager sorts and assigns memory to tiles, and begins rasterization. With TileBundles, the tiling creates TileBundles (initially 2x2 tiles) to contain tiles. Update tile priorities now only happens on a per bundle basis. In the initial patch, TileManager still pulls out each individual tile for processing. **** Note to Perf Sheriffs **** This patch affects performance of several of cc_perftests: - PictureLayerTilingPerfTest.Invalidate This test is expected to regress slightly, but not too much. - PictureLayerTilingPerfTest.UpdateTilePriorities This test's performance should improve greatly. - TileManagerPerfTest.ManageTiles This test _should_ remain roughly the same, but there might be some up or down as the result of the patch. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=239074

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : update #

Patch Set 5 : #

Total comments: 10

Patch Set 6 : different attempt #

Patch Set 7 : clean up #

Patch Set 8 : oops #

Patch Set 9 : unittest fixes #

Patch Set 10 : perftest fix #

Total comments: 19

Patch Set 11 : review #

Total comments: 10

Patch Set 12 : more review #

Total comments: 9

Patch Set 13 : review #

Total comments: 12

Patch Set 14 : review + unittests #

Patch Set 15 : rebase #

Total comments: 24

Patch Set 16 : reviews #

Patch Set 17 : #

Total comments: 5

Patch Set 18 : review #

Total comments: 10

Patch Set 19 : review #

Patch Set 20 : rebase #

Patch Set 21 : missing export #

Patch Set 22 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1587 lines, -528 lines) Patch
M cc/cc.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +2 lines, -0 lines 0 comments Download
M cc/cc_tests.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 chunk +1 line, -0 lines 0 comments Download
M cc/layers/picture_image_layer_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +7 lines, -1 line 0 comments Download
M cc/layers/picture_layer_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 chunk +4 lines, -0 lines 0 comments Download
M cc/layers/picture_layer_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 5 chunks +14 lines, -5 lines 0 comments Download
M cc/layers/picture_layer_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 7 chunks +17 lines, -12 lines 0 comments Download
M cc/resources/picture_layer_tiling.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 7 chunks +68 lines, -10 lines 0 comments Download
M cc/resources/picture_layer_tiling.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 24 chunks +275 lines, -121 lines 0 comments Download
M cc/resources/picture_layer_tiling_perftest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +15 lines, -7 lines 0 comments Download
M cc/resources/picture_layer_tiling_set.h View 1 2 3 1 chunk +2 lines, -0 lines 0 comments Download
M cc/resources/picture_layer_tiling_set.cc View 1 2 3 1 chunk +6 lines, -0 lines 0 comments Download
M cc/resources/picture_layer_tiling_set_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 11 chunks +42 lines, -16 lines 0 comments Download
M cc/resources/picture_layer_tiling_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 28 chunks +263 lines, -125 lines 0 comments Download
M cc/resources/prioritized_tile_set_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 12 chunks +23 lines, -30 lines 0 comments Download
M cc/resources/tile.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 4 chunks +12 lines, -14 lines 0 comments Download
M cc/resources/tile.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 3 chunks +5 lines, -12 lines 0 comments Download
A cc/resources/tile_bundle.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +115 lines, -0 lines 0 comments Download
A cc/resources/tile_bundle.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +181 lines, -0 lines 0 comments Download
A cc/resources/tile_bundle_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +257 lines, -0 lines 0 comments Download
M cc/resources/tile_manager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 6 chunks +21 lines, -4 lines 0 comments Download
M cc/resources/tile_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 6 chunks +148 lines, -114 lines 0 comments Download
M cc/resources/tile_manager_perftest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 7 chunks +43 lines, -28 lines 0 comments Download
M cc/resources/tile_manager_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 4 chunks +10 lines, -2 lines 0 comments Download
M cc/test/fake_picture_layer_impl.h View 1 2 3 4 5 6 7 8 9 10 15 16 17 18 19 20 21 1 chunk +1 line, -1 line 0 comments Download
M cc/test/fake_picture_layer_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 15 16 17 18 19 20 21 2 chunks +14 lines, -7 lines 0 comments Download
M cc/test/fake_picture_layer_tiling_client.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2 chunks +9 lines, -5 lines 0 comments Download
M cc/test/fake_picture_layer_tiling_client.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2 chunks +14 lines, -11 lines 0 comments Download
M cc/test/fake_tile_manager.h View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
M cc/test/fake_tile_manager.cc View 1 2 3 4 5 6 7 8 9 10 4 chunks +14 lines, -3 lines 0 comments Download

Messages

Total messages: 41 (0 generated)
vmpstr
I think this still needs some work. In particular, I still have to fix tile_manager, ...
7 years, 1 month ago (2013-11-20 00:00:21 UTC) #1
enne (OOO)
https://codereview.chromium.org/62283012/diff/120001/cc/resources/tile_manager.cc File cc/resources/tile_manager.cc (right): https://codereview.chromium.org/62283012/diff/120001/cc/resources/tile_manager.cc#newcode483 cc/resources/tile_manager.cc:483: tiles->InsertTile(tile, priority_bin); Curious why tiles are in bins and ...
7 years, 1 month ago (2013-11-20 00:14:34 UTC) #2
vmpstr
https://codereview.chromium.org/62283012/diff/120001/cc/resources/tile_manager.cc File cc/resources/tile_manager.cc (right): https://codereview.chromium.org/62283012/diff/120001/cc/resources/tile_manager.cc#newcode483 cc/resources/tile_manager.cc:483: tiles->InsertTile(tile, priority_bin); On 2013/11/20 00:14:34, enne wrote: > Curious ...
7 years, 1 month ago (2013-11-20 00:54:08 UTC) #3
reveman
Looks like a good first step to me if it doesn't cause too much of ...
7 years, 1 month ago (2013-11-20 01:34:37 UTC) #4
enne (OOO)
https://codereview.chromium.org/62283012/diff/120001/cc/resources/shared_tile_bundle.h File cc/resources/shared_tile_bundle.h (right): https://codereview.chromium.org/62283012/diff/120001/cc/resources/shared_tile_bundle.h#newcode16 cc/resources/shared_tile_bundle.h:16: class SharedTileBundle { I'm not quite sure I'm buying ...
7 years, 1 month ago (2013-11-20 21:20:29 UTC) #5
vmpstr
The latest approach is more promising in terms of performance. Invalidation perftests increase in performance, ...
7 years, 1 month ago (2013-11-21 23:37:47 UTC) #6
enne (OOO)
What did you change in the perf test? I'm not sure I understand what the ...
7 years ago (2013-11-25 22:17:11 UTC) #7
vmpstr
PTAL. https://codereview.chromium.org/62283012/diff/350001/cc/layers/picture_layer_impl.cc File cc/layers/picture_layer_impl.cc (right): https://codereview.chromium.org/62283012/diff/350001/cc/layers/picture_layer_impl.cc#newcode482 cc/layers/picture_layer_impl.cc:482: scoped_refptr<TileBundle> PictureLayerImpl::CreateTileBundle(int width, On 2013/11/25 22:17:11, enne wrote: ...
7 years ago (2013-11-27 00:03:14 UTC) #8
enne (OOO)
https://codereview.chromium.org/62283012/diff/350001/cc/resources/picture_layer_tiling.cc File cc/resources/picture_layer_tiling.cc (right): https://codereview.chromium.org/62283012/diff/350001/cc/resources/picture_layer_tiling.cc#newcode708 cc/resources/picture_layer_tiling.cc:708: // TODO(vmpstr): Since the old active tree became the ...
7 years ago (2013-11-27 01:38:05 UTC) #9
vmpstr
Please take a look. I'm somewhat deliberately punting changing unittests and writing new ones towards ...
7 years ago (2013-11-27 21:09:35 UTC) #10
enne (OOO)
This feels like it's converging. My biggest balk is at the IsActive stuff, but I ...
7 years ago (2013-11-27 22:21:14 UTC) #11
vmpstr
Please take a look. I'll start writing unittests if you feel that this is more ...
7 years ago (2013-11-27 23:31:56 UTC) #12
enne (OOO)
On 2013/11/27 23:31:56, vmpstr wrote: > Please take a look. I'll start writing unittests if ...
7 years ago (2013-11-27 23:43:09 UTC) #13
enne (OOO)
https://codereview.chromium.org/62283012/diff/420001/cc/resources/picture_layer_tiling.cc File cc/resources/picture_layer_tiling.cc (right): https://codereview.chromium.org/62283012/diff/420001/cc/resources/picture_layer_tiling.cc#newcode236 cc/resources/picture_layer_tiling.cc:236: bundle_tiling_data_.SetMaxTextureSize( Re: unit tests. Can you also make sure ...
7 years ago (2013-11-27 23:43:18 UTC) #14
reveman
https://codereview.chromium.org/62283012/diff/420001/cc/resources/tile_manager.cc File cc/resources/tile_manager.cc (right): https://codereview.chromium.org/62283012/diff/420001/cc/resources/tile_manager.cc#newcode252 cc/resources/tile_manager.cc:252: void TileManager::DidChangeTilePriority(Tile* bundle) { s/bundle/tile/ ? https://codereview.chromium.org/62283012/diff/420001/cc/resources/tile_manager.h File cc/resources/tile_manager.h ...
7 years ago (2013-12-02 01:46:08 UTC) #15
vmpstr
Please take a look. I've added some unittests. https://codereview.chromium.org/62283012/diff/420001/cc/resources/picture_layer_tiling.cc File cc/resources/picture_layer_tiling.cc (right): https://codereview.chromium.org/62283012/diff/420001/cc/resources/picture_layer_tiling.cc#newcode236 cc/resources/picture_layer_tiling.cc:236: bundle_tiling_data_.SetMaxTextureSize( ...
7 years ago (2013-12-02 23:08:00 UTC) #16
enne (OOO)
Looking good. Do you think there needs to be any testing around edge cases of ...
7 years ago (2013-12-03 02:28:37 UTC) #17
vmpstr
Please take a look. With regards to testing edge cases that you described, that's really ...
7 years ago (2013-12-03 18:44:42 UTC) #18
reveman
https://codereview.chromium.org/62283012/diff/460001/cc/resources/picture_layer_tiling.h File cc/resources/picture_layer_tiling.h (right): https://codereview.chromium.org/62283012/diff/460001/cc/resources/picture_layer_tiling.h#newcode245 cc/resources/picture_layer_tiling.h:245: void RemoveBundleIfEmptyContainingTileAt(int i, int j); RemoveBundleContainingTileAtIfEmpty? https://codereview.chromium.org/62283012/diff/460001/cc/resources/tile_bundle.cc File cc/resources/tile_bundle.cc ...
7 years ago (2013-12-03 19:58:18 UTC) #19
enne (OOO)
On 2013/12/03 18:44:42, vmpstr wrote: > With regards to testing edge cases that you described, ...
7 years ago (2013-12-03 20:49:00 UTC) #20
vmpstr
PTAL. Re: "Yeah, mostly I was worried about null handling and making sure there's not ...
7 years ago (2013-12-03 22:01:35 UTC) #21
reveman
https://codereview.chromium.org/62283012/diff/460001/cc/resources/tile_bundle.cc File cc/resources/tile_bundle.cc (right): https://codereview.chromium.org/62283012/diff/460001/cc/resources/tile_bundle.cc#newcode173 cc/resources/tile_bundle.cc:173: if (!tile || tile == current_tile_) On 2013/12/03 22:01:36, ...
7 years ago (2013-12-03 23:13:10 UTC) #22
enne (OOO)
https://codereview.chromium.org/62283012/diff/500001/cc/resources/tile_bundle.cc File cc/resources/tile_bundle.cc (right): https://codereview.chromium.org/62283012/diff/500001/cc/resources/tile_bundle.cc#newcode154 cc/resources/tile_bundle.cc:154: current_tree_ = static_cast<WhichTree>(current_tree_ + 1); On 2013/12/03 23:13:10, David ...
7 years ago (2013-12-03 23:14:30 UTC) #23
vmpstr
https://codereview.chromium.org/62283012/diff/500001/cc/resources/tile_bundle.cc File cc/resources/tile_bundle.cc (right): https://codereview.chromium.org/62283012/diff/500001/cc/resources/tile_bundle.cc#newcode154 cc/resources/tile_bundle.cc:154: current_tree_ = static_cast<WhichTree>(current_tree_ + 1); On 2013/12/03 23:14:30, enne ...
7 years ago (2013-12-03 23:41:33 UTC) #24
reveman
cc/resources/tile* changes lgtm
7 years ago (2013-12-04 00:14:24 UTC) #25
enne (OOO)
https://codereview.chromium.org/62283012/diff/520001/cc/resources/picture_layer_tiling.h File cc/resources/picture_layer_tiling.h (right): https://codereview.chromium.org/62283012/diff/520001/cc/resources/picture_layer_tiling.h#newcode269 cc/resources/picture_layer_tiling.h:269: friend class CoverageIterator; Not your fault, but can you ...
7 years ago (2013-12-04 01:01:32 UTC) #26
vmpstr
PTAL. https://codereview.chromium.org/62283012/diff/520001/cc/resources/picture_layer_tiling.h File cc/resources/picture_layer_tiling.h (right): https://codereview.chromium.org/62283012/diff/520001/cc/resources/picture_layer_tiling.h#newcode269 cc/resources/picture_layer_tiling.h:269: friend class CoverageIterator; On 2013/12/04 01:01:38, enne wrote: ...
7 years ago (2013-12-04 01:11:56 UTC) #27
enne (OOO)
lgtm; let's land this puppy.
7 years ago (2013-12-04 01:18:34 UTC) #28
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/vmpstr@chromium.org/62283012/470028
7 years ago (2013-12-04 23:45:15 UTC) #29
commit-bot: I haz the power
Failed to apply patch for cc/layers/picture_layer_impl.cc: While running patch -p1 --forward --force --no-backup-if-mismatch; patching file ...
7 years ago (2013-12-05 01:27:10 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/vmpstr@chromium.org/62283012/590001
7 years ago (2013-12-05 18:49:04 UTC) #31
commit-bot: I haz the power
Change committed as 239074
7 years ago (2013-12-06 00:01:57 UTC) #32
epenner
On 2013/12/06 00:01:57, I haz the power (commit-bot) wrote: > Change committed as 239074 Hi. ...
7 years ago (2013-12-11 20:38:21 UTC) #33
epenner
> Hi. I'd like someone from on Android to discuss such changes at a high ...
7 years ago (2013-12-11 20:59:34 UTC) #34
enne (OOO)
On 2013/12/11 20:59:34, epenner wrote: > > Hi. I'd like someone from on Android to ...
7 years ago (2013-12-11 21:12:14 UTC) #35
enne (OOO)
On 2013/12/11 21:12:14, enne wrote: > Major trade-offs such as...? Sorry, better said: could you ...
7 years ago (2013-12-11 21:14:10 UTC) #36
vmpstr
On 2013/12/11 20:38:21, epenner wrote: > On 2013/12/06 00:01:57, I haz the power (commit-bot) wrote: ...
7 years ago (2013-12-11 21:41:06 UTC) #37
epennerAtGoogle
I'm sorry forget my original post (although a bug is always probably good). No need ...
7 years ago (2013-12-11 22:19:41 UTC) #38
vmpstr
On 2013/12/11 22:19:41, epennerAtGoogle wrote: > I'm sorry forget my original post (although a bug ...
7 years ago (2013-12-11 22:35:41 UTC) #39
enne (OOO)
On 2013/12/11 22:35:41, vmpstr wrote: > This patch does have the potential to increase the ...
7 years ago (2013-12-11 22:52:03 UTC) #40
epenner
7 years ago (2013-12-11 23:26:51 UTC) #41
Message was sent while issue was closed.
Okay. Thanks both, consider me convinced.

Powered by Google App Engine
This is Rietveld 408576698