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

Commit 93822a05 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "scheduler_fps" into qt-dev

* changes:
  SurfaceFlinger: use std::set for DisplayConfigs
  SurfaceFlinger: better fit content to refresh rate
  SurfaceFlinger: handle wallpaper scenario in Scheduler
  SF: Updating content FPS tracking
parents 9761aa52 3bb89739
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -190,6 +190,7 @@ status_t BufferQueueConsumer::acquireBuffer(BufferItem* outBuffer,
                        desiredPresent - expectedPresent,
                        systemTime(CLOCK_MONOTONIC),
                        front->mFrameNumber, maxFrameNumber);
                ATRACE_NAME("PRESENT_LATER");
                return PRESENT_LATER;
            }

+1 −0
Original line number Diff line number Diff line
@@ -147,6 +147,7 @@ filegroup {
        "Scheduler/EventThread.cpp",
        "Scheduler/IdleTimer.cpp",
        "Scheduler/LayerHistory.cpp",
        "Scheduler/LayerInfo.cpp",
        "Scheduler/MessageQueue.cpp",
        "Scheduler/Scheduler.cpp",
        "Scheduler/SchedulerUtils.cpp",
+1 −0
Original line number Diff line number Diff line
@@ -413,6 +413,7 @@ bool BufferLayer::latchBuffer(bool& recomputeVisibleRegions, nsecs_t latchTime)
    // If the head buffer's acquire fence hasn't signaled yet, return and
    // try again later
    if (!fenceHasSignaled()) {
        ATRACE_NAME("!fenceHasSignaled()");
        mFlinger->signalLayerUpdate();
        return false;
    }
+2 −2
Original line number Diff line number Diff line
@@ -398,8 +398,8 @@ void BufferQueueLayer::onFrameAvailable(const BufferItem& item) {
    // Add this buffer from our internal queue tracker
    { // Autolock scope
        if (mFlinger->mUseSmart90ForVideo) {
            // Report mApi ID for each layer.
            mFlinger->mScheduler->addNativeWindowApi(item.mApi);
            const nsecs_t presentTime = item.mIsAutoTimestamp ? 0 : item.mTimestamp;
            mFlinger->mScheduler->addLayerPresentTime(mSchedulerLayerHandle, presentTime);
        }

        Mutex::Autolock lock(mQueueItemLock);
+11 −9
Original line number Diff line number Diff line
@@ -209,7 +209,8 @@ bool BufferStateLayer::setFrame(const Rect& frame) {
    return true;
}

bool BufferStateLayer::setBuffer(const sp<GraphicBuffer>& buffer) {
bool BufferStateLayer::setBuffer(const sp<GraphicBuffer>& buffer, nsecs_t postTime,
                                 nsecs_t desiredPresentTime) {
    if (mCurrentState.buffer) {
        mReleasePreviousBuffer = true;
    }
@@ -217,6 +218,15 @@ bool BufferStateLayer::setBuffer(const sp<GraphicBuffer>& buffer) {
    mCurrentState.buffer = buffer;
    mCurrentState.modified = true;
    setTransactionFlags(eTransactionNeeded);

    mFlinger->mTimeStats->setPostTime(getSequence(), getFrameNumber(), getName().c_str(), postTime);
    mDesiredPresentTime = desiredPresentTime;

    if (mFlinger->mUseSmart90ForVideo) {
        const nsecs_t presentTime = (mDesiredPresentTime == -1) ? 0 : mDesiredPresentTime;
        mFlinger->mScheduler->addLayerPresentTime(mSchedulerLayerHandle, presentTime);
    }

    return true;
}

@@ -348,14 +358,6 @@ FloatRect BufferStateLayer::computeSourceBounds(const FloatRect& parentBounds) c
    return parentBounds;
}

void BufferStateLayer::setPostTime(nsecs_t postTime) {
    mFlinger->mTimeStats->setPostTime(getSequence(), getFrameNumber(), getName().c_str(), postTime);
}

void BufferStateLayer::setDesiredPresentTime(nsecs_t desiredPresentTime) {
    mDesiredPresentTime = desiredPresentTime;
}

// -----------------------------------------------------------------------

// -----------------------------------------------------------------------
Loading