From f7ed7e06db2231e8b1289dd11896576b5bbe2625 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 21 Mar 2020 13:31:48 -0700 Subject: [PATCH] Revert "Calculate FPS using the actual display refresh rate rather than the requested one" This breaks refresh rate detection on the Shield Android TV. This reverts commit af5e7a0e3320e19e21061bd78d1ab22a1f270456. --- app/src/main/java/com/limelight/Game.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/limelight/Game.java b/app/src/main/java/com/limelight/Game.java index 048aabca..2f80e0c0 100644 --- a/app/src/main/java/com/limelight/Game.java +++ b/app/src/main/java/com/limelight/Game.java @@ -621,6 +621,7 @@ public class Game extends Activity implements SurfaceHolder.Callback, private float prepareDisplayForRendering() { Display display = getWindowManager().getDefaultDisplay(); WindowManager.LayoutParams windowLayoutParams = getWindow().getAttributes(); + float displayRefreshRate; // On M, we can explicitly set the optimal display mode if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { @@ -664,6 +665,7 @@ public class Game extends Activity implements SurfaceHolder.Callback, LimeLog.info("Selected display mode: "+bestMode.getPhysicalWidth()+"x"+ bestMode.getPhysicalHeight()+"x"+bestMode.getRefreshRate()); windowLayoutParams.preferredDisplayModeId = bestMode.getModeId(); + displayRefreshRate = bestMode.getRefreshRate(); } // On L, we can at least tell the OS that we want a refresh rate else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { @@ -684,10 +686,12 @@ public class Game extends Activity implements SurfaceHolder.Callback, } LimeLog.info("Selected refresh rate: "+bestRefreshRate); windowLayoutParams.preferredRefreshRate = bestRefreshRate; + displayRefreshRate = bestRefreshRate; } else { // Otherwise, the active display refresh rate is just // whatever is currently in use. + displayRefreshRate = display.getRefreshRate(); } // Enable HDMI ALLM (game mode) on Android R @@ -727,9 +731,7 @@ public class Game extends Activity implements SurfaceHolder.Callback, streamView.setDesiredAspectRatio((double)prefConfig.width / (double)prefConfig.height); } - // Use the actual refresh rate of the display, since the preferred refresh rate or mode - // may not actually be applied (ex: Pixel 4 with Smooth Display disabled). - return getWindowManager().getDefaultDisplay().getRefreshRate(); + return displayRefreshRate; } @SuppressLint("InlinedApi")