Merge "Revert "DO_NOT_MERGE Fix primaryRangeIsSingleRate + touch on dVRR"" into android15-tests-dev
diff --git a/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp b/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp
index 234f1cb..846727b 100644
--- a/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp
+++ b/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp
@@ -841,8 +841,7 @@
         return score.overallScore == 0;
     });
 
-    // TODO(b/364651864): Evaluate correctness of primaryRangeIsSingleRate.
-    if (!isVrrDevice() && policy->primaryRangeIsSingleRate()) {
+    if (policy->primaryRangeIsSingleRate()) {
         // If we never scored any layers, then choose the rate from the primary
         // range instead of picking a random score from the app range.
         if (noLayerScore) {
@@ -888,10 +887,10 @@
         const auto touchRefreshRates = rankFrameRates(anchorGroup, RefreshRateOrder::Descending);
         using fps_approx_ops::operator<;
 
-        if (scores.front().frameRateMode.fps <= touchRefreshRates.front().frameRateMode.fps) {
-            ALOGV("Touch Boost [late]");
+        if (scores.front().frameRateMode.fps < touchRefreshRates.front().frameRateMode.fps) {
+            ALOGV("Touch Boost");
             ATRACE_FORMAT_INSTANT("%s (Touch Boost [late])",
-                                   to_string(touchRefreshRates.front().frameRateMode.fps).c_str());
+                                  to_string(touchRefreshRates.front().frameRateMode.fps).c_str());
             return {touchRefreshRates, GlobalSignals{.touch = true}};
         }
     }
diff --git a/services/surfaceflinger/tests/unittests/RefreshRateSelectorTest.cpp b/services/surfaceflinger/tests/unittests/RefreshRateSelectorTest.cpp
index 4ffd52b..cf9a7d3 100644
--- a/services/surfaceflinger/tests/unittests/RefreshRateSelectorTest.cpp
+++ b/services/surfaceflinger/tests/unittests/RefreshRateSelectorTest.cpp
@@ -1766,43 +1766,6 @@
     }
 }
 
-TEST_P(RefreshRateSelectorTest, getBestFrameRateMode_vrrHighHintTouch_primaryRangeIsSingleRate) {
-    if (GetParam() != Config::FrameRateOverride::Enabled) {
-        return;
-    }
-
-    SET_FLAG_FOR_TEST(flags::vrr_config, true);
-
-    auto selector = createSelector(kVrrMode_120, kModeId120);
-    selector.setActiveMode(kModeId120, 60_Hz);
-
-    // Change primary physical range to be single rate, which on VRR device should not affect
-    // fps scoring.
-    EXPECT_EQ(SetPolicyResult::Changed,
-              selector.setDisplayManagerPolicy({kModeId120, {120_Hz, 120_Hz}}));
-
-    std::vector<LayerRequirement> layers = {{.weight = 1.f}, {.weight = 1.f}};
-    layers[0].vote = LayerVoteType::ExplicitCategory;
-    layers[0].frameRateCategory = FrameRateCategory::HighHint;
-    layers[0].name = "ExplicitCategory HighHint";
-
-    auto actualRankedFrameRates = selector.getRankedFrameRates(layers);
-    // Expect late touch boost from HighHint.
-    EXPECT_EQ(120_Hz, actualRankedFrameRates.ranking.front().frameRateMode.fps);
-    EXPECT_EQ(kModeId120, actualRankedFrameRates.ranking.front().frameRateMode.modePtr->getId());
-    EXPECT_TRUE(actualRankedFrameRates.consideredSignals.touch);
-
-    layers[1].vote = LayerVoteType::ExplicitExactOrMultiple;
-    layers[1].desiredRefreshRate = 30_Hz;
-    layers[1].name = "ExplicitExactOrMultiple 30Hz";
-
-    actualRankedFrameRates = selector.getRankedFrameRates(layers);
-    // Expect late touch boost from HighHint.
-    EXPECT_EQ(120_Hz, actualRankedFrameRates.ranking.front().frameRateMode.fps);
-    EXPECT_EQ(kModeId120, actualRankedFrameRates.ranking.front().frameRateMode.modePtr->getId());
-    EXPECT_TRUE(actualRankedFrameRates.consideredSignals.touch);
-}
-
 TEST_P(RefreshRateSelectorTest, getBestFrameRateMode_withFrameRateCategory_HighHint) {
     auto selector = createSelector(makeModes(kMode24, kMode30, kMode60, kMode120), kModeId60);
 
@@ -1921,7 +1884,7 @@
     // Gets touch boost
     EXPECT_EQ(120_Hz, actualRankedFrameRates.ranking.front().frameRateMode.fps);
     EXPECT_EQ(kModeId120, actualRankedFrameRates.ranking.front().frameRateMode.modePtr->getId());
-    EXPECT_TRUE(actualRankedFrameRates.consideredSignals.touch);
+    EXPECT_FALSE(actualRankedFrameRates.consideredSignals.touch);
 }
 
 TEST_P(RefreshRateSelectorTest, getBestFrameRateMode_withFrameRateCategory_TouchBoost) {
@@ -2015,7 +1978,7 @@
     lr2.name = "Max";
     actualRankedFrameRates = selector.getRankedFrameRates(layers, {.touch = true});
     EXPECT_FRAME_RATE_MODE(kMode120, 120_Hz, actualRankedFrameRates.ranking.front().frameRateMode);
-    EXPECT_TRUE(actualRankedFrameRates.consideredSignals.touch);
+    EXPECT_FALSE(actualRankedFrameRates.consideredSignals.touch);
 
     lr1.vote = LayerVoteType::ExplicitCategory;
     lr1.frameRateCategory = FrameRateCategory::Normal;