diff options
Diffstat (limited to 'services/surfaceflinger/Scheduler/RefreshRateConfigs.cpp')
-rw-r--r-- | services/surfaceflinger/Scheduler/RefreshRateConfigs.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/services/surfaceflinger/Scheduler/RefreshRateConfigs.cpp b/services/surfaceflinger/Scheduler/RefreshRateConfigs.cpp index d128fefda9..2fc48754e9 100644 --- a/services/surfaceflinger/Scheduler/RefreshRateConfigs.cpp +++ b/services/surfaceflinger/Scheduler/RefreshRateConfigs.cpp @@ -467,7 +467,14 @@ auto RefreshRateConfigs::getBestRefreshRateLocked(const std::vector<LayerRequire ? getMaxScoreRefreshRate(scores.rbegin(), scores.rend()) : getMaxScoreRefreshRate(scores.begin(), scores.end()); - if (primaryRangeIsSingleRate) { + bool noFpsScored = std::all_of(scores.begin(), scores.end(), + [](RefreshRateScore score) { return score.score == 0; }); + if (noFpsScored) { + ALOGV("No fps scored - choose %s", to_string(mActiveModeIt->second->getFps()).c_str()); + return {mActiveModeIt->second, kNoSignals}; + } + + if (primaryRangeIsSingleRate) { // If we never scored any layers, then choose the rate from the primary // range instead of picking a random score from the app range. if (std::all_of(scores.begin(), scores.end(), |