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

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

Merge "Ensure that expected present time is in the future" into sc-dev am:...

Merge "Ensure that expected present time is in the future" into sc-dev am: 3a532048 am: 9035e59e

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie5f2d505caeb87ebf279e94bd5537d9e93a3d0b4
parents ce0ef777 9035e59e
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -1770,8 +1770,15 @@ void SurfaceFlinger::onMessageInvalidate(int64_t vsyncId, nsecs_t expectedVSyncT
    // calculate the expected present time once and use the cached
    // value throughout this frame to make sure all layers are
    // seeing this same value.
    const nsecs_t lastExpectedPresentTime = mExpectedPresentTime.load();
    if (expectedVSyncTime >= frameStart) {
        mExpectedPresentTime = expectedVSyncTime;
    } else {
        const DisplayStatInfo stats = mScheduler->getDisplayStatInfo(frameStart);
        mExpectedPresentTime = calculateExpectedPresentTime(stats);
    }

    const nsecs_t lastScheduledPresentTime = mScheduledPresentTime;
    mScheduledPresentTime = expectedVSyncTime;

    // When Backpressure propagation is enabled we want to give a small grace period
    // for the present fence to fire instead of just giving up on this frame to handle cases
@@ -1797,7 +1804,7 @@ void SurfaceFlinger::onMessageInvalidate(int64_t vsyncId, nsecs_t expectedVSyncT
    const TracedOrdinal<bool> frameMissed = {"PrevFrameMissed",
                                             framePending ||
                                                     (previousPresentTime >= 0 &&
                                                      (lastExpectedPresentTime <
                                                      (lastScheduledPresentTime <
                                                       previousPresentTime - frameMissedSlop))};
    const TracedOrdinal<bool> hwcFrameMissed = {"PrevHwcFrameMissed",
                                                mHadDeviceComposition && frameMissed};
+1 −0
Original line number Diff line number Diff line
@@ -1229,6 +1229,7 @@ private:
    std::unique_ptr<scheduler::RefreshRateStats> mRefreshRateStats;

    std::atomic<nsecs_t> mExpectedPresentTime = 0;
    nsecs_t mScheduledPresentTime = 0;
    hal::Vsync mHWCVsyncPendingState = hal::Vsync::DISABLE;

    std::mutex mActiveConfigLock;