summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2023-09-26 18:58:38 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-09-26 18:58:38 +0000
commit0b51df88c47155f68a65f4961224928ab4de3035 (patch)
treecbf5e7f702ce9c630935cbcb96be7809cc78db92
parent95f6bb966eeda68c5e1f5c3fd512a1262cd93e91 (diff)
parentd7479506dcbf82d9fc01c512fbe18c8c5d979254 (diff)
Merge "Propagate tree on setting selection strategy" into main
-rw-r--r--services/surfaceflinger/Layer.cpp2
-rw-r--r--services/surfaceflinger/tests/unittests/FrameRateSelectionStrategyTest.cpp13
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