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

Commit b4753252 authored by George Mount's avatar George Mount Committed by Android (Google) Code Review
Browse files

Merge "[VRR] Use UXR values for velocity/frame rate calculation" into main

parents 3f97deb9 1edfcbe7
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -34061,10 +34061,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
    }
    private float convertVelocityToFrameRate(float velocityPps) {
        // From UXR study, premium experience is:
        // 1500+    dp/s: 120fps
        // 0 - 1500 dp/s:  80fps
        // OEMs are likely to modify this to balance battery and user experience for their
        // specific device.
        float density = mAttachInfo.mDensity;
        float velocityDps = velocityPps / density;
        // Choose a frame rate in increments of 10fps
        return Math.min(MAX_FRAME_RATE, 60f + (10f * (float) Math.floor(velocityDps / 300f)));
        return (velocityDps >= 1500f) ? MAX_FRAME_RATE : 80f;
    }
    /**
+3 −3
Original line number Diff line number Diff line
@@ -164,7 +164,7 @@ public class ViewFrameRateTest {
        mActivityRule.runOnUiThread(() -> {
            mMovingView.setFrameContentVelocity(1f);
            mMovingView.invalidate();
            runAfterDraw(() -> assertEquals(60f, mViewRoot.getLastPreferredFrameRate(), 0f));
            runAfterDraw(() -> assertEquals(80f, mViewRoot.getLastPreferredFrameRate(), 0f));
        });
        waitForAfterDraw();
    }
@@ -190,7 +190,7 @@ public class ViewFrameRateTest {
            frameLayout.setFrameContentVelocity(1f);
            mMovingView.offsetTopAndBottom(100);
            frameLayout.invalidate();
            runAfterDraw(() -> assertEquals(60f, mViewRoot.getLastPreferredFrameRate(), 0f));
            runAfterDraw(() -> assertEquals(80f, mViewRoot.getLastPreferredFrameRate(), 0f));
        });
        waitForAfterDraw();
    }
@@ -435,7 +435,7 @@ public class ViewFrameRateTest {
            runAfterDraw(() -> {
                assertEquals(FRAME_RATE_CATEGORY_LOW,
                        mViewRoot.getLastPreferredFrameRateCategory());
                assertEquals(60f, mViewRoot.getLastPreferredFrameRate());
                assertEquals(80f, mViewRoot.getLastPreferredFrameRate());
            });
        });
        waitForAfterDraw();