Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c81312da authored by Jorim Jaggi's avatar Jorim Jaggi Committed by Automerger Merge Worker
Browse files

Merge "Correctly start tracing only where we are counting frames" into sc-dev am: 5f6968d2

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14411197

Change-Id: Iecd52b9c65179d44ac3d2b0c50f71f843c3f0aef
parents 35217053 5f6968d2
Loading
Loading
Loading
Loading
+16 −9
Original line number Diff line number Diff line
@@ -167,6 +167,7 @@ public class FrameTracker extends SurfaceControl.OnJankDataListener
                        if (mBeginVsyncId != INVALID_ID) {
                            mSurfaceControlWrapper.addJankStatsListener(
                                    FrameTracker.this, mSurfaceControl);
                            postTraceStartMarker();
                        }
                    }
                }
@@ -208,15 +209,9 @@ public class FrameTracker extends SurfaceControl.OnJankDataListener
    public synchronized void begin() {
        mBeginVsyncId = mChoreographer.getVsyncId() + 1;
        mSession.setTimeStamp(System.nanoTime());
        mChoreographer.mChoreographer.postCallback(Choreographer.CALLBACK_INPUT, () -> {
            synchronized (FrameTracker.this) {
                if (mCancelled || mEndVsyncId != INVALID_ID) {
                    return;
                }
                mTracingStarted = true;
                Trace.beginAsyncSection(mSession.getName(), (int) mBeginVsyncId);
        if (mSurfaceControl != null) {
            postTraceStartMarker();
        }
        }, null);
        mRendererWrapper.addObserver(mObserver);
        if (DEBUG) {
            Log.d(TAG, "begin: " + mSession.getName() + ", begin=" + mBeginVsyncId);
@@ -229,6 +224,18 @@ public class FrameTracker extends SurfaceControl.OnJankDataListener
        }
    }

    private void postTraceStartMarker() {
        mChoreographer.mChoreographer.postCallback(Choreographer.CALLBACK_INPUT, () -> {
            synchronized (FrameTracker.this) {
                if (mCancelled || mEndVsyncId != INVALID_ID) {
                    return;
                }
                mTracingStarted = true;
                Trace.beginAsyncSection(mSession.getName(), (int) mBeginVsyncId);
            }
        }, null);
    }

    /**
     * End the trace session of the CUJ.
     */