Loading libs/gui/BLASTBufferQueue.cpp +4 −6 Original line number Diff line number Diff line Loading @@ -189,13 +189,13 @@ void BLASTBufferQueue::transactionCallback(nsecs_t /*latchTime*/, const sp<Fence mPendingReleaseItem.item = std::move(mSubmitted.front()); mSubmitted.pop(); processNextBufferLocked(); processNextBufferLocked(false); mCallbackCV.notify_all(); decStrong((void*)transactionCallbackThunk); } void BLASTBufferQueue::processNextBufferLocked() { void BLASTBufferQueue::processNextBufferLocked(bool useNextTransaction) { ATRACE_CALL(); if (mNumFrameAvailable == 0 || mNumAcquired == MAX_ACQUIRED_BUFFERS + 1) { return; Loading @@ -209,7 +209,7 @@ void BLASTBufferQueue::processNextBufferLocked() { SurfaceComposerClient::Transaction localTransaction; bool applyTransaction = true; SurfaceComposerClient::Transaction* t = &localTransaction; if (mNextTransaction != nullptr && mUseNextTransaction) { if (mNextTransaction != nullptr && useNextTransaction) { t = mNextTransaction; mNextTransaction = nullptr; applyTransaction = false; Loading Loading @@ -274,16 +274,14 @@ void BLASTBufferQueue::onFrameAvailable(const BufferItem& /*item*/) { while (mNumFrameAvailable > 0 || mNumAcquired == MAX_ACQUIRED_BUFFERS + 1) { mCallbackCV.wait(_lock); } mUseNextTransaction = true; } // add to shadow queue mNumFrameAvailable++; processNextBufferLocked(); processNextBufferLocked(true); } void BLASTBufferQueue::setNextTransaction(SurfaceComposerClient::Transaction* t) { std::lock_guard _lock{mMutex}; mUseNextTransaction = false; mNextTransaction = t; } Loading libs/gui/include/gui/BLASTBufferQueue.h +1 −3 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ private: BLASTBufferQueue& operator = (const BLASTBufferQueue& rhs); BLASTBufferQueue(const BLASTBufferQueue& rhs); void processNextBufferLocked() REQUIRES(mMutex); void processNextBufferLocked(bool useNextTransaction) REQUIRES(mMutex); Rect computeCrop(const BufferItem& item); sp<SurfaceControl> mSurfaceControl; Loading Loading @@ -123,8 +123,6 @@ private: sp<BLASTBufferItemConsumer> mBufferItemConsumer; SurfaceComposerClient::Transaction* mNextTransaction GUARDED_BY(mMutex); bool mUseNextTransaction = false; }; } // namespace android Loading Loading
libs/gui/BLASTBufferQueue.cpp +4 −6 Original line number Diff line number Diff line Loading @@ -189,13 +189,13 @@ void BLASTBufferQueue::transactionCallback(nsecs_t /*latchTime*/, const sp<Fence mPendingReleaseItem.item = std::move(mSubmitted.front()); mSubmitted.pop(); processNextBufferLocked(); processNextBufferLocked(false); mCallbackCV.notify_all(); decStrong((void*)transactionCallbackThunk); } void BLASTBufferQueue::processNextBufferLocked() { void BLASTBufferQueue::processNextBufferLocked(bool useNextTransaction) { ATRACE_CALL(); if (mNumFrameAvailable == 0 || mNumAcquired == MAX_ACQUIRED_BUFFERS + 1) { return; Loading @@ -209,7 +209,7 @@ void BLASTBufferQueue::processNextBufferLocked() { SurfaceComposerClient::Transaction localTransaction; bool applyTransaction = true; SurfaceComposerClient::Transaction* t = &localTransaction; if (mNextTransaction != nullptr && mUseNextTransaction) { if (mNextTransaction != nullptr && useNextTransaction) { t = mNextTransaction; mNextTransaction = nullptr; applyTransaction = false; Loading Loading @@ -274,16 +274,14 @@ void BLASTBufferQueue::onFrameAvailable(const BufferItem& /*item*/) { while (mNumFrameAvailable > 0 || mNumAcquired == MAX_ACQUIRED_BUFFERS + 1) { mCallbackCV.wait(_lock); } mUseNextTransaction = true; } // add to shadow queue mNumFrameAvailable++; processNextBufferLocked(); processNextBufferLocked(true); } void BLASTBufferQueue::setNextTransaction(SurfaceComposerClient::Transaction* t) { std::lock_guard _lock{mMutex}; mUseNextTransaction = false; mNextTransaction = t; } Loading
libs/gui/include/gui/BLASTBufferQueue.h +1 −3 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ private: BLASTBufferQueue& operator = (const BLASTBufferQueue& rhs); BLASTBufferQueue(const BLASTBufferQueue& rhs); void processNextBufferLocked() REQUIRES(mMutex); void processNextBufferLocked(bool useNextTransaction) REQUIRES(mMutex); Rect computeCrop(const BufferItem& item); sp<SurfaceControl> mSurfaceControl; Loading Loading @@ -123,8 +123,6 @@ private: sp<BLASTBufferItemConsumer> mBufferItemConsumer; SurfaceComposerClient::Transaction* mNextTransaction GUARDED_BY(mMutex); bool mUseNextTransaction = false; }; } // namespace android Loading