Compute UI Frame Time Metrics in Telemetry |
|||
Issue descriptionThere are at least two approaches to do this: 1. Compute metrics based on the draw time stamps of the UI compositor. 2. Compute metrics based on the presentation time stamps of UI compositor frames, coming back from the display compositor. 1 is similar to how DevTools computes FPS, but 2 is a more precise measurement of jank because it also catches frames dropped by the display compositor. With Peng's recent work on --enable-presentation-callback, I think we can implement 2.
,
Jan 22 2018
The following revision refers to this bug: https://chromium.googlesource.com/catapult/+/0a20f3ce6c4d6802892cbaa7489cde394eaa6fac commit 0a20f3ce6c4d6802892cbaa7489cde394eaa6fac Author: Ehsan Chiniforooshan <chiniforooshan@chromium.org> Date: Mon Jan 22 17:58:25 2018 Telemetry: compute UI frame times This is the catapult part. Chromium changes (tools/perf and instrumentations in LayerTreeHostImpl.cc) should be landed after this. Design Doc: https://docs.google.com/document/d/1V_rLgnfr2Rf8F5biXgFb_a8KOaaVnQj_c35mb5PVOGQ BUG= chromium:795928 Change-Id: If5c54a4d7cd4e023d4c1f81e607308e5f424d837 Reviewed-on: https://chromium-review.googlesource.com/832708 Commit-Queue: Ehsan Chiniforooshan <chiniforooshan@chromium.org> Reviewed-by: Ned Nguyen <nednguyen@google.com> [modify] https://crrev.com/0a20f3ce6c4d6802892cbaa7489cde394eaa6fac/telemetry/telemetry/web_perf/metrics/smoothness_unittest.py [modify] https://crrev.com/0a20f3ce6c4d6802892cbaa7489cde394eaa6fac/telemetry/telemetry/web_perf/metrics/rendering_stats_unittest.py [modify] https://crrev.com/0a20f3ce6c4d6802892cbaa7489cde394eaa6fac/telemetry/telemetry/web_perf/metrics/rendering_stats.py [modify] https://crrev.com/0a20f3ce6c4d6802892cbaa7489cde394eaa6fac/telemetry/telemetry/web_perf/metrics/smoothness.py
,
Jan 22 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/408974c60fcfd10a412aea3526a8e370b55949ad commit 408974c60fcfd10a412aea3526a8e370b55949ad Author: catapult-deps-roller@chromium.org <catapult-deps-roller@chromium.org> Date: Mon Jan 22 19:24:23 2018 Roll src/third_party/catapult/ cbc1ddc6a..0a20f3ce6 (1 commit) https://chromium.googlesource.com/catapult.git/+log/cbc1ddc6abfa..0a20f3ce6c4d $ git log cbc1ddc6a..0a20f3ce6 --date=short --no-merges --format='%ad %ae %s' 2018-01-22 chiniforooshan Telemetry: compute UI frame times Created with: roll-dep src/third_party/catapult BUG= 795928 The AutoRoll server is located here: https://catapult-roll.skia.org Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel TBR=sullivan@chromium.org Change-Id: Id050d05d3d96d9d6fc725a16ccb039703feb1790 Reviewed-on: https://chromium-review.googlesource.com/879161 Commit-Queue: <catapult-deps-roller@chromium.org> Reviewed-by: <catapult-deps-roller@chromium.org> Cr-Commit-Position: refs/heads/master@{#530943} [modify] https://crrev.com/408974c60fcfd10a412aea3526a8e370b55949ad/DEPS
,
Jan 25 2018
,
Jan 31 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/311cf5dd3064dce4fdd99bb5d037a52b496d6d00 commit 311cf5dd3064dce4fdd99bb5d037a52b496d6d00 Author: Ehsan Chiniforooshan <chiniforooshan@chromium.org> Date: Wed Jan 31 22:10:21 2018 Trace presentation times This enables us to trace when a compositor frame was displayed. It will be used to measure FPS of the UI and renderer compositors in Telemetry. Ideally, we want to be able to break this down further to understand throughput of main thread and the compositor thread. That's a more complicated problem which is discussed in details in: https://docs.google.com/document/d/1KrqWnzGNm7qUqSLer-iXiGxVC-nL7niZtEU-0rU0W08/edit?usp=sharing BUG= 795928 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel Change-Id: I8fae26cd065275807c8997d840b53ca78b35f390 Reviewed-on: https://chromium-review.googlesource.com/884511 Reviewed-by: James Cook <jamescook@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Reviewed-by: Brian Anderson <brianderson@chromium.org> Commit-Queue: Ehsan Chiniforooshan <chiniforooshan@chromium.org> Cr-Commit-Position: refs/heads/master@{#533435} [modify] https://crrev.com/311cf5dd3064dce4fdd99bb5d037a52b496d6d00/cc/base/switches.cc [modify] https://crrev.com/311cf5dd3064dce4fdd99bb5d037a52b496d6d00/cc/base/switches.h [modify] https://crrev.com/311cf5dd3064dce4fdd99bb5d037a52b496d6d00/cc/trees/layer_tree_host.cc [modify] https://crrev.com/311cf5dd3064dce4fdd99bb5d037a52b496d6d00/cc/trees/layer_tree_host_impl.cc [modify] https://crrev.com/311cf5dd3064dce4fdd99bb5d037a52b496d6d00/cc/trees/layer_tree_settings.h [modify] https://crrev.com/311cf5dd3064dce4fdd99bb5d037a52b496d6d00/chrome/browser/chromeos/login/chrome_restart_request.cc [modify] https://crrev.com/311cf5dd3064dce4fdd99bb5d037a52b496d6d00/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/311cf5dd3064dce4fdd99bb5d037a52b496d6d00/content/renderer/gpu/render_widget_compositor.cc [modify] https://crrev.com/311cf5dd3064dce4fdd99bb5d037a52b496d6d00/ui/compositor/compositor.cc
,
Feb 2 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2b63134791c3910cb5f3805ffbb65b073ae57816 commit 2b63134791c3910cb5f3805ffbb65b073ae57816 Author: Ehsan Chiniforooshan <chiniforooshan@chromium.org> Date: Fri Feb 02 05:07:35 2018 Add UI stories to top_25_smooth This adds two stories for measuring UI compositor FPS: 1- Loads news.yahoo.com; goes to overview mode; exits overview mode. 2- Loads poster circle; goes to overview mode; exits overview mode. The stories run only when the browser backend supports overview mode actions; so this will not break perf bots. For now, we will run these stories manually. Note: this should be landed after 884511, due to using --always-request-presentation-time browser arg. Bug: 795928 Change-Id: Ib09348334ba3708d316c46a7a89f0febc8532264 Reviewed-on: https://chromium-review.googlesource.com/895411 Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Ned Nguyen <nednguyen@google.com> Commit-Queue: Ehsan Chiniforooshan <chiniforooshan@chromium.org> Cr-Commit-Position: refs/heads/master@{#533962} [modify] https://crrev.com/2b63134791c3910cb5f3805ffbb65b073ae57816/tools/perf/page_sets/data/top_25_012.wprgo.sha1 [add] https://crrev.com/2b63134791c3910cb5f3805ffbb65b073ae57816/tools/perf/page_sets/data/top_25_013.wprgo.sha1 [modify] https://crrev.com/2b63134791c3910cb5f3805ffbb65b073ae57816/tools/perf/page_sets/data/top_25_smooth.json [modify] https://crrev.com/2b63134791c3910cb5f3805ffbb65b073ae57816/tools/perf/page_sets/top_25_smooth.py
,
Feb 9 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0b86c2c9df188e6411641be330f74db33e5cc85d commit 0b86c2c9df188e6411641be330f74db33e5cc85d Author: Sunny Sachanandani <sunnyps@chromium.org> Date: Fri Feb 09 00:03:28 2018 perf: Move UI smoothness pages into separate benchmark. We run top_25_smooth in different configurations which aren't meaningful for UI pages. This makes merging smoothness and thread_times benchmarks easier. Also fix extra_browser_args to be a list instead of string. BUG= 795928 ,760553 Change-Id: I1462ffe795ad8105f1340426bab3cbec32a45ca9 Reviewed-on: https://chromium-review.googlesource.com/903246 Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Ned Nguyen <nednguyen@google.com> Reviewed-by: Ehsan Chiniforooshan <chiniforooshan@chromium.org> Cr-Commit-Position: refs/heads/master@{#535581} [add] https://crrev.com/0b86c2c9df188e6411641be330f74db33e5cc85d/tools/perf/contrib/cros_benchmarks/ui_smoothness_bench.py [add] https://crrev.com/0b86c2c9df188e6411641be330f74db33e5cc85d/tools/perf/page_sets/cros_ui_cases.py [add] https://crrev.com/0b86c2c9df188e6411641be330f74db33e5cc85d/tools/perf/page_sets/data/cros_ui_cases.json [add] https://crrev.com/0b86c2c9df188e6411641be330f74db33e5cc85d/tools/perf/page_sets/data/cros_ui_cases_000.wprgo.sha1 [modify] https://crrev.com/0b86c2c9df188e6411641be330f74db33e5cc85d/tools/perf/page_sets/top_25_smooth.py
,
Mar 12 2018
This is done. The work to improve metrics is tracked in crbug.com/790761. |
|||
►
Sign in to add a comment |
|||
Comment 1 by chiniforooshan@chromium.org
, Dec 18 2017