diff options
| author | 2020-01-23 15:48:01 -0800 | |
|---|---|---|
| committer | 2020-01-31 19:52:02 -0800 | |
| commit | 8c6f3f6bd0c5edce7aa9bfd61b64dd2e7dc43deb (patch) | |
| tree | 9f3b28c4f7d87914a5de1174e9c1ef280d75798b /services/surfaceflinger/SurfaceFlinger.cpp | |
| parent | 5ca59db02b5338df237faad94e8d6f24f3ab11c7 (diff) | |
SF: Remove refresh_rate_switching flag.
ag/9294789 introduce a flag to only allow refresh rate switching on the
devices that have that flag set to true, because it broke devices that
didn't support multiple refresh rates, and Android TV.
LocalDisplayAdapter sets the refresh rate to default when booting the
phone, so no need for that in SF anymore.
Test: Install on devices that doesn't have multiple refresh rates.
Test: Run SF unittests.
Test: Turn on all the flags, and run through set of examples:
Video playback stays at 60.
Camera stays at 60.
Maps play at 60.
Low brightness stays at 90.
Swappy successfully switches between 60 & 90.
Test: Turn off all the flags, and rerun the examples from previous.
If applications requested the change, the change is honored,
otherwise we stay at default (set by DM).
Test: Ask Android TV team to test the patch.
Bug: 148427603
Change-Id: I44085e91a74902d102bcf9f1491164cdb50650cc
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
| -rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 40 |
1 files changed, 13 insertions, 27 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 61d197ca68..e7c2dbc324 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -538,12 +538,6 @@ void SurfaceFlinger::bootFinished() readPersistentProperties(); mBootStage = BootStage::FINISHED; - if (mRefreshRateConfigs->refreshRateSwitchingSupported()) { - // set the refresh rate according to the policy - const auto& performanceRefreshRate = mRefreshRateConfigs->getMaxRefreshRateByPolicy(); - changeRefreshRateLocked(performanceRefreshRate, Scheduler::ConfigEvent::None); - } - if (property_get_bool("sf.debug.show_refresh_rate_overlay", false)) { mRefreshRateOverlay = std::make_unique<RefreshRateOverlay>(*this); mRefreshRateOverlay->changeRefreshRate(mRefreshRateConfigs->getCurrentRefreshRate()); @@ -2699,8 +2693,7 @@ void SurfaceFlinger::initScheduler(DisplayId primaryDisplayId) { auto currentConfig = HwcConfigIndexType(getHwComposer().getActiveConfigIndex(primaryDisplayId)); mRefreshRateConfigs = - std::make_unique<scheduler::RefreshRateConfigs>(refresh_rate_switching(false), - getHwComposer().getConfigs( + std::make_unique<scheduler::RefreshRateConfigs>(getHwComposer().getConfigs( primaryDisplayId), currentConfig); mRefreshRateStats = @@ -5681,26 +5674,19 @@ status_t SurfaceFlinger::setDesiredDisplayConfigSpecsInternal(const sp<DisplayDe mScheduler->onConfigChanged(mAppConnectionHandle, display->getId()->value, display->getActiveConfig(), vsyncPeriod); - if (mRefreshRateConfigs->refreshRateSwitchingSupported()) { - auto configId = mScheduler->getPreferredConfigId(); - auto preferredRefreshRate = configId - ? mRefreshRateConfigs->getRefreshRateFromConfigId(*configId) - : mRefreshRateConfigs->getMinRefreshRateByPolicy(); - ALOGV("trying to switch to Scheduler preferred config %d (%s)", - preferredRefreshRate.configId.value(), preferredRefreshRate.name.c_str()); - if (isDisplayConfigAllowed(preferredRefreshRate.configId)) { - ALOGV("switching to Scheduler preferred config %d", - preferredRefreshRate.configId.value()); - setDesiredActiveConfig( - {preferredRefreshRate.configId, Scheduler::ConfigEvent::Changed}); - } else { - // Set the highest allowed config - setDesiredActiveConfig({mRefreshRateConfigs->getMaxRefreshRateByPolicy().configId, - Scheduler::ConfigEvent::Changed}); - } + auto configId = mScheduler->getPreferredConfigId(); + auto preferredRefreshRate = configId + ? mRefreshRateConfigs->getRefreshRateFromConfigId(*configId) + // NOTE: Choose the default config ID, if Scheduler doesn't have one in mind. + : mRefreshRateConfigs->getRefreshRateFromConfigId(defaultConfig); + ALOGV("trying to switch to Scheduler preferred config %d (%s)", + preferredRefreshRate.configId.value(), preferredRefreshRate.name.c_str()); + + if (isDisplayConfigAllowed(preferredRefreshRate.configId)) { + ALOGV("switching to Scheduler preferred config %d", preferredRefreshRate.configId.value()); + setDesiredActiveConfig({preferredRefreshRate.configId, Scheduler::ConfigEvent::Changed}); } else { - ALOGV("switching to config %d", defaultConfig.value()); - setDesiredActiveConfig({defaultConfig, Scheduler::ConfigEvent::Changed}); + LOG_ALWAYS_FATAL("Desired config not allowed: %d", preferredRefreshRate.configId.value()); } return NO_ERROR; |