diff options
author | 2023-09-26 18:58:38 +0000 | |
---|---|---|
committer | 2023-09-26 18:58:38 +0000 | |
commit | 0b51df88c47155f68a65f4961224928ab4de3035 (patch) | |
tree | cbf5e7f702ce9c630935cbcb96be7809cc78db92 | |
parent | 95f6bb966eeda68c5e1f5c3fd512a1262cd93e91 (diff) | |
parent | d7479506dcbf82d9fc01c512fbe18c8c5d979254 (diff) |
Merge "Propagate tree on setting selection strategy" into main
-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 |