Loading services/surfaceflinger/Scheduler/RefreshRateSelector.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -564,7 +564,7 @@ auto RefreshRateSelector::getRankedFrameRatesLocked(const std::vector<LayerRequi continue; } const bool inPrimaryRange = policy->primaryRanges.physical.includes(modePtr->getFps()); const bool inPrimaryRange = policy->primaryRanges.render.includes(fps); if ((primaryRangeIsSingleRate || !inPrimaryRange) && !(layer.focused && (layer.vote == LayerVoteType::ExplicitDefault || Loading services/surfaceflinger/tests/unittests/RefreshRateSelectorTest.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -3026,5 +3026,21 @@ TEST_P(RefreshRateSelectorTest, frameRateIsCappedByPolicy) { EXPECT_FRAME_RATE_MODE(kMode60, 30_Hz, selector.getBestScoredFrameRate(layers).frameRateMode); } TEST_P(RefreshRateSelectorTest, frameRateNotInRange) { auto selector = createSelector(kModes_60_90, kModeId60); constexpr FpsRanges k60Only = {{60_Hz, 90_Hz}, {60_Hz, 60_Hz}}; constexpr FpsRanges kAll = {{0_Hz, 90_Hz}, {0_Hz, 90_Hz}}; EXPECT_EQ(SetPolicyResult::Changed, selector.setDisplayManagerPolicy({DisplayModeId(kModeId60), k60Only, kAll})); std::vector<LayerRequirement> layers = {{.weight = 1.f}}; layers[0].name = "Test layer"; layers[0].vote = LayerVoteType::Heuristic; layers[0].desiredRefreshRate = 45_Hz; EXPECT_FRAME_RATE_MODE(kMode60, 60_Hz, selector.getBestScoredFrameRate(layers).frameRateMode); } } // namespace } // namespace android::scheduler Loading
services/surfaceflinger/Scheduler/RefreshRateSelector.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -564,7 +564,7 @@ auto RefreshRateSelector::getRankedFrameRatesLocked(const std::vector<LayerRequi continue; } const bool inPrimaryRange = policy->primaryRanges.physical.includes(modePtr->getFps()); const bool inPrimaryRange = policy->primaryRanges.render.includes(fps); if ((primaryRangeIsSingleRate || !inPrimaryRange) && !(layer.focused && (layer.vote == LayerVoteType::ExplicitDefault || Loading
services/surfaceflinger/tests/unittests/RefreshRateSelectorTest.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -3026,5 +3026,21 @@ TEST_P(RefreshRateSelectorTest, frameRateIsCappedByPolicy) { EXPECT_FRAME_RATE_MODE(kMode60, 30_Hz, selector.getBestScoredFrameRate(layers).frameRateMode); } TEST_P(RefreshRateSelectorTest, frameRateNotInRange) { auto selector = createSelector(kModes_60_90, kModeId60); constexpr FpsRanges k60Only = {{60_Hz, 90_Hz}, {60_Hz, 60_Hz}}; constexpr FpsRanges kAll = {{0_Hz, 90_Hz}, {0_Hz, 90_Hz}}; EXPECT_EQ(SetPolicyResult::Changed, selector.setDisplayManagerPolicy({DisplayModeId(kModeId60), k60Only, kAll})); std::vector<LayerRequirement> layers = {{.weight = 1.f}}; layers[0].name = "Test layer"; layers[0].vote = LayerVoteType::Heuristic; layers[0].desiredRefreshRate = 45_Hz; EXPECT_FRAME_RATE_MODE(kMode60, 60_Hz, selector.getBestScoredFrameRate(layers).frameRateMode); } } // namespace } // namespace android::scheduler