diff options
Diffstat (limited to 'services')
| -rw-r--r-- | services/surfaceflinger/Scheduler/RefreshRateSelector.cpp | 9 | ||||
| -rw-r--r-- | services/surfaceflinger/tests/unittests/RefreshRateSelectorTest.cpp | 41 |
2 files changed, 6 insertions, 44 deletions
diff --git a/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp b/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp index 234f1cb97f..846727b1d5 100644 --- a/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp +++ b/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp @@ -841,8 +841,7 @@ auto RefreshRateSelector::getRankedFrameRatesLocked(const std::vector<LayerRequi return score.overallScore == 0; }); - // TODO(b/364651864): Evaluate correctness of primaryRangeIsSingleRate. - if (!isVrrDevice() && policy->primaryRangeIsSingleRate()) { + if (policy->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 (noLayerScore) { @@ -888,10 +887,10 @@ auto RefreshRateSelector::getRankedFrameRatesLocked(const std::vector<LayerRequi const auto touchRefreshRates = rankFrameRates(anchorGroup, RefreshRateOrder::Descending); using fps_approx_ops::operator<; - if (scores.front().frameRateMode.fps <= touchRefreshRates.front().frameRateMode.fps) { - ALOGV("Touch Boost [late]"); + if (scores.front().frameRateMode.fps < touchRefreshRates.front().frameRateMode.fps) { + ALOGV("Touch Boost"); ATRACE_FORMAT_INSTANT("%s (Touch Boost [late])", - to_string(touchRefreshRates.front().frameRateMode.fps).c_str()); + to_string(touchRefreshRates.front().frameRateMode.fps).c_str()); return {touchRefreshRates, GlobalSignals{.touch = true}}; } } diff --git a/services/surfaceflinger/tests/unittests/RefreshRateSelectorTest.cpp b/services/surfaceflinger/tests/unittests/RefreshRateSelectorTest.cpp index 4ffd52b607..cf9a7d3e69 100644 --- a/services/surfaceflinger/tests/unittests/RefreshRateSelectorTest.cpp +++ b/services/surfaceflinger/tests/unittests/RefreshRateSelectorTest.cpp @@ -1766,43 +1766,6 @@ TEST_P(RefreshRateSelectorTest, getBestFrameRateMode_withFrameRateCategory_60_12 } } -TEST_P(RefreshRateSelectorTest, getBestFrameRateMode_vrrHighHintTouch_primaryRangeIsSingleRate) { - if (GetParam() != Config::FrameRateOverride::Enabled) { - return; - } - - SET_FLAG_FOR_TEST(flags::vrr_config, true); - - auto selector = createSelector(kVrrMode_120, kModeId120); - selector.setActiveMode(kModeId120, 60_Hz); - - // Change primary physical range to be single rate, which on VRR device should not affect - // fps scoring. - EXPECT_EQ(SetPolicyResult::Changed, - selector.setDisplayManagerPolicy({kModeId120, {120_Hz, 120_Hz}})); - - std::vector<LayerRequirement> layers = {{.weight = 1.f}, {.weight = 1.f}}; - layers[0].vote = LayerVoteType::ExplicitCategory; - layers[0].frameRateCategory = FrameRateCategory::HighHint; - layers[0].name = "ExplicitCategory HighHint"; - - auto actualRankedFrameRates = selector.getRankedFrameRates(layers); - // Expect late touch boost from HighHint. - EXPECT_EQ(120_Hz, actualRankedFrameRates.ranking.front().frameRateMode.fps); - EXPECT_EQ(kModeId120, actualRankedFrameRates.ranking.front().frameRateMode.modePtr->getId()); - EXPECT_TRUE(actualRankedFrameRates.consideredSignals.touch); - - layers[1].vote = LayerVoteType::ExplicitExactOrMultiple; - layers[1].desiredRefreshRate = 30_Hz; - layers[1].name = "ExplicitExactOrMultiple 30Hz"; - - actualRankedFrameRates = selector.getRankedFrameRates(layers); - // Expect late touch boost from HighHint. - EXPECT_EQ(120_Hz, actualRankedFrameRates.ranking.front().frameRateMode.fps); - EXPECT_EQ(kModeId120, actualRankedFrameRates.ranking.front().frameRateMode.modePtr->getId()); - EXPECT_TRUE(actualRankedFrameRates.consideredSignals.touch); -} - TEST_P(RefreshRateSelectorTest, getBestFrameRateMode_withFrameRateCategory_HighHint) { auto selector = createSelector(makeModes(kMode24, kMode30, kMode60, kMode120), kModeId60); @@ -1921,7 +1884,7 @@ TEST_P(RefreshRateSelectorTest, getBestFrameRateMode_withFrameRateCategory_HighH // Gets touch boost EXPECT_EQ(120_Hz, actualRankedFrameRates.ranking.front().frameRateMode.fps); EXPECT_EQ(kModeId120, actualRankedFrameRates.ranking.front().frameRateMode.modePtr->getId()); - EXPECT_TRUE(actualRankedFrameRates.consideredSignals.touch); + EXPECT_FALSE(actualRankedFrameRates.consideredSignals.touch); } TEST_P(RefreshRateSelectorTest, getBestFrameRateMode_withFrameRateCategory_TouchBoost) { @@ -2015,7 +1978,7 @@ TEST_P(RefreshRateSelectorTest, getBestFrameRateMode_withFrameRateCategory_Touch lr2.name = "Max"; actualRankedFrameRates = selector.getRankedFrameRates(layers, {.touch = true}); EXPECT_FRAME_RATE_MODE(kMode120, 120_Hz, actualRankedFrameRates.ranking.front().frameRateMode); - EXPECT_TRUE(actualRankedFrameRates.consideredSignals.touch); + EXPECT_FALSE(actualRankedFrameRates.consideredSignals.touch); lr1.vote = LayerVoteType::ExplicitCategory; lr1.frameRateCategory = FrameRateCategory::Normal; |