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

Issue 1192663005: cc: Measure compositor timing with finer granularity (Closed)

Created:
5 years, 6 months ago by brianderson
Modified:
5 years, 5 months ago
Reviewers:
picksi, sunnyps, mithro-old
CC:
chromium-reviews, cc-bugs_chromium.org, scheduler-bugs_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@modeTimingHistory3
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

cc: Measure compositor timing with finer granularity Measures PrepareTiles, NotifyReadyToActivate, and Activation times separately such that idle times between actions don't polute results when the main thread is in a high latency mode or when actions are swap throttled. Also cleans up how we measure commit times and adds DCHECKs to make sure we don't ruin the ordering expectations of the CompositorTimingHistory class. Recording is only enabled while visible and we have an output surface in order to avoid cleanup logic skewing results. BUG=406158, 500744 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Committed: https://crrev.com/65acb94f9258f985cbceedcd3b816cc55cc9522f Cr-Commit-Position: refs/heads/master@{#337539} Committed: https://crrev.com/6874981ce0fc8bb4f8a61954136caec3c4c622ad Cr-Commit-Position: refs/heads/master@{#337700}

Patch Set 1 #

Patch Set 2 : fixes #

Total comments: 6

Patch Set 3 : add tests; ignore first 2 recordings; enable based on visibility #

Patch Set 4 : rebase #

Patch Set 5 : rebase; remove skipping logic; #

Total comments: 7

Patch Set 6 : address comments #

Patch Set 7 : rebase #

Total comments: 15

Patch Set 8 : make order consistent; add comment #

Patch Set 9 : fix dcheck assumptions #

Patch Set 10 : don't reset timing history #

Unified diffs Side-by-side diffs Delta from patch set Stats (+402 lines, -96 lines) Patch
M cc/BUILD.gn View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M cc/cc_tests.gyp View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M cc/scheduler/compositor_timing_history.h View 1 2 3 4 5 1 chunk +25 lines, -8 lines 0 comments Download
M cc/scheduler/compositor_timing_history.cc View 1 2 3 4 5 6 7 8 9 4 chunks +117 lines, -34 lines 0 comments Download
A cc/scheduler/compositor_timing_history_unittest.cc View 1 2 3 4 5 6 7 1 chunk +140 lines, -0 lines 0 comments Download
M cc/scheduler/scheduler.h View 1 2 3 2 chunks +3 lines, -0 lines 0 comments Download
M cc/scheduler/scheduler.cc View 1 2 3 4 5 6 9 chunks +27 lines, -7 lines 0 comments Download
M cc/scheduler/scheduler_unittest.cc View 1 2 3 4 5 6 7 16 chunks +25 lines, -30 lines 0 comments Download
M cc/test/fake_layer_tree_host_impl_client.h View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M cc/test/scheduler_test_common.h View 1 2 3 4 5 6 7 2 chunks +12 lines, -6 lines 0 comments Download
M cc/test/scheduler_test_common.cc View 1 2 3 4 5 6 7 2 chunks +29 lines, -10 lines 0 comments Download
M cc/trees/layer_tree_host_impl.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M cc/trees/layer_tree_host_impl.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M cc/trees/layer_tree_host_impl_unittest.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M cc/trees/single_thread_proxy.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M cc/trees/single_thread_proxy.cc View 1 2 3 4 5 6 7 8 2 chunks +9 lines, -0 lines 0 comments Download
M cc/trees/thread_proxy.h View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M cc/trees/thread_proxy.cc View 1 2 3 2 chunks +7 lines, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 38 (11 generated)
brianderson
ptal!
5 years, 6 months ago (2015-06-19 02:48:04 UTC) #2
picksi
A couple of comments from a someone who doesn't know the code at all :) ...
5 years, 6 months ago (2015-06-19 13:04:28 UTC) #4
brianderson
https://codereview.chromium.org/1192663005/diff/20001/cc/scheduler/compositor_timing_history.cc File cc/scheduler/compositor_timing_history.cc (right): https://codereview.chromium.org/1192663005/diff/20001/cc/scheduler/compositor_timing_history.cc#newcode107 cc/scheduler/compositor_timing_history.cc:107: base::TimeTicks::Now() - start_prepare_tiles_time_; On 2015/06/19 13:04:28, picksi wrote: > ...
5 years, 6 months ago (2015-06-19 17:24:27 UTC) #5
brianderson
Updated a few things: * Added unit tests. * OutputSurfaceState and visibility are taken into ...
5 years, 6 months ago (2015-06-19 23:41:54 UTC) #6
mithro-old
On 2015/06/19 23:41:54, brianderson wrote: > Updated a few things: > * Added unit tests. ...
5 years, 6 months ago (2015-06-23 09:02:39 UTC) #7
brianderson
On 2015/06/23 09:02:39, mithro wrote: > On 2015/06/19 23:41:54, brianderson wrote: > > Updated a ...
5 years, 6 months ago (2015-06-23 15:59:41 UTC) #8
brianderson
Rebased on top of https://codereview.chromium.org/1184863004/. I can split this patch up too if people want.
5 years, 6 months ago (2015-06-24 02:34:39 UTC) #9
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1192663005/60001
5 years, 6 months ago (2015-06-24 05:24:02 UTC) #11
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 6 months ago (2015-06-24 06:41:00 UTC) #13
brianderson
Decided to split out the "don't record first 2 frames logic".
5 years, 6 months ago (2015-06-24 23:22:03 UTC) #14
sunnyps
https://codereview.chromium.org/1192663005/diff/80001/cc/scheduler/compositor_timing_history.h File cc/scheduler/compositor_timing_history.h (right): https://codereview.chromium.org/1192663005/diff/80001/cc/scheduler/compositor_timing_history.h#newcode30 cc/scheduler/compositor_timing_history.h:30: virtual base::TimeDelta PrepareTilesBeginToReadyToActivateDurationEstimate() Why is this not called CommitToReadyToActivateDurationEstimate ...
5 years, 6 months ago (2015-06-24 23:34:13 UTC) #15
brianderson
https://codereview.chromium.org/1192663005/diff/80001/cc/scheduler/compositor_timing_history.h File cc/scheduler/compositor_timing_history.h (right): https://codereview.chromium.org/1192663005/diff/80001/cc/scheduler/compositor_timing_history.h#newcode30 cc/scheduler/compositor_timing_history.h:30: virtual base::TimeDelta PrepareTilesBeginToReadyToActivateDurationEstimate() On 2015/06/24 23:34:12, sunnyps wrote: > ...
5 years, 6 months ago (2015-06-24 23:46:16 UTC) #16
sunnyps
On 2015/06/24 23:46:16, brianderson wrote: > https://codereview.chromium.org/1192663005/diff/80001/cc/scheduler/compositor_timing_history.h > File cc/scheduler/compositor_timing_history.h (right): > > https://codereview.chromium.org/1192663005/diff/80001/cc/scheduler/compositor_timing_history.h#newcode30 > ...
5 years, 6 months ago (2015-06-24 23:48:59 UTC) #17
brianderson
On 2015/06/24 23:48:59, sunnyps wrote: > On 2015/06/24 23:46:16, brianderson wrote: > > > https://codereview.chromium.org/1192663005/diff/80001/cc/scheduler/compositor_timing_history.h ...
5 years, 5 months ago (2015-06-30 02:13:14 UTC) #18
mithro-old
Some minor comments but generally LGTM. https://codereview.chromium.org/1192663005/diff/120001/cc/scheduler/compositor_timing_history.cc File cc/scheduler/compositor_timing_history.cc (right): https://codereview.chromium.org/1192663005/diff/120001/cc/scheduler/compositor_timing_history.cc#newcode12 cc/scheduler/compositor_timing_history.cc:12: const double kBeginMainFrameToCommitEstimationPercentile ...
5 years, 5 months ago (2015-06-30 07:55:50 UTC) #19
brianderson
https://codereview.chromium.org/1192663005/diff/120001/cc/scheduler/compositor_timing_history.cc File cc/scheduler/compositor_timing_history.cc (right): https://codereview.chromium.org/1192663005/diff/120001/cc/scheduler/compositor_timing_history.cc#newcode12 cc/scheduler/compositor_timing_history.cc:12: const double kBeginMainFrameToCommitEstimationPercentile = 50.0; On 2015/06/30 07:55:49, mithro ...
5 years, 5 months ago (2015-06-30 17:35:15 UTC) #20
brianderson
Addressed Tim's comments. Sunny - did you want to have another look?
5 years, 5 months ago (2015-06-30 18:07:45 UTC) #21
sunnyps
On 2015/06/30 18:07:45, brianderson wrote: > Addressed Tim's comments. Sunny - did you want to ...
5 years, 5 months ago (2015-07-07 00:00:22 UTC) #22
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1192663005/140001
5 years, 5 months ago (2015-07-07 00:02:36 UTC) #25
commit-bot: I haz the power
Committed patchset #8 (id:140001)
5 years, 5 months ago (2015-07-07 01:08:33 UTC) #26
commit-bot: I haz the power
Patchset 8 (id:??) landed as https://crrev.com/65acb94f9258f985cbceedcd3b816cc55cc9522f Cr-Commit-Position: refs/heads/master@{#337539}
5 years, 5 months ago (2015-07-07 01:09:23 UTC) #27
tapted
A revert of this CL (patchset #8 id:140001) has been created in https://codereview.chromium.org/1213653005/ by tapted@chromium.org. ...
5 years, 5 months ago (2015-07-07 03:00:28 UTC) #28
brianderson
On 2015/07/07 03:00:28, tapted wrote: > A revert of this CL (patchset #8 id:140001) has ...
5 years, 5 months ago (2015-07-07 17:45:50 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1192663005/160001
5 years, 5 months ago (2015-07-07 17:47:24 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1192663005/180001
5 years, 5 months ago (2015-07-07 21:17:11 UTC) #36
commit-bot: I haz the power
Committed patchset #10 (id:180001)
5 years, 5 months ago (2015-07-07 22:39:48 UTC) #37
commit-bot: I haz the power
5 years, 5 months ago (2015-07-07 22:40:47 UTC) #38
Message was sent while issue was closed.
Patchset 10 (id:??) landed as
https://crrev.com/6874981ce0fc8bb4f8a61954136caec3c4c622ad
Cr-Commit-Position: refs/heads/master@{#337700}

Powered by Google App Engine
This is Rietveld 408576698