Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fbda585f authored by Ady Abraham's avatar Ady Abraham Committed by Automerger Merge Worker
Browse files

Merge "SF: use render rates when checking if allowed by policy" into udc-dev am: 9e6f1ea8

parents 5384ab96 9e6f1ea8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -564,7 +564,7 @@ auto RefreshRateSelector::getRankedFrameRatesLocked(const std::vector<LayerRequi
                continue;
            }

            const bool inPrimaryRange = policy->primaryRanges.physical.includes(modePtr->getFps());
            const bool inPrimaryRange = policy->primaryRanges.render.includes(fps);
            if ((primaryRangeIsSingleRate || !inPrimaryRange) &&
                !(layer.focused &&
                  (layer.vote == LayerVoteType::ExplicitDefault ||
+16 −0
Original line number Diff line number Diff line
@@ -3026,5 +3026,21 @@ TEST_P(RefreshRateSelectorTest, frameRateIsCappedByPolicy) {
    EXPECT_FRAME_RATE_MODE(kMode60, 30_Hz, selector.getBestScoredFrameRate(layers).frameRateMode);
}

TEST_P(RefreshRateSelectorTest, frameRateNotInRange) {
    auto selector = createSelector(kModes_60_90, kModeId60);

    constexpr FpsRanges k60Only = {{60_Hz, 90_Hz}, {60_Hz, 60_Hz}};
    constexpr FpsRanges kAll = {{0_Hz, 90_Hz}, {0_Hz, 90_Hz}};

    EXPECT_EQ(SetPolicyResult::Changed,
              selector.setDisplayManagerPolicy({DisplayModeId(kModeId60), k60Only, kAll}));

    std::vector<LayerRequirement> layers = {{.weight = 1.f}};
    layers[0].name = "Test layer";
    layers[0].vote = LayerVoteType::Heuristic;
    layers[0].desiredRefreshRate = 45_Hz;
    EXPECT_FRAME_RATE_MODE(kMode60, 60_Hz, selector.getBestScoredFrameRate(layers).frameRateMode);
}

} // namespace
} // namespace android::scheduler