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

Commit 2121b937 authored by Dan Stoza's avatar Dan Stoza Committed by Android Git Automerger
Browse files

am 04eeb288: am 50be1df7: Merge "SF: Track missed frames and optionally drop them" into mnc-dr-dev

* commit '04eeb288':
  SF: Track missed frames and optionally drop them
parents da7645d6 04eeb288
Loading
Loading
Loading
Loading
+28 −6
Original line number Diff line number Diff line
@@ -163,6 +163,9 @@ SurfaceFlinger::SurfaceFlinger()
    property_get("ro.bq.gpu_to_cpu_unsupported", value, "0");
    mGpuToCpuSupported = !atoi(value);

    property_get("debug.sf.drop_missed_frames", value, "0");
    mDropMissedFrames = atoi(value);

    property_get("debug.sf.showupdates", value, "0");
    mDebugRegion = atoi(value);

@@ -919,6 +922,22 @@ bool SurfaceFlinger::handleMessageInvalidate() {

void SurfaceFlinger::handleMessageRefresh() {
    ATRACE_CALL();

    static nsecs_t previousExpectedPresent = 0;
    nsecs_t expectedPresent = mPrimaryDispSync.computeNextRefresh(0);
    static bool previousFrameMissed = false;
    bool frameMissed = (expectedPresent == previousExpectedPresent);
    if (frameMissed != previousFrameMissed) {
        ATRACE_INT("FrameMissed", static_cast<int>(frameMissed));
    }
    previousFrameMissed = frameMissed;

    if (CC_UNLIKELY(mDropMissedFrames && frameMissed)) {
        // Latch buffers, but don't send anything to HWC, then signal another
        // wakeup for the next vsync
        preComposition();
        repaintEverything();
    } else {
        preComposition();
        rebuildLayerStacks();
        setUpHWComposer();
@@ -927,6 +946,9 @@ void SurfaceFlinger::handleMessageRefresh() {
        postComposition();
    }

    previousExpectedPresent = mPrimaryDispSync.computeNextRefresh(0);
}

void SurfaceFlinger::doDebugFlashRegions()
{
    // is debugging enabled
+1 −0
Original line number Diff line number Diff line
@@ -445,6 +445,7 @@ private:
    RenderEngine* mRenderEngine;
    nsecs_t mBootTime;
    bool mGpuToCpuSupported;
    bool mDropMissedFrames;
    sp<EventThread> mEventThread;
    sp<EventThread> mSFEventThread;
    sp<EventControlThread> mEventControlThread;