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

Commit fc869035 authored by Zhiyin Luo (罗植尹)'s avatar Zhiyin Luo (罗植尹) Committed by Hung-ying Tyan
Browse files

fix uninitialization issue in JankTracker

We should initialize mSwapDeadline in JankTracker, or it can be a very
large randomized value and then makes jank tracker not collect concrete
jank type of frames appropriately as expected.

Bug: 161656795
Test: run cts -m CtsIncidentHostTestCases -t
   com.android.server.cts.GraphicsStatsValidationTest#testJankyDrawFrame
Change-Id: I057a50a74502918619204f9164f6a954f8e9c5de
Merged-In: I057a50a74502918619204f9164f6a954f8e9c5de
(cherry picked from commit 7a0d2247)
parent 95846eed
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -139,6 +139,9 @@ void JankTracker::finishFrame(const FrameInfo& frame) {
        (*mGlobalData)->reportJank();
    }

    if (mSwapDeadline < 0) {
        mSwapDeadline = frame[FrameInfoIndex::IntendedVsync] + mFrameInterval;
    }
    bool isTripleBuffered = (mSwapDeadline - frame[FrameInfoIndex::IntendedVsync]) > (mFrameInterval * 0.1);

    mSwapDeadline = std::max(mSwapDeadline + mFrameInterval,
+1 −1
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ private:

    std::array<int64_t, NUM_BUCKETS> mThresholds;
    int64_t mFrameInterval;
    nsecs_t mSwapDeadline;
    nsecs_t mSwapDeadline = -1;
    // The amount of time we will erase from the total duration to account
    // for SF vsync offsets with HWC2 blocking dequeueBuffers.
    // (Vsync + mDequeueBlockTolerance) is the point at which we expect