diff options
| -rw-r--r-- | services/surfaceflinger/tests/unittests/RefreshRateConfigsTest.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/services/surfaceflinger/tests/unittests/RefreshRateConfigsTest.cpp b/services/surfaceflinger/tests/unittests/RefreshRateConfigsTest.cpp index 0b70f27781..7ace70aeef 100644 --- a/services/surfaceflinger/tests/unittests/RefreshRateConfigsTest.cpp +++ b/services/surfaceflinger/tests/unittests/RefreshRateConfigsTest.cpp @@ -1450,12 +1450,12 @@ TEST_F(RefreshRateConfigsTest, nonSeamlessExactAndSeamlessMultipleLayers) { .seamlessness = Seamlessness::OnlySeamless, .weight = 1.0f, .focused = true}}; - auto& seamedLayer = layers[0]; ASSERT_EQ(HWC_CONFIG_ID_50, refreshRateConfigs->getBestRefreshRate(layers, {.touch = false, .idle = false}) .getModeId()); + auto& seamedLayer = layers[0]; seamedLayer.name = "30Hz ExplicitDefault", seamedLayer.desiredRefreshRate = Fps(30.0f); refreshRateConfigs->setCurrentModeId(HWC_CONFIG_ID_30); @@ -1464,6 +1464,27 @@ TEST_F(RefreshRateConfigsTest, nonSeamlessExactAndSeamlessMultipleLayers) { .getModeId()); } +TEST_F(RefreshRateConfigsTest, minLayersDontTrigerSeamedSwitch) { + auto refreshRateConfigs = + std::make_unique<RefreshRateConfigs>(m60_90DeviceWithDifferentGroups, + /*currentConfigId=*/HWC_CONFIG_ID_90); + + // Allow group switching. + RefreshRateConfigs::Policy policy; + policy.defaultMode = refreshRateConfigs->getCurrentPolicy().defaultMode; + policy.allowGroupSwitching = true; + ASSERT_GE(refreshRateConfigs->setDisplayManagerPolicy(policy), 0); + + auto layers = std::vector<LayerRequirement>{LayerRequirement{.name = "Min", + .vote = LayerVoteType::Min, + .weight = 1.f, + .focused = true}}; + + ASSERT_EQ(HWC_CONFIG_ID_90, + refreshRateConfigs->getBestRefreshRate(layers, {.touch = false, .idle = false}) + .getModeId()); +} + TEST_F(RefreshRateConfigsTest, primaryVsAppRequestPolicy) { auto refreshRateConfigs = std::make_unique<RefreshRateConfigs>(m30_60_90Device, |