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

Commit fbcca043 authored by Yiwei Zhang's avatar Yiwei Zhang Committed by Android (Google) Code Review
Browse files

Merge "SF TimeStats: fix missed frame logic" into pi-dev

parents 1fa21edf 621f9d47
Loading
Loading
Loading
Loading
+5 −6
Original line number Original line Diff line number Diff line
@@ -1471,13 +1471,12 @@ void SurfaceFlinger::onMessageReceived(int32_t what) {
                    (mPreviousPresentFence->getSignalTime() ==
                    (mPreviousPresentFence->getSignalTime() ==
                            Fence::SIGNAL_TIME_PENDING);
                            Fence::SIGNAL_TIME_PENDING);
            ATRACE_INT("FrameMissed", static_cast<int>(frameMissed));
            ATRACE_INT("FrameMissed", static_cast<int>(frameMissed));
            if (mPropagateBackpressure && frameMissed) {
            if (frameMissed) {
                mTimeStats.incrementMissedFrames(true);
                mTimeStats.incrementMissedFrames();
                if (mPropagateBackpressure) {
                    signalLayerUpdate();
                    signalLayerUpdate();
                    break;
                    break;
                }
                }
            if (frameMissed) {
                mTimeStats.incrementMissedFrames(false);
            }
            }


            // Now that we're going to make it to the handleMessageTransaction()
            // Now that we're going to make it to the handleMessageTransaction()
+1 −4
Original line number Original line Diff line number Diff line
@@ -87,15 +87,12 @@ void TimeStats::incrementTotalFrames() {
    timeStats.totalFrames++;
    timeStats.totalFrames++;
}
}


void TimeStats::incrementMissedFrames(bool propagateBackpressure) {
void TimeStats::incrementMissedFrames() {
    if (!mEnabled.load()) return;
    if (!mEnabled.load()) return;


    ATRACE_CALL();
    ATRACE_CALL();


    std::lock_guard<std::mutex> lock(mMutex);
    std::lock_guard<std::mutex> lock(mMutex);
    if (propagateBackpressure) {
        timeStats.totalFrames--;
    }
    timeStats.missedFrames++;
    timeStats.missedFrames++;
}
}


+1 −1
Original line number Original line Diff line number Diff line
@@ -64,7 +64,7 @@ public:
    static TimeStats& getInstance();
    static TimeStats& getInstance();
    void parseArgs(bool asProto, const Vector<String16>& args, size_t& index, String8& result);
    void parseArgs(bool asProto, const Vector<String16>& args, size_t& index, String8& result);
    void incrementTotalFrames();
    void incrementTotalFrames();
    void incrementMissedFrames(bool propagateBackpressure);
    void incrementMissedFrames();
    void incrementClientCompositionFrames();
    void incrementClientCompositionFrames();


    void setPostTime(const std::string& layerName, uint64_t frameNumber, nsecs_t postTime);
    void setPostTime(const std::string& layerName, uint64_t frameNumber, nsecs_t postTime);