From 4ce951e44653852147be2fb0b17555681983d942 Mon Sep 17 00:00:00 2001 From: Andy Yu Date: Mon, 24 Jan 2022 01:26:14 -0800 Subject: [PATCH] Fix resetting FPS when switching to standard mode Bug: b/216078953 Test: atest GameManagerServiceTests run game and switch between modes Change-Id: I355cfaae595230eefe0a40cabe204849ff472146 --- .../com/android/server/app/GameManagerService.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/services/core/java/com/android/server/app/GameManagerService.java b/services/core/java/com/android/server/app/GameManagerService.java index f5f7bb3428bf6..417ebcdbcef22 100644 --- a/services/core/java/com/android/server/app/GameManagerService.java +++ b/services/core/java/com/android/server/app/GameManagerService.java @@ -938,6 +938,19 @@ public final class GameManagerService extends IGameManagerService.Stub { } } + /** + * Remove frame rate override due to mode switch + */ + private void resetFps(String packageName, @UserIdInt int userId) { + try { + final float fps = 0.0f; + final int uid = mPackageManager.getPackageUidAsUser(packageName, userId); + nativeSetOverrideFrameRate(uid, fps); + } catch (PackageManager.NameNotFoundException e) { + return; + } + } + private void enableCompatScale(String packageName, long scaleId) { final long uid = Binder.clearCallingIdentity(); try { @@ -1030,6 +1043,7 @@ public final class GameManagerService extends IGameManagerService.Stub { if (gameMode == GameManager.GAME_MODE_STANDARD || gameMode == GameManager.GAME_MODE_UNSUPPORTED) { disableCompatScale(packageName); + resetFps(packageName, userId); return; } GamePackageConfiguration packageConfig = null;