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

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

Merge "Mark refreshPending as false when calling the fakeVsync"

parents 13933bcc f206b66d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -167,6 +167,8 @@ protected:
    // from GLES
    const uint32_t mTextureName;

    bool mRefreshPending{false};

private:
    // Returns true if this layer requires filtering
    bool needsFiltering() const;
@@ -184,8 +186,6 @@ private:
    // The texture used to draw the layer in GLES composition mode
    mutable renderengine::Texture mTexture;

    bool mRefreshPending{false};

    Rect getBufferSize(const State& s) const override;
};

+9 −4
Original line number Diff line number Diff line
@@ -352,6 +352,14 @@ void BufferQueueLayer::setHwcLayerBuffer(DisplayId displayId) {
// Interface implementation for BufferLayerConsumer::ContentsChangedListener
// -----------------------------------------------------------------------

void BufferQueueLayer::fakeVsync() {
    mRefreshPending = false;
    bool ignored = false;
    latchBuffer(ignored, systemTime(), Fence::NO_FENCE);
    usleep(16000);
    releasePendingBuffer(systemTime());
}

void BufferQueueLayer::onFrameAvailable(const BufferItem& item) {
    // Add this buffer from our internal queue tracker
    { // Autolock scope
@@ -390,10 +398,7 @@ void BufferQueueLayer::onFrameAvailable(const BufferItem& item) {
    // If this layer is orphaned, then we run a fake vsync pulse so that
    // dequeueBuffer doesn't block indefinitely.
    if (isRemovedFromCurrentState()) {
        bool ignored = false;
        latchBuffer(ignored, systemTime(), Fence::NO_FENCE);
        usleep(16000);
        releasePendingBuffer(systemTime());
        fakeVsync();
    } else {
        mFlinger->signalLayerUpdate();
    }
+2 −0
Original line number Diff line number Diff line
@@ -137,6 +137,8 @@ private:
    // thread-safe
    std::atomic<int32_t> mQueuedFrames{0};
    std::atomic<bool> mSidebandStreamChanged{false};

    void fakeVsync();
};

} // namespace android