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

Commit e0af07b8 authored by Pechetty Sravani (xWF)'s avatar Pechetty Sravani (xWF)
Browse files

Revert "Add the expected and actual frame duration to the SF jan..."

Revert submission 28899062-frame_duration

Reason for revert: Droid monitor created revert due to this b/362835127.

Reverted changes: /q/submissionid:28899062-frame_duration

Change-Id: Ifece300db3e0081f0c225fd376fe74b921cae36a
parent 494e9f8a
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -445,20 +445,16 @@ public final class SurfaceControl implements Parcelable {
        // Jank due to unknown reasons.
        public static final int UNKNOWN = 0x80;

        public JankData(long frameVsyncId, @JankType int jankType, long frameIntervalNs,
                long scheduledAppFrameTimeNs, long actualAppFrameTimeNs) {
        public JankData(long frameVsyncId, @JankType int jankType, long frameIntervalNs) {
            this.frameVsyncId = frameVsyncId;
            this.jankType = jankType;
            this.frameIntervalNs = frameIntervalNs;
            this.scheduledAppFrameTimeNs = scheduledAppFrameTimeNs;
            this.actualAppFrameTimeNs = actualAppFrameTimeNs;

        }

        public final long frameVsyncId;
        public final @JankType int jankType;
        public final long frameIntervalNs;
        public final long scheduledAppFrameTimeNs;
        public final long actualAppFrameTimeNs;
    }

    /**
+26 −28
Original line number Diff line number Diff line
@@ -127,7 +127,7 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai
    private Runnable mWaitForFinishTimedOut;

    private static class JankInfo {
        final long frameVsyncId;
        long frameVsyncId;
        long totalDurationNanos;
        boolean isFirstFrame;
        boolean hwuiCallbackFired;
@@ -135,37 +135,29 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai
        @JankType int jankType;
        @RefreshRate int refreshRate;

        static JankInfo createFromHwuiCallback(
                long frameVsyncId, long totalDurationNanos, boolean isFirstFrame) {
            return new JankInfo(frameVsyncId).update(totalDurationNanos, isFirstFrame);
        static JankInfo createFromHwuiCallback(long frameVsyncId, long totalDurationNanos,
                boolean isFirstFrame) {
            return new JankInfo(frameVsyncId, true, false, JANK_NONE, UNKNOWN_REFRESH_RATE,
                    totalDurationNanos, isFirstFrame);
        }

        static JankInfo createFromSurfaceControlCallback(SurfaceControl.JankData jankStat) {
            return new JankInfo(jankStat.frameVsyncId).update(jankStat);
        static JankInfo createFromSurfaceControlCallback(long frameVsyncId,
                @JankType int jankType, @RefreshRate int refreshRate) {
            return new JankInfo(
                    frameVsyncId, false, true, jankType, refreshRate, 0, false /* isFirstFrame */);
        }

        private JankInfo(long frameVsyncId) {
        private JankInfo(long frameVsyncId, boolean hwuiCallbackFired,
                boolean surfaceControlCallbackFired, @JankType int jankType,
                @RefreshRate int refreshRate,
                long totalDurationNanos, boolean isFirstFrame) {
            this.frameVsyncId = frameVsyncId;
            this.hwuiCallbackFired = false;
            this.surfaceControlCallbackFired = false;
            this.jankType = JANK_NONE;
            this.refreshRate = UNKNOWN_REFRESH_RATE;
            this.totalDurationNanos = 0;
            this.isFirstFrame = false;
        }

        private JankInfo update(SurfaceControl.JankData jankStat) {
            this.surfaceControlCallbackFired = true;
            this.jankType = jankStat.jankType;
            this.refreshRate = DisplayRefreshRate.getRefreshRate(jankStat.frameIntervalNs);
            return this;
        }

        private JankInfo update(long totalDurationNanos, boolean isFirstFrame) {
            this.hwuiCallbackFired = true;
            this.hwuiCallbackFired = hwuiCallbackFired;
            this.surfaceControlCallbackFired = surfaceControlCallbackFired;
            this.jankType = jankType;
            this.refreshRate = refreshRate;
            this.totalDurationNanos = totalDurationNanos;
            this.isFirstFrame = isFirstFrame;
            return this;
        }

        @Override
@@ -465,12 +457,16 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai
                if (!isInRange(jankStat.frameVsyncId)) {
                    continue;
                }
                int refreshRate = DisplayRefreshRate.getRefreshRate(jankStat.frameIntervalNs);
                JankInfo info = findJankInfo(jankStat.frameVsyncId);
                if (info != null) {
                    info.update(jankStat);
                    info.surfaceControlCallbackFired = true;
                    info.jankType = jankStat.jankType;
                    info.refreshRate = refreshRate;
                } else {
                    mJankInfos.put((int) jankStat.frameVsyncId,
                            JankInfo.createFromSurfaceControlCallback(jankStat));
                            JankInfo.createFromSurfaceControlCallback(
                                    jankStat.frameVsyncId, jankStat.jankType, refreshRate));
                }
            }
            processJankInfos();
@@ -517,7 +513,9 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai
            }
            JankInfo info = findJankInfo(frameVsyncId);
            if (info != null) {
                info.update(totalDurationNanos, isFirstFrame);
                info.hwuiCallbackFired = true;
                info.totalDurationNanos = totalDurationNanos;
                info.isFirstFrame = isFirstFrame;
            } else {
                mJankInfos.put((int) frameVsyncId, JankInfo.createFromHwuiCallback(
                        frameVsyncId, totalDurationNanos, isFirstFrame));
+4 −6
Original line number Diff line number Diff line
@@ -2089,11 +2089,9 @@ public:
        jobjectArray jJankDataArray = env->NewObjectArray(jankData.size(),
                gJankDataClassInfo.clazz, nullptr);
        for (size_t i = 0; i < jankData.size(); i++) {
            jobject jJankData =
                    env->NewObject(gJankDataClassInfo.clazz, gJankDataClassInfo.ctor,
            jobject jJankData = env->NewObject(gJankDataClassInfo.clazz, gJankDataClassInfo.ctor,
                                               jankData[i].frameVsyncId, jankData[i].jankType,
                                   jankData[i].frameIntervalNs, jankData[i].scheduledAppFrameTimeNs,
                                   jankData[i].actualAppFrameTimeNs);
                                               jankData[i].frameIntervalNs);
            env->SetObjectArrayElement(jJankDataArray, i, jJankData);
            env->DeleteLocalRef(jJankData);
        }
@@ -2729,7 +2727,7 @@ int register_android_view_SurfaceControl(JNIEnv* env)
    jclass jankDataClazz =
                FindClassOrDie(env, "android/view/SurfaceControl$JankData");
    gJankDataClassInfo.clazz = MakeGlobalRefOrDie(env, jankDataClazz);
    gJankDataClassInfo.ctor = GetMethodIDOrDie(env, gJankDataClassInfo.clazz, "<init>", "(JIJJJ)V");
    gJankDataClassInfo.ctor = GetMethodIDOrDie(env, gJankDataClassInfo.clazz, "<init>", "(JIJ)V");
    jclass onJankDataListenerClazz =
            FindClassOrDie(env, "android/view/SurfaceControl$OnJankDataListener");
    gJankDataListenerClassInfo.clazz = MakeGlobalRefOrDie(env, onJankDataListenerClazz);
+4 −6
Original line number Diff line number Diff line
@@ -359,7 +359,7 @@ public class FrameTrackerTest {
        tracker.end(FrameTracker.REASON_END_NORMAL);

        // Send incomplete callback for 102L
        sendSfFrame(tracker, 4, 102L, JANK_NONE);
        sendSfFrame(tracker, 102L, JANK_NONE);

        // Send janky but complete callbck fo 103L
        sendFrame(tracker, 50, JANK_APP_DEADLINE_MISSED, 103L);
@@ -629,7 +629,7 @@ public class FrameTrackerTest {
        if (!tracker.mSurfaceOnly) {
            sendHwuiFrame(tracker, durationMillis, vsyncId, firstWindowFrame);
        }
        sendSfFrame(tracker, durationMillis, vsyncId, jankType);
        sendSfFrame(tracker, vsyncId, jankType);
    }

    private void sendHwuiFrame(FrameTracker tracker, long durationMillis, long vsyncId,
@@ -645,13 +645,11 @@ public class FrameTrackerTest {
        captor.getValue().run();
    }

    private void sendSfFrame(
            FrameTracker tracker, long durationMillis, long vsyncId, @JankType int jankType) {
    private void sendSfFrame(FrameTracker tracker, long vsyncId, @JankType int jankType) {
        final ArgumentCaptor<Runnable> captor = ArgumentCaptor.forClass(Runnable.class);
        doNothing().when(tracker).postCallback(captor.capture());
        mListenerCapture.getValue().onJankDataAvailable(new JankData[] {
                new JankData(vsyncId, jankType, FRAME_TIME_60Hz, FRAME_TIME_60Hz,
                TimeUnit.MILLISECONDS.toNanos(durationMillis))
                new JankData(vsyncId, jankType, FRAME_TIME_60Hz)
        });
        captor.getValue().run();
    }