Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Audit: Content scrolls at 60fps #1648

Open
paulirish opened this issue Feb 6, 2017 · 5 comments
Open

Audit: Content scrolls at 60fps #1648

paulirish opened this issue Feb 6, 2017 · 5 comments
Assignees

Comments

@paulirish
Copy link
Member

What we want:

  • Ability to scroll/fling the page as similar to a mobile scroll/fling as possible
  • Gather data from trace and compute a Frame Throughput (crbug) or other similar smoothness metric

A very nice PR from @surma was put up in #469
Since this PR, we've done a lot of work internally to handle gathering a second trace and passing it off correctly, so we're in better shape now.

@tdresser
Copy link

tdresser commented Feb 7, 2017

If you're looking for a scroll specific metric, are you wanting latency, or throughput?

You can scroll at 60fps with 500ms of lag.

If you're focused on scroll currently, I think looking at latency first might make more sense, and then if you want to cover animations in general, you can follow up with Frame Throughput (and hopefully we'll have a FT metric you can use by then).

For simulation, ideally you'd use the incredibly poorly named "GPU benchmarking extension", by passing the --enable-gpu-benchmarking flag. That isn't going to be possible though, is it?

If not, any thought on how you're going to simulate the input?

@paulirish
Copy link
Member Author

For reference -- the current Frame Throughput metric proposal: LatencyInfo Based Frame Metrics

@paulirish
Copy link
Member Author

The Graphics.Smoothness.PercentDroppedFrames.AllSequences UMA metric is pretty interesting.

Tracks the percent of dropped frames for a particular sequence of frames. This metric is reported for all animations and all interactions.

PercentDroppedFrames is measured by tracking the number of frames which were not displayed on screen out of the total number of frames expected to be produced and displayed. In other words, the lower this number is, the smoother experience.

Note that this metric is reported only when there are sufficient number of frames (>= 100). If there are sequences with fewer frames, then these are aggregated until there are enough frames to produce the metric.

(more active crbug around this)

@paulirish
Copy link
Member Author

A trace event indicating a dropped frame is now available: https://chromium-review.googlesource.com/c/chromium/src/+/2169848

Here's the related design doc for the devtools perf panel feature: Dropped Frames: Chromium DevTools Design Doc

@connorjclark connorjclark self-assigned this Dec 29, 2020
@connorjclark
Copy link
Collaborator

connorjclark commented Jan 5, 2021

UMA for Graphics.Smoothness.PercentDroppedFrames.ScrollingThread.TouchScroll (dropped frames) https://uma.googleplex.com/p/chrome/timeline_v2?sid=662b79caed1281e61b292c5c48d9bea2

Bug tracking attribution: https://bugs.chromium.org/p/chromium/issues/detail?id=1086974

The "Frame Throughput" metric will wait until after TTI to begin measurement. Would it make sense to do the same here for dropped frames? Wait to simulate scrolling until after TTI. but don't actually filter the dropped frames events, as we should include any dropped frames caused by the page scrolling by itself (idk seems like a thing a site might do).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
4 participants