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

Commit a9dd23b1 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "[SurfaceFlinger] Add refresh rate counts to TimeStats" into rvc-dev am:...

Merge "[SurfaceFlinger] Add refresh rate counts to TimeStats" into rvc-dev am: 4e2936c2 am: c412ece9

Change-Id: Ifd03583fa4f5b160224c2905f941d547ecd1ea37
parents 809f5e15 c412ece9
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -993,6 +993,9 @@ void SurfaceFlinger::setActiveConfigInternal() {
        return;
    }

    auto& oldRefreshRate =
            mRefreshRateConfigs->getRefreshRateFromConfigId(display->getActiveConfig());

    std::lock_guard<std::mutex> lock(mActiveConfigLock);
    mRefreshRateConfigs->setCurrentConfigId(mUpcomingActiveConfig.configId);
    mRefreshRateStats->setConfigMode(mUpcomingActiveConfig.configId);
@@ -1000,6 +1003,9 @@ void SurfaceFlinger::setActiveConfigInternal() {

    auto& refreshRate =
            mRefreshRateConfigs->getRefreshRateFromConfigId(mUpcomingActiveConfig.configId);
    if (refreshRate.vsyncPeriod != oldRefreshRate.vsyncPeriod) {
        mTimeStats->incrementRefreshRateSwitches();
    }
    mPhaseConfiguration->setRefreshRateFps(refreshRate.fps);
    mVSyncModulator->setPhaseOffsets(mPhaseConfiguration->getCurrentOffsets());
    ATRACE_INT("ActiveConfigFPS", refreshRate.fps);
+10 −0
Original line number Diff line number Diff line
@@ -281,6 +281,15 @@ void TimeStats::incrementClientCompositionReusedFrames() {
    mTimeStats.clientCompositionReusedFrames++;
}

void TimeStats::incrementRefreshRateSwitches() {
    if (!mEnabled.load()) return;

    ATRACE_CALL();

    std::lock_guard<std::mutex> lock(mMutex);
    mTimeStats.refreshRateSwitches++;
}

void TimeStats::recordDisplayEventConnectionCount(int32_t count) {
    if (!mEnabled.load()) return;

@@ -834,6 +843,7 @@ void TimeStats::clearGlobalLocked() {
    mTimeStats.missedFrames = 0;
    mTimeStats.clientCompositionFrames = 0;
    mTimeStats.clientCompositionReusedFrames = 0;
    mTimeStats.refreshRateSwitches = 0;
    mTimeStats.displayEventConnectionsCount = 0;
    mTimeStats.displayOnTime = 0;
    mTimeStats.presentToPresent.hist.clear();
+3 −0
Original line number Diff line number Diff line
@@ -52,6 +52,8 @@ public:
    virtual void incrementMissedFrames() = 0;
    virtual void incrementClientCompositionFrames() = 0;
    virtual void incrementClientCompositionReusedFrames() = 0;
    // Increments the number of times the display refresh rate changed.
    virtual void incrementRefreshRateSwitches() = 0;
    // Records the most up-to-date count of display event connections.
    // The stored count will be the maximum ever recoded.
    virtual void recordDisplayEventConnectionCount(int32_t count) = 0;
@@ -215,6 +217,7 @@ public:
    void incrementMissedFrames() override;
    void incrementClientCompositionFrames() override;
    void incrementClientCompositionReusedFrames() override;
    void incrementRefreshRateSwitches() override;
    void recordDisplayEventConnectionCount(int32_t count) override;

    void recordFrameDuration(nsecs_t startTime, nsecs_t endTime) override;
+1 −0
Original line number Diff line number Diff line
@@ -105,6 +105,7 @@ std::string TimeStatsHelper::TimeStatsGlobal::toString(std::optional<uint32_t> m
    StringAppendF(&result, "missedFrames = %d\n", missedFrames);
    StringAppendF(&result, "clientCompositionFrames = %d\n", clientCompositionFrames);
    StringAppendF(&result, "clientCompositionReusedFrames = %d\n", clientCompositionReusedFrames);
    StringAppendF(&result, "refreshRateSwitches = %d\n", refreshRateSwitches);
    StringAppendF(&result, "displayOnTime = %" PRId64 " ms\n", displayOnTime);
    StringAppendF(&result, "displayConfigStats is as below:\n");
    for (const auto& [fps, duration] : refreshRateStats) {
+1 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ public:
        int32_t missedFrames = 0;
        int32_t clientCompositionFrames = 0;
        int32_t clientCompositionReusedFrames = 0;
        int32_t refreshRateSwitches = 0;
        int32_t displayEventConnectionsCount = 0;
        int64_t displayOnTime = 0;
        Histogram presentToPresent;
Loading