From 8c2703dfc85c911d28111f5b1e54ee8acb7fcbb2 Mon Sep 17 00:00:00 2001 From: Andy Yu Date: Fri, 3 Nov 2023 11:22:46 -0700 Subject: Refactor game-related frame rate override to LayerHistory Previously game-related frame rate overrides are maintained in Scheduler only, which does not provide votes to the actual display refresh rate. This causes an issue that these overrides will only be viable when they are the divisors of the display refresh rate at the moment. This change moves the game intervention and newly-added game default frame rate overrides to LayerHistory, where overrides will be considered in layer frame rate votes. Scheduler will get this information and select the display frame rate accordingly Bug: 286084594 Test: SurfaceFlinger unit test atest LayerHistoryTest atest FrameRateOverrideMappingsTest atest CtsGraphicsTestCases --test-filter "SetFrameRateTest*" atest CtsFrameRateOverrideTestCases Change-Id: I9957af8e53fbdd44b8d70028572e6db8e779a1fe --- libs/gui/SurfaceComposerClient.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'libs/gui/SurfaceComposerClient.cpp') diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp index 922b0ddcde..8b6f2023dc 100644 --- a/libs/gui/SurfaceComposerClient.cpp +++ b/libs/gui/SurfaceComposerClient.cpp @@ -2782,9 +2782,16 @@ status_t SurfaceComposerClient::getHdrOutputConversionSupport(bool* isSupported) return statusTFromBinderStatus(status); } -status_t SurfaceComposerClient::setOverrideFrameRate(uid_t uid, float frameRate) { +status_t SurfaceComposerClient::setGameModeFrameRateOverride(uid_t uid, float frameRate) { binder::Status status = - ComposerServiceAIDL::getComposerService()->setOverrideFrameRate(uid, frameRate); + ComposerServiceAIDL::getComposerService()->setGameModeFrameRateOverride(uid, frameRate); + return statusTFromBinderStatus(status); +} + +status_t SurfaceComposerClient::setGameDefaultFrameRateOverride(uid_t uid, float frameRate) { + binder::Status status = + ComposerServiceAIDL::getComposerService()->setGameDefaultFrameRateOverride(uid, + frameRate); return statusTFromBinderStatus(status); } -- cgit v1.2.3-59-g8ed1b