Log FrameTracker aggregated frame stats as trace counters

Bug: 162927074
Test: manual - collected perfetto trace and verified the counters are
available

Change-Id: If742a487aba1493828653b2a8bb8109ae92deacf
This commit is contained in:
Marcin Oczeretko
2020-09-10 13:41:16 +01:00
parent 0f9dd1d13e
commit a1a00b9fa8

View File

@@ -45,8 +45,8 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai
private long mBeginTime = UNKNOWN_TIMESTAMP;
private long mEndTime = UNKNOWN_TIMESTAMP;
private boolean mShouldTriggerTrace;
private long mTotalFramesCount = 0;
private long mMissedFramesCount = 0;
private int mTotalFramesCount = 0;
private int mMissedFramesCount = 0;
private long mMaxFrameTimeNanos = 0;
private Session mSession;
@@ -124,6 +124,15 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai
if (mEndTime != UNKNOWN_TIMESTAMP && vsyncTimestamp > mEndTime) {
// The tracing has been ended, remove the observer, see if need to trigger perfetto.
mRendererWrapper.removeObserver(mObserver);
// Log the frame stats as counters to make them easily accessible in traces.
Trace.traceCounter(Trace.TRACE_TAG_APP, mSession.getName() + "#missedFrames",
mMissedFramesCount);
Trace.traceCounter(Trace.TRACE_TAG_APP, mSession.getName() + "#totalFrames",
mTotalFramesCount);
Trace.traceCounter(Trace.TRACE_TAG_APP, mSession.getName() + "#maxFrameTimeMillis",
(int) (mMaxFrameTimeNanos / 1_000_000));
// Trigger perfetto if necessary.
if (mShouldTriggerTrace) {
if (DEBUG) {