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

Commit 62c8bd11 authored by Alec Mouri's avatar Alec Mouri
Browse files

Set refresh rate stats correctly on SF initialization.

Otherwise when peak refresh rate is disabled we incorrectly report that
the device is running at 90hz.

Bug: 129015309
Test: dumpsys
Change-Id: I426720949332ab702b0712a4fc14ed588be54ad9
parent b818fa6e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -147,7 +147,7 @@ private:
    // Aggregate refresh rate statistics for telemetry.
    std::shared_ptr<TimeStats> mTimeStats;

    int64_t mCurrentConfigMode = 0;
    int64_t mCurrentConfigMode = SCREEN_OFF_CONFIG_ID;
    int32_t mCurrentPowerMode = HWC_POWER_MODE_OFF;

    std::unordered_map<int /* power mode */, int64_t /* duration in ms */> mConfigModesTotalTime;
+1 −0
Original line number Diff line number Diff line
@@ -738,6 +738,7 @@ void SurfaceFlinger::init() {
    mRefreshRateStats =
            std::make_unique<scheduler::RefreshRateStats>(mRefreshRateConfigs[*display->getId()],
                                                          mTimeStats);
    mRefreshRateStats->setConfigMode(getHwComposer().getActiveConfigIndex(*display->getId()));

    ALOGV("Done initializing");
}
+2 −0
Original line number Diff line number Diff line
@@ -109,6 +109,7 @@ TEST_F(RefreshRateStatsTest, oneConfigTest) {
    EXPECT_LT(screenOff, times["ScreenOff"]);
    EXPECT_EQ(0, times["90fps"]);

    mRefreshRateStats->setConfigMode(CONFIG_ID_90);
    mRefreshRateStats->setPowerMode(HWC_POWER_MODE_NORMAL);
    screenOff = mRefreshRateStats->getTotalTimes()["ScreenOff"];
    std::this_thread::sleep_for(std::chrono::milliseconds(2));
@@ -172,6 +173,7 @@ TEST_F(RefreshRateStatsTest, twoConfigsTest) {
    EXPECT_EQ(sixty, times["60fps"]);
    EXPECT_EQ(ninety, times["90fps"]);

    mRefreshRateStats->setConfigMode(CONFIG_ID_90);
    mRefreshRateStats->setPowerMode(HWC_POWER_MODE_NORMAL);
    screenOff = mRefreshRateStats->getTotalTimes()["ScreenOff"];
    std::this_thread::sleep_for(std::chrono::milliseconds(2));