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

Commit 01201564 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "SF: Fix ADPF regression due to wrong present fence" into udc-dev

parents 19a4a081 61dfca4b
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -2674,12 +2674,15 @@ void SurfaceFlinger::composite(TimePoint frameTime, VsyncId vsyncId)

    mTimeStats->recordFrameDuration(frameTime.ns(), systemTime());

    // Send a power hint hint after presentation is finished
    // Send a power hint after presentation is finished.
    if (mPowerHintSessionEnabled) {
        const nsecs_t pastPresentTime =
                getPreviousPresentFence(frameTime, vsyncPeriod)->getSignalTime();
        // Now that the current frame has been presented above, PowerAdvisor needs the present time
        // of the previous frame (whose fence is signaled by now) to determine how long the HWC had
        // waited on that fence to retire before presenting.
        const auto& previousPresentFence = mPreviousPresentFences[0].fenceTime;

        mPowerAdvisor->setSfPresentTiming(TimePoint::fromNs(pastPresentTime), TimePoint::now());
        mPowerAdvisor->setSfPresentTiming(TimePoint::fromNs(previousPresentFence->getSignalTime()),
                                          TimePoint::now());
        mPowerAdvisor->reportActualWorkDuration();
    }