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

Commit fa67b553 authored by chaviw's avatar chaviw
Browse files

Moved desiredPresentTime for BLAST into State

Currently mDesiredPresentTime was being accessed by both main thread and
binder thread. Moved desiredPresentTime into State struct so it can be
accessed by the binder thread with current state and by the main thread
with drawing state.

Test: BLAST continues to work
Change-Id: Ib32f4fb8963549e57c15fa2eb934b30fffe67171
parent 4f17282e
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -217,10 +217,10 @@ bool BufferStateLayer::setBuffer(const sp<GraphicBuffer>& buffer, nsecs_t postTi
    setTransactionFlags(eTransactionNeeded);

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

    if (mFlinger->mUseSmart90ForVideo) {
        const nsecs_t presentTime = (mDesiredPresentTime == -1) ? 0 : mDesiredPresentTime;
        const nsecs_t presentTime = (desiredPresentTime == -1) ? 0 : desiredPresentTime;
        mFlinger->mScheduler->addLayerPresentTimeAndHDR(mSchedulerLayerHandle, presentTime,
                                                        mCurrentState.hdrMetadata.validTypes != 0);
    }
@@ -374,11 +374,11 @@ bool BufferStateLayer::framePresentTimeIsCurrent(nsecs_t expectedPresentTime) co
        return true;
    }

    return mDesiredPresentTime <= expectedPresentTime;
    return mCurrentState.desiredPresentTime <= expectedPresentTime;
}

nsecs_t BufferStateLayer::getDesiredPresentTime() {
    return mDesiredPresentTime;
    return getDrawingState().desiredPresentTime;
}

std::shared_ptr<FenceTime> BufferStateLayer::getCurrentFenceTime() const {
+0 −2
Original line number Diff line number Diff line
@@ -160,8 +160,6 @@ private:
    bool mReleasePreviousBuffer = false;
    nsecs_t mCallbackHandleAcquireTime = -1;

    nsecs_t mDesiredPresentTime = -1;

    // TODO(marissaw): support sticky transform for LEGACY camera mode

    class HwcSlotGenerator : public ClientCache::ErasedRecipient {
+1 −0
Original line number Diff line number Diff line
@@ -217,6 +217,7 @@ public:
        // recent callback handle.
        std::deque<sp<CallbackHandle>> callbackHandles;
        bool colorSpaceAgnostic;
        nsecs_t desiredPresentTime = -1;
    };

    explicit Layer(const LayerCreationArgs& args);