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

Commit ef45e283 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

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

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

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/23353722



Change-Id: I42bee930b007494e9591bfee04704443d599c9c0
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 714c448c 20e87419
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();
    }