New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 795928 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 706860



Sign in to add a comment

Compute UI Frame Time Metrics in Telemetry

Project Member Reported by chiniforooshan@chromium.org, Dec 18 2017

Issue description

There 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.
 
Blocking: 706860
Project Member

Comment 3 by bugdroid1@chromium.org, 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

Comment 4 by sadrul@chromium.org, Jan 25 2018

Cc: briander...@chromium.org
Project Member

Comment 5 by bugdroid1@chromium.org, 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

Project Member

Comment 6 by bugdroid1@chromium.org, 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

Project Member

Comment 7 by bugdroid1@chromium.org, 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

Status: Fixed (was: Started)
This is done. The work to improve metrics is tracked in crbug.com/790761.

Sign in to add a comment