SF: stay with the current mode when all votes are NO_PREF
The current code intended to do the same, however because of
the workaround for b/266481656 it didn't.
Bug: 333443503
Test: Settings -> About Phone and observe the refresh rate indicator
Flag: EXEMPT bugfix
Change-Id: Ic48c31af6562bb29be45f1fbab4abebb2788b551
diff --git a/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp b/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp
index a20cf9a..47c8fd7 100644
--- a/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp
+++ b/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp
@@ -634,11 +634,12 @@
// If all layers are category NoPreference, use the current config.
if (noPreferenceLayers + noVoteLayers == layers.size()) {
ALOGV("All layers NoPreference");
- const auto ascendingWithPreferred =
- rankFrameRates(anchorGroup, RefreshRateOrder::Ascending, activeMode.getId());
+ constexpr float kScore = std::numeric_limits<float>::max();
+ FrameRateRanking currentMode;
+ currentMode.emplace_back(ScoredFrameRate{getActiveModeLocked(), kScore});
SFTRACE_FORMAT_INSTANT("%s (All layers NoPreference)",
- to_string(ascendingWithPreferred.front().frameRateMode.fps).c_str());
- return {ascendingWithPreferred, kNoSignals};
+ to_string(currentMode.front().frameRateMode.fps).c_str());
+ return {currentMode, kNoSignals};
}
const bool smoothSwitchOnly = categorySmoothSwitchOnlyLayers > 0;