diff options
-rw-r--r-- | services/surfaceflinger/Layer.cpp | 2 | ||||
-rw-r--r-- | services/surfaceflinger/tests/unittests/FrameRateSelectionStrategyTest.cpp | 13 |
2 files changed, 15 insertions, 0 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index e780a1e8f7..a73c5115b1 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -1352,6 +1352,8 @@ bool Layer::setFrameRateSelectionStrategy(FrameRateSelectionStrategy strategy) { mDrawingState.frameRateSelectionStrategy = strategy; mDrawingState.sequence++; mDrawingState.modified = true; + + updateTreeHasFrameRateVote(); setTransactionFlags(eTransactionNeeded); return true; } diff --git a/services/surfaceflinger/tests/unittests/FrameRateSelectionStrategyTest.cpp b/services/surfaceflinger/tests/unittests/FrameRateSelectionStrategyTest.cpp index ffe6f245b5..20ea0c080a 100644 --- a/services/surfaceflinger/tests/unittests/FrameRateSelectionStrategyTest.cpp +++ b/services/surfaceflinger/tests/unittests/FrameRateSelectionStrategyTest.cpp @@ -153,6 +153,19 @@ TEST_P(FrameRateSelectionStrategyTest, SetParentAndGet) { EXPECT_EQ(FRAME_RATE_VOTE1, layer3->getFrameRateForLayerTree()); EXPECT_EQ(FrameRateSelectionStrategy::Self, layer3->getDrawingState().frameRateSelectionStrategy); + + layer1->setFrameRateSelectionStrategy(FrameRateSelectionStrategy::Self); + commitTransaction(); + + EXPECT_EQ(FRAME_RATE_VOTE1, layer1->getFrameRateForLayerTree()); + EXPECT_EQ(FrameRateSelectionStrategy::Self, + layer1->getDrawingState().frameRateSelectionStrategy); + EXPECT_EQ(FRAME_RATE_VOTE2, layer2->getFrameRateForLayerTree()); + EXPECT_EQ(FrameRateSelectionStrategy::OverrideChildren, + layer2->getDrawingState().frameRateSelectionStrategy); + EXPECT_EQ(FRAME_RATE_VOTE2, layer3->getFrameRateForLayerTree()); + EXPECT_EQ(FrameRateSelectionStrategy::Self, + layer3->getDrawingState().frameRateSelectionStrategy); } } // namespace |