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

Issue 287643004: Re-land: cc: Examine layers to determine if we're ready to activate. (Closed)

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

Description

Re-land: cc: Examine layers to determine if we're ready to activate. This introduces a new mechanism for determining when we're ready to activate the pending tree. The tile priority is still used to determine when it's worth waking up the compositor thread and evaluating if we can activate. However, the actual check that determines if we're ready to activate doesn't rely on the state of scheduled raster tasks but is a synchronous call on each layer. The result is a pending tree activation mechanism that is much easier to debug and validate for correctness, while still providing the performance benefits of the old mechanism by taking the "required to activate" field of the tile priority into account when scheduling tasks. BUG=375206 TEST=cc_unittests --gtest_filter=PictureLayerImplTest.AllTilesRequiredForActivationAreReadyToDraw Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=273040

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Total comments: 12

Patch Set 4 : address review feeback #

Total comments: 8

Patch Set 5 : rebase and address review feedback #

Total comments: 6

Patch Set 6 : address review feedback #

Patch Set 7 : fix bad rebase #

Patch Set 8 : rebase #

Patch Set 9 : init check_if_ready_to_activate_pending_ properly #

Unified diffs Side-by-side diffs Delta from patch set Stats (+269 lines, -149 lines) Patch
M cc/layers/layer_impl.h View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M cc/layers/picture_layer_impl.h View 1 2 3 4 5 2 chunks +2 lines, -1 line 0 comments Download
M cc/layers/picture_layer_impl.cc View 1 2 3 4 5 6 chunks +111 lines, -67 lines 0 comments Download
M cc/layers/picture_layer_impl_unittest.cc View 1 2 3 4 5 1 chunk +56 lines, -0 lines 0 comments Download
M cc/resources/tile_manager.h View 1 2 3 4 5 6 7 7 chunks +20 lines, -5 lines 0 comments Download
M cc/resources/tile_manager.cc View 1 2 3 4 5 6 7 8 10 chunks +64 lines, -13 lines 0 comments Download
M cc/resources/tile_manager_perftest.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M cc/resources/tile_manager_unittest.cc View 1 2 3 4 5 chunks +5 lines, -40 lines 0 comments Download
M cc/test/fake_tile_manager.h View 1 chunk +0 lines, -3 lines 0 comments Download
M cc/test/fake_tile_manager.cc View 1 2 3 4 5 6 7 1 chunk +2 lines, -11 lines 0 comments Download
M cc/test/fake_tile_manager_client.h View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M cc/trees/layer_tree_host_impl.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M cc/trees/layer_tree_host_impl.cc View 1 2 3 4 5 6 7 2 chunks +5 lines, -5 lines 0 comments Download

Messages

Total messages: 30 (0 generated)
reveman
Created this while doing some debugging and was hoping we could switch to something like ...
6 years, 7 months ago (2014-05-15 17:31:23 UTC) #1
vmpstr
I like this general approach. Assuming we can convince ourselves that this is worth the ...
6 years, 7 months ago (2014-05-15 17:46:23 UTC) #2
reveman
I'm hoping that we can do this without adding counts as that's just some additional ...
6 years, 7 months ago (2014-05-15 19:01:42 UTC) #3
vmpstr
https://codereview.chromium.org/287643004/diff/40001/cc/resources/tile_manager.cc File cc/resources/tile_manager.cc (left): https://codereview.chromium.org/287643004/diff/40001/cc/resources/tile_manager.cc#oldcode893 cc/resources/tile_manager.cc:893: if (mts.visible_and_ready_to_draw && use_rasterize_on_demand_) On 2014/05/15 19:01:43, reveman wrote: ...
6 years, 7 months ago (2014-05-16 00:38:44 UTC) #4
reveman
I renamed NotifyTileInitialized to NotifyTileStateChanged in latest patch. PTAL. https://codereview.chromium.org/287643004/diff/40001/cc/resources/tile_manager.cc File cc/resources/tile_manager.cc (left): https://codereview.chromium.org/287643004/diff/40001/cc/resources/tile_manager.cc#oldcode893 cc/resources/tile_manager.cc:893: ...
6 years, 7 months ago (2014-05-16 16:50:13 UTC) #5
vmpstr
lgtm % enne and % the other patches landing https://codereview.chromium.org/287643004/diff/40001/cc/resources/tile_manager.cc File cc/resources/tile_manager.cc (left): https://codereview.chromium.org/287643004/diff/40001/cc/resources/tile_manager.cc#oldcode893 cc/resources/tile_manager.cc:893: ...
6 years, 7 months ago (2014-05-16 17:09:06 UTC) #6
enne (OOO)
I think this is not unreasonable given the direction that vmpstr is taking things to ...
6 years, 7 months ago (2014-05-16 21:18:32 UTC) #7
vmpstr
FYI, the required patch that cleans up layers has landed.
6 years, 7 months ago (2014-05-19 22:05:35 UTC) #8
reveman
PTAL https://codereview.chromium.org/287643004/diff/60001/cc/layers/layer_impl.h File cc/layers/layer_impl.h (right): https://codereview.chromium.org/287643004/diff/60001/cc/layers/layer_impl.h#newcode191 cc/layers/layer_impl.h:191: virtual void NotifyTileStateChanged(const Tile* tile) {} On 2014/05/16 ...
6 years, 7 months ago (2014-05-21 22:11:39 UTC) #9
enne (OOO)
lgtm % vmpstr https://codereview.chromium.org/287643004/diff/80001/cc/layers/picture_layer_impl.cc File cc/layers/picture_layer_impl.cc (right): https://codereview.chromium.org/287643004/diff/80001/cc/layers/picture_layer_impl.cc#newcode1387 cc/layers/picture_layer_impl.cc:1387: tiling, contents_scale_x(), rect); On 2014/05/21 22:11:40, ...
6 years, 7 months ago (2014-05-21 22:19:31 UTC) #10
vmpstr
lgtm with nit + test request https://codereview.chromium.org/287643004/diff/80001/cc/layers/picture_layer_impl.cc File cc/layers/picture_layer_impl.cc (right): https://codereview.chromium.org/287643004/diff/80001/cc/layers/picture_layer_impl.cc#newcode358 cc/layers/picture_layer_impl.cc:358: "PictureLayerImpl::AppendQuads missing", nit: ...
6 years, 7 months ago (2014-05-21 22:28:30 UTC) #11
reveman
https://codereview.chromium.org/287643004/diff/80001/cc/layers/picture_layer_impl.cc File cc/layers/picture_layer_impl.cc (right): https://codereview.chromium.org/287643004/diff/80001/cc/layers/picture_layer_impl.cc#newcode358 cc/layers/picture_layer_impl.cc:358: "PictureLayerImpl::AppendQuads missing", On 2014/05/21 22:28:30, vmpstr wrote: > nit: ...
6 years, 7 months ago (2014-05-22 20:47:48 UTC) #12
reveman
The CQ bit was checked by reveman@chromium.org
6 years, 7 months ago (2014-05-22 20:48:00 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/reveman@chromium.org/287643004/120001
6 years, 7 months ago (2014-05-22 20:49:57 UTC) #14
reveman
The CQ bit was checked by reveman@chromium.org
6 years, 7 months ago (2014-05-23 00:05:11 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/reveman@chromium.org/287643004/130001
6 years, 7 months ago (2014-05-23 00:06:17 UTC) #16
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). Please consider checking whether the failures are ...
6 years, 7 months ago (2014-05-23 03:27:30 UTC) #17
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 7 months ago (2014-05-23 04:14:51 UTC) #18
commit-bot: I haz the power
Try jobs failed on following builders: linux_gpu_triggered_tests on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/linux_gpu_triggered_tests/builds/17041)
6 years, 7 months ago (2014-05-23 04:14:51 UTC) #19
reveman
The CQ bit was checked by reveman@chromium.org
6 years, 7 months ago (2014-05-23 12:50:10 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/reveman@chromium.org/287643004/130001
6 years, 7 months ago (2014-05-23 12:50:20 UTC) #21
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). Please consider checking whether the failures are ...
6 years, 7 months ago (2014-05-23 16:35:04 UTC) #22
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 7 months ago (2014-05-23 17:19:05 UTC) #23
commit-bot: I haz the power
Try jobs failed on following builders: linux_gpu_triggered_tests on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/linux_gpu_triggered_tests/builds/17230)
6 years, 7 months ago (2014-05-23 17:19:06 UTC) #24
reveman
The CQ bit was checked by reveman@chromium.org
6 years, 7 months ago (2014-05-23 20:21:48 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/reveman@chromium.org/287643004/150001
6 years, 7 months ago (2014-05-23 20:22:45 UTC) #26
commit-bot: I haz the power
Change committed as 272635
6 years, 7 months ago (2014-05-23 23:35:41 UTC) #27
reveman
The CQ bit was checked by reveman@chromium.org
6 years, 7 months ago (2014-05-27 21:24:07 UTC) #28
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/reveman@chromium.org/287643004/150001
6 years, 7 months ago (2014-05-27 21:25:45 UTC) #29
commit-bot: I haz the power
6 years, 7 months ago (2014-05-27 21:28:16 UTC) #30
Message was sent while issue was closed.
Change committed as 273040

Powered by Google App Engine
This is Rietveld 408576698