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

Commit 17a8dbe2 authored by Shane's avatar Shane
Browse files

Update toolkit dVRR update frame rate logic

Reset mPreferredFrameRate every frame to avoid taking previous frame rate vote into account.

Test: atest ViewRootImplTest
Change-Id: I90b40839523aef64fc3a6a39da8c2bc22365f4c7
parent 1684475d
Loading
Loading
Loading
Loading
+5 −9
Original line number Diff line number Diff line
@@ -4085,6 +4085,7 @@ public final class ViewRootImpl implements ViewParent,
        setPreferredFrameRate(mPreferredFrameRate);
        setPreferredFrameRateCategory(mPreferredFrameRateCategory);
        mPreferredFrameRateCategory = FRAME_RATE_CATEGORY_NO_PREFERENCE;
        mPreferredFrameRate = -1;
    }
    private void createSyncIfNeeded() {
@@ -12296,7 +12297,8 @@ public final class ViewRootImpl implements ViewParent,
        }
        try {
            if (mLastPreferredFrameRate != preferredFrameRate) {
            if (mLastPreferredFrameRate != preferredFrameRate
                    && preferredFrameRate >= 0) {
                if (Trace.isTagEnabled(Trace.TRACE_TAG_VIEW)) {
                    Trace.traceBegin(
                            Trace.TRACE_TAG_VIEW, "ViewRootImpl#setFrameRate "
@@ -12368,13 +12370,7 @@ public final class ViewRootImpl implements ViewParent,
            return;
        }
        if (mPreferredFrameRate == 0) {
            mPreferredFrameRate = frameRate;
        } else if (frameRate > 60 || mPreferredFrameRate > 60) {
        mPreferredFrameRate = Math.max(mPreferredFrameRate, frameRate);
        } else if (mPreferredFrameRate != frameRate) {
            mPreferredFrameRate = 60;
        }
        mHasInvalidation = true;
        mHandler.removeMessages(MSG_FRAME_RATE_SETTING);
@@ -12403,7 +12399,7 @@ public final class ViewRootImpl implements ViewParent,
     */
    @VisibleForTesting
    public float getPreferredFrameRate() {
        return mPreferredFrameRate;
        return mPreferredFrameRate >= 0 ? mPreferredFrameRate : mLastPreferredFrameRate;
    }
    /**
+2 −0
Original line number Diff line number Diff line
@@ -699,6 +699,8 @@ public class ViewRootImplTest {
            viewRootImpl.votePreferredFrameRate(24);
            assertEquals(viewRootImpl.getPreferredFrameRate(), 24, 0.1);
            viewRootImpl.votePreferredFrameRate(30);
            assertEquals(viewRootImpl.getPreferredFrameRate(), 30, 0.1);
            viewRootImpl.votePreferredFrameRate(60);
            assertEquals(viewRootImpl.getPreferredFrameRate(), 60, 0.1);
            viewRootImpl.votePreferredFrameRate(120);
            assertEquals(viewRootImpl.getPreferredFrameRate(), 120, 0.1);