Descriptiontelemetry: Update Android frame latency metrics
Update the Android SurfaceFlinger-based frame latency metrics to match
the numbers that are tracked downstream. The new method records the time
of the most recent vsync when a new frame is submitted to SurfaceFlinger.
These frame timestamps are used to derive the following animation quality
indicators:
1. Average frame rate (avg_surface_fps).
2. Maximum time between frames (max_frame_delay) in number elapsed
vsync periods.
3. Number of "janks" or dropped frames during the benchmark
(jank_count). This is calculated by first taking the frame
durations:
duration[i] = timestamp[i + 1] - timestamp[i]
and then seeing when the duration changes:
changes[i] = duration[i + 1] - duration[i]
Every time the frame duration increases by an additional vsync
interval multiple we count the frame as jank:
jank_count = sum{1 | max(0, round(changes[i] / vsync_interval)) > 0}
BUG=https://b/8364918
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=189006
Patch Set 1 #
Total comments: 2
Patch Set 2 : Extract duplicate code into function. #Patch Set 3 : Remove redundant lists. #Messages
Total messages: 8 (0 generated)
|