New issue
Advanced search Search tips

Issue 790761 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature


Sign in to add a comment

Improve frame throughput/latency/smoothness metrics

Project Member Reported by briander...@chromium.org, Nov 30 2017

Issue description

This is a tracking bug for improvements to our metrics for throughput, latency, and smoothness.

The scope of this includes:
1) Getting accurate display timestamps on as many platforms as possible.
2) Tracking as many invalidation sources as we can (e.g. main, cc, renderer, ui, video, offscreen canvas.)
3) Determining how best to calculate the metrics.
4) Determining how to combine metrics for different invalidation sources.
5) Calculating the metrics at runtime and reporting the same metrics to traces, UMA, UKM, telemetry, etc.

 
Cc: -vmp...@chromium.org sadrul@chromium.org
Cc: vmp...@chromium.org
Blockedon: 807461
Blockedon: 807463
Blockedon: 807464
Blockedon: 807467

Comment 8 by wutao@chromium.org, Mar 2 2018

Cc: wutao@chromium.org
Project Member

Comment 9 by bugdroid1@chromium.org, Mar 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7d87b6c0aa12c58e4b80698bcf7af3d931790d54

commit 7d87b6c0aa12c58e4b80698bcf7af3d931790d54
Author: Brian Anderson <brianderson@chromium.org>
Date: Mon Mar 12 22:27:37 2018

ui: FrameMetrics fixed point helpers.

Adds constants and helpers for upcomming frame metrics.

The Accumulator96b class accumulates values with 96 bits
of precision, which will be important when accumulating
32-bit values that are squared and weighted.

Bug: 790761
Change-Id: Ie88800bef37c6103dd2becd9f85402b3e5fd34d4
Reviewed-on: https://chromium-review.googlesource.com/949823
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Commit-Queue: Brian Anderson <brianderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542628}
[modify] https://crrev.com/7d87b6c0aa12c58e4b80698bcf7af3d931790d54/ui/latency/BUILD.gn
[modify] https://crrev.com/7d87b6c0aa12c58e4b80698bcf7af3d931790d54/ui/latency/OWNERS
[add] https://crrev.com/7d87b6c0aa12c58e4b80698bcf7af3d931790d54/ui/latency/fixed_point.cc
[add] https://crrev.com/7d87b6c0aa12c58e4b80698bcf7af3d931790d54/ui/latency/fixed_point.h
[add] https://crrev.com/7d87b6c0aa12c58e4b80698bcf7af3d931790d54/ui/latency/fixed_point_unittest.cc

Blocking: 732830
Blockedon: 825931
Blockedon: 826535
Blocking: 596133
Project Member

Comment 14 by bugdroid1@chromium.org, May 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/08edd23f394b8ce6f5b9b7a87075b8dd4d3c10db

commit 08edd23f394b8ce6f5b9b7a87075b8dd4d3c10db
Author: Brian Anderson <brianderson@chromium.org>
Date: Wed May 02 21:44:05 2018

ui: Add FrameMetrics class.

This is the high level helper class that will be used by all
frame sources that we want to instrument.

It takes in timing information about frames produced and
displayed and calculates metrics for a frame's throughput,
latency, latency speed, and latency acceleration.

It forwards those computations to StreamAnalyzers which
compute statistics of each metric over time, including
mean, RMS, standard deviation, percentiles, and worst
performing time period.

Bug: 790761
Change-Id: Ibe2980e861acf0af3904b1e8d8caf134d9ef141b
Reviewed-on: https://chromium-review.googlesource.com/979120
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Brian Anderson <brianderson@chromium.org>
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Commit-Queue: Brian Anderson <brianderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555561}
[modify] https://crrev.com/08edd23f394b8ce6f5b9b7a87075b8dd4d3c10db/ui/latency/BUILD.gn
[add] https://crrev.com/08edd23f394b8ce6f5b9b7a87075b8dd4d3c10db/ui/latency/frame_metrics.cc
[add] https://crrev.com/08edd23f394b8ce6f5b9b7a87075b8dd4d3c10db/ui/latency/frame_metrics.h
[modify] https://crrev.com/08edd23f394b8ce6f5b9b7a87075b8dd4d3c10db/ui/latency/frame_metrics_test_common.h
[add] https://crrev.com/08edd23f394b8ce6f5b9b7a87075b8dd4d3c10db/ui/latency/frame_metrics_unittest.cc
[modify] https://crrev.com/08edd23f394b8ce6f5b9b7a87075b8dd4d3c10db/ui/latency/histograms.cc
[modify] https://crrev.com/08edd23f394b8ce6f5b9b7a87075b8dd4d3c10db/ui/latency/histograms.h
[modify] https://crrev.com/08edd23f394b8ce6f5b9b7a87075b8dd4d3c10db/ui/latency/histograms_unittest.cc
[modify] https://crrev.com/08edd23f394b8ce6f5b9b7a87075b8dd4d3c10db/ui/latency/stream_analyzer.cc
[modify] https://crrev.com/08edd23f394b8ce6f5b9b7a87075b8dd4d3c10db/ui/latency/stream_analyzer.h

Blockedon: 843821
Blockedon: 852482
Blockedon: -843821
Cc: yiyix@chromium.org chiniforooshan@chromium.org
Owner: sadrul@chromium.org
Moving ownership of the tracking bug over to Sadrul.

All the "Blocked on" bugs have been marked available with the relevant folks cc'd.
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/11a96bd2a40000

Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/12ebe954a40000

Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/12eeacbca40000

Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/168d4c74a40000

Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/11ae9764a40000

Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/16a5fb0aa40000

Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/1430cdd4a40000

Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/11a457f4a40000

Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/11ba168aa40000

'unicode' object has no attribute 'get'
📍 Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/1597cff4a40000
Blockedon: 862654
Blocking on  crbug.com/862654  - Pinpoint failure locating isolate hash.
Blocking on  crbug.com/862654  - Pinpoint failure locating isolate hash.
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/1457cff4a40000

Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
📍 Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/17d087b2a40000
📍 Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/14c50681a40000
📍 Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/12cfd976a40000
 Issue 862654  is fixed! Please try again.
Project Member

Comment 50 by bugdroid1@chromium.org, Aug 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dd9f811b9a2310ec38e96f7e135aad575c2de06a

commit dd9f811b9a2310ec38e96f7e135aad575c2de06a
Author: Vikas Soni <vikassoni@chromium.org>
Date: Wed Aug 15 19:42:12 2018

Add support for reporting EGL Timestamps via
presentation feedback.

This CL adds support for reporting egl_composite_interval and
presentation_time via the presentation feedabck.
GLSurfacePresentationHelper uses the new interface
EGLTImestampClient to query the egl timestamp info.

Bug: 790761
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I7e1f3200bba41bf3252b8acedc68393eeeb76df5
Reviewed-on: https://chromium-review.googlesource.com/1106600
Commit-Queue: vikas soni <vikassoni@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583360}
[modify] https://crrev.com/dd9f811b9a2310ec38e96f7e135aad575c2de06a/ui/gl/BUILD.gn
[add] https://crrev.com/dd9f811b9a2310ec38e96f7e135aad575c2de06a/ui/gl/egl_timestamps.h
[modify] https://crrev.com/dd9f811b9a2310ec38e96f7e135aad575c2de06a/ui/gl/gl_surface.cc
[modify] https://crrev.com/dd9f811b9a2310ec38e96f7e135aad575c2de06a/ui/gl/gl_surface.h
[modify] https://crrev.com/dd9f811b9a2310ec38e96f7e135aad575c2de06a/ui/gl/gl_surface_egl.cc
[modify] https://crrev.com/dd9f811b9a2310ec38e96f7e135aad575c2de06a/ui/gl/gl_surface_egl.h
[modify] https://crrev.com/dd9f811b9a2310ec38e96f7e135aad575c2de06a/ui/gl/gl_surface_presentation_helper.cc
[modify] https://crrev.com/dd9f811b9a2310ec38e96f7e135aad575c2de06a/ui/gl/gl_surface_presentation_helper.h

Project Member

Comment 51 by bugdroid1@chromium.org, Aug 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/92b9ba1a74dcfaadc6136172ac403636c00cfabd

commit 92b9ba1a74dcfaadc6136172ac403636c00cfabd
Author: Brian Sheedy <bsheedy@chromium.org>
Date: Fri Aug 17 19:54:38 2018

Revert "Add support for reporting EGL Timestamps via"

This reverts commit dd9f811b9a2310ec38e96f7e135aad575c2de06a.

Reason for revert: Causing renderer crashes in some VR tests  https://crbug.com/875121 

Original change's description:
> Add support for reporting EGL Timestamps via
> presentation feedback.
> 
> This CL adds support for reporting egl_composite_interval and
> presentation_time via the presentation feedabck.
> GLSurfacePresentationHelper uses the new interface
> EGLTImestampClient to query the egl timestamp info.
> 
> Bug: 790761
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
> Change-Id: I7e1f3200bba41bf3252b8acedc68393eeeb76df5
> Reviewed-on: https://chromium-review.googlesource.com/1106600
> Commit-Queue: vikas soni <vikassoni@chromium.org>
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#583360}

TBR=penghuang@chromium.org,brianderson@chromium.org,piman@chromium.org,ericrk@chromium.org,vikassoni@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 790761
Change-Id: I75d1140881a8ae2d94512bde56dae5b27d532d7c
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1180042
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584156}
[modify] https://crrev.com/92b9ba1a74dcfaadc6136172ac403636c00cfabd/ui/gl/BUILD.gn
[delete] https://crrev.com/6a60f01228557982e6508c5919cc21fcfddf110b/ui/gl/egl_timestamps.h
[modify] https://crrev.com/92b9ba1a74dcfaadc6136172ac403636c00cfabd/ui/gl/gl_surface.cc
[modify] https://crrev.com/92b9ba1a74dcfaadc6136172ac403636c00cfabd/ui/gl/gl_surface.h
[modify] https://crrev.com/92b9ba1a74dcfaadc6136172ac403636c00cfabd/ui/gl/gl_surface_egl.cc
[modify] https://crrev.com/92b9ba1a74dcfaadc6136172ac403636c00cfabd/ui/gl/gl_surface_egl.h
[modify] https://crrev.com/92b9ba1a74dcfaadc6136172ac403636c00cfabd/ui/gl/gl_surface_presentation_helper.cc
[modify] https://crrev.com/92b9ba1a74dcfaadc6136172ac403636c00cfabd/ui/gl/gl_surface_presentation_helper.h

Project Member

Comment 52 by bugdroid1@chromium.org, Aug 23

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5b209d0259fcd1420aeb8e4ad0e910f7b0197e20

commit 5b209d0259fcd1420aeb8e4ad0e910f7b0197e20
Author: Vikas Soni <vikassoni@chromium.org>
Date: Thu Aug 23 21:14:14 2018

Reland "Add support for reporting EGL Timestamps via presentation feedback."

This is a reland of dd9f811b9a2310ec38e96f7e135aad575c2de06a with a bug
fix for Bug:  875121 

Original change's description:
> Add support for reporting EGL Timestamps via
> presentation feedback.
>
> This CL adds support for reporting egl_composite_interval and
> presentation_time via the presentation feedabck.
> GLSurfacePresentationHelper uses the new interface
> EGLTImestampClient to query the egl timestamp info.
>
> Bug: 790761
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
> Change-Id: I7e1f3200bba41bf3252b8acedc68393eeeb76df5
> Reviewed-on: https://chromium-review.googlesource.com/1106600
> Commit-Queue: vikas soni <vikassoni@chromium.org>
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#583360}

Bug: 790761
Change-Id: I498cde154a1926b61b683ad27f984d9552385146
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1185441
Commit-Queue: vikas soni <vikassoni@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585615}
[modify] https://crrev.com/5b209d0259fcd1420aeb8e4ad0e910f7b0197e20/ui/gl/BUILD.gn
[add] https://crrev.com/5b209d0259fcd1420aeb8e4ad0e910f7b0197e20/ui/gl/egl_timestamps.h
[modify] https://crrev.com/5b209d0259fcd1420aeb8e4ad0e910f7b0197e20/ui/gl/gl_surface.cc
[modify] https://crrev.com/5b209d0259fcd1420aeb8e4ad0e910f7b0197e20/ui/gl/gl_surface.h
[modify] https://crrev.com/5b209d0259fcd1420aeb8e4ad0e910f7b0197e20/ui/gl/gl_surface_egl.cc
[modify] https://crrev.com/5b209d0259fcd1420aeb8e4ad0e910f7b0197e20/ui/gl/gl_surface_egl.h
[modify] https://crrev.com/5b209d0259fcd1420aeb8e4ad0e910f7b0197e20/ui/gl/gl_surface_presentation_helper.cc
[modify] https://crrev.com/5b209d0259fcd1420aeb8e4ad0e910f7b0197e20/ui/gl/gl_surface_presentation_helper.h

Sign in to add a comment