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

Issue 1292773003: Queue latency info swap promises in a separate already-active queue. (Closed)

Created:
5 years, 4 months ago by Tobias Sargeant
Modified:
5 years, 3 months ago
Reviewers:
danakj, Sami, jbauman
CC:
chromium-reviews, cc-bugs_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Support swap promises that are pinned to a particular layer tree. A pinned swap promise queued on a pending tree will only see DidActivate() or DidNotSwap(ACTIVATION_FAILS). It is not passed to the active tree, so it will not swap. A pinned swap promise on the active tree will either see only DidSwap() or DidNotSwap(SWAP_FAILS). No DidActivate() will be seen because that has already happened prior to queueing of the swap promise. Conversely, an unpinned swap promise (queued by QueueSwapPromise()) travels with the layer information currently associated with the tree. For example, when a pending tree is activated, the swap promise is passed to the active tree along with the layer information. Similarly, when a new activation overwrites layer information on the active tree, queued swap promises are broken. This allows us to break unpinned swap promises on the active tree at the point at which we activate the pending tree without changing latency measurement. BUG=498824 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Committed: https://crrev.com/2e02f73e17f4fc3f611a08582b7944bb32362a2f Cr-Commit-Position: refs/heads/master@{#346894}

Patch Set 1 #

Patch Set 2 : add missing EndArray() #

Total comments: 4

Patch Set 3 : Generalise to pinned promises, improve comments, add unittest. #

Patch Set 4 : Fix Windows compilation #

Total comments: 4

Patch Set 5 : address comments #

Patch Set 6 : remove DidNotSwapReasonToString #

Patch Set 7 : Add unittest for surface layer swap promise resolution when activations occur but swaps do not. #

Total comments: 14

Patch Set 8 : address comments #

Patch Set 9 : Remove the concept of pinned promises on the pending tree. DCHECK if one is created. #

Total comments: 4

Patch Set 10 : Update comment, remove extraneous braces. #

Patch Set 11 : Use different return value for failed draw in test, to avoid NOTREACHED() #

Unified diffs Side-by-side diffs Delta from patch set Stats (+158 lines, -21 lines) Patch
M cc/layers/surface_layer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +63 lines, -15 lines 0 comments Download
M cc/trees/latency_info_swap_promise_monitor.cc View 1 2 3 4 5 6 7 1 chunk +6 lines, -1 line 0 comments Download
M cc/trees/layer_tree_host_impl_unittest.cc View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M cc/trees/layer_tree_host_unittest.cc View 1 2 3 4 5 6 7 8 2 chunks +47 lines, -1 line 0 comments Download
M cc/trees/layer_tree_impl.h View 1 2 3 4 5 6 7 8 9 2 chunks +19 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_impl.cc View 1 2 3 4 5 6 7 8 9 2 chunks +22 lines, -3 lines 0 comments Download

Messages

Total messages: 35 (8 generated)
Tobias Sargeant
Ptal. The bug didn't generate any discussion, so I've just gone with the simple approach, ...
5 years, 4 months ago (2015-08-14 17:33:22 UTC) #2
danakj
are there some unit tests you can add for this? https://codereview.chromium.org/1292773003/diff/20001/cc/trees/layer_tree_impl.cc File cc/trees/layer_tree_impl.cc (right): https://codereview.chromium.org/1292773003/diff/20001/cc/trees/layer_tree_impl.cc#newcode1124 ...
5 years, 4 months ago (2015-08-14 17:47:39 UTC) #4
Sami
Seems reasonable to me. Dumb question though: do we actually need unpinned swap promises for ...
5 years, 4 months ago (2015-08-18 11:19:18 UTC) #5
Tobias Sargeant
https://codereview.chromium.org/1292773003/diff/20001/cc/trees/layer_tree_impl.cc File cc/trees/layer_tree_impl.cc (right): https://codereview.chromium.org/1292773003/diff/20001/cc/trees/layer_tree_impl.cc#newcode1124 cc/trees/layer_tree_impl.cc:1124: BreakSwapPromises(SwapPromise::SWAP_FAILS); On 2015/08/14 17:47:39, danakj wrote: > add a ...
5 years, 4 months ago (2015-08-18 11:22:15 UTC) #6
Tobias Sargeant
On 2015/08/18 11:19:18, Sami wrote: > Seems reasonable to me. Dumb question though: do we ...
5 years, 4 months ago (2015-08-18 12:35:15 UTC) #7
Tobias Sargeant
https://codereview.chromium.org/1292773003/diff/60001/cc/output/swap_promise.h File cc/output/swap_promise.h (right): https://codereview.chromium.org/1292773003/diff/60001/cc/output/swap_promise.h#newcode65 cc/output/swap_promise.h:65: static std::string DidNotSwapReasonToString(DidNotSwapReason reason) { On 2015/08/18 11:19:18, Sami ...
5 years, 4 months ago (2015-08-18 13:39:53 UTC) #8
danakj
+jbauman for surfaces
5 years, 4 months ago (2015-08-18 17:50:06 UTC) #10
danakj
On 2015/08/18 17:50:06, danakj wrote: > +jbauman for surfaces John please see https://codereview.chromium.org/1292773003/#msg7
5 years, 4 months ago (2015-08-18 17:50:29 UTC) #11
jbauman
On 2015/08/18 17:50:29, danakj wrote: > On 2015/08/18 17:50:06, danakj wrote: > > +jbauman for ...
5 years, 4 months ago (2015-08-19 00:48:46 UTC) #12
Tobias Sargeant
On 2015/08/19 00:48:46, jbauman wrote: > On 2015/08/18 17:50:29, danakj wrote: > > On 2015/08/18 ...
5 years, 4 months ago (2015-08-19 11:49:03 UTC) #13
jbauman
On 2015/08/19 11:49:03, Tobias Sargeant wrote: > On 2015/08/19 00:48:46, jbauman wrote: > > On ...
5 years, 4 months ago (2015-08-19 22:58:16 UTC) #14
Tobias Sargeant
On 2015/08/19 22:58:16, jbauman wrote: > If a new dependency is created, the SurfaceLayer should ...
5 years, 4 months ago (2015-08-20 14:10:05 UTC) #15
jbauman
On 2015/08/20 14:10:05, Tobias Sargeant wrote: > On 2015/08/19 22:58:16, jbauman wrote: > > If ...
5 years, 3 months ago (2015-08-25 00:30:24 UTC) #16
Tobias Sargeant
> SurfaceLayerSwapPromise tests the overall surface dependencies, but I'm not sure > how to modify ...
5 years, 3 months ago (2015-08-25 15:13:09 UTC) #17
jbauman
All the surfaces stuff lgtm. Thanks for adding that test.
5 years, 3 months ago (2015-08-25 21:01:02 UTC) #18
danakj
https://codereview.chromium.org/1292773003/diff/110001/cc/trees/latency_info_swap_promise_monitor.cc File cc/trees/latency_info_swap_promise_monitor.cc (right): https://codereview.chromium.org/1292773003/diff/110001/cc/trees/latency_info_swap_promise_monitor.cc#newcode63 cc/trees/latency_info_swap_promise_monitor.cc:63: // measurement of the time to the next SwapBuffers().The ...
5 years, 3 months ago (2015-08-25 21:37:31 UTC) #19
Tobias Sargeant
https://codereview.chromium.org/1292773003/diff/110001/cc/trees/latency_info_swap_promise_monitor.cc File cc/trees/latency_info_swap_promise_monitor.cc (right): https://codereview.chromium.org/1292773003/diff/110001/cc/trees/latency_info_swap_promise_monitor.cc#newcode63 cc/trees/latency_info_swap_promise_monitor.cc:63: // measurement of the time to the next SwapBuffers().The ...
5 years, 3 months ago (2015-08-26 11:06:49 UTC) #20
danakj
https://codereview.chromium.org/1292773003/diff/110001/cc/trees/layer_tree_impl.cc File cc/trees/layer_tree_impl.cc (right): https://codereview.chromium.org/1292773003/diff/110001/cc/trees/layer_tree_impl.cc#newcode227 cc/trees/layer_tree_impl.cc:227: for (auto* swap_promise : pinned_swap_promise_list_) On 2015/08/26 11:06:49, Tobias ...
5 years, 3 months ago (2015-08-26 18:16:16 UTC) #21
Tobias Sargeant
On 2015/08/26 18:16:16, danakj wrote: > Is there a use case for pinned swap promises ...
5 years, 3 months ago (2015-08-27 13:07:34 UTC) #22
danakj
Thanks LGTM https://codereview.chromium.org/1292773003/diff/150001/cc/trees/layer_tree_impl.cc File cc/trees/layer_tree_impl.cc (right): https://codereview.chromium.org/1292773003/diff/150001/cc/trees/layer_tree_impl.cc#newcode1125 cc/trees/layer_tree_impl.cc:1125: for (auto* swap_promise : swap_promise_list_) { nit: ...
5 years, 3 months ago (2015-08-27 17:52:54 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1292773003/170001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1292773003/170001
5 years, 3 months ago (2015-08-28 10:58:07 UTC) #26
Tobias Sargeant
https://codereview.chromium.org/1292773003/diff/150001/cc/trees/layer_tree_impl.cc File cc/trees/layer_tree_impl.cc (right): https://codereview.chromium.org/1292773003/diff/150001/cc/trees/layer_tree_impl.cc#newcode1125 cc/trees/layer_tree_impl.cc:1125: for (auto* swap_promise : swap_promise_list_) { On 2015/08/27 17:52:54, ...
5 years, 3 months ago (2015-08-28 10:58:10 UTC) #27
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/105926)
5 years, 3 months ago (2015-08-28 11:33:54 UTC) #29
Tobias Sargeant
Could you please take another look at PS11? The NOTREACHED() in SchedulerStateMachine::DidDrawIfPossibleCompleted if DRAW_ABORTED_CANT_DRAW is ...
5 years, 3 months ago (2015-08-28 13:50:59 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1292773003/190001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1292773003/190001
5 years, 3 months ago (2015-09-02 11:00:04 UTC) #33
commit-bot: I haz the power
Committed patchset #11 (id:190001)
5 years, 3 months ago (2015-09-02 12:08:09 UTC) #34
commit-bot: I haz the power
5 years, 3 months ago (2015-09-02 12:08:47 UTC) #35
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/2e02f73e17f4fc3f611a08582b7944bb32362a2f
Cr-Commit-Position: refs/heads/master@{#346894}

Powered by Google App Engine
This is Rietveld 408576698