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

Commit 52b783f7 authored by John Reck's avatar John Reck
Browse files

INT_MAX nanoseconds is not very long

Bug: 25843358

If the time between last swap & current vsync grew larger
than 2 seconds it would overflow when placed into an int, causing
frames to be dropped as negative numbers are definitely
less than 2_ms.

Change-Id: Icd2136989e5bbf5a0e21611b95a4d515b5ff9b14
parent 1a3c1650
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -237,7 +237,7 @@ void CanvasContext::prepareTree(TreeInfo& info, int64_t* uiFrameInfo,
    if (CC_LIKELY(mSwapHistory.size())) {
        nsecs_t latestVsync = mRenderThread.timeLord().latestVsync();
        const SwapHistory& lastSwap = mSwapHistory.back();
        int vsyncDelta = std::abs(lastSwap.vsyncTime - latestVsync);
        nsecs_t vsyncDelta = std::abs(lastSwap.vsyncTime - latestVsync);
        // The slight fudge-factor is to deal with cases where
        // the vsync was estimated due to being slow handling the signal.
        // See the logic in TimeLord#computeFrameTimeNanos or in