From 8f71501b795d3891279e4930b879856b56c12429 Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Wed, 24 Jul 2024 15:31:03 -0500 Subject: Fix BufferReleaseChannel flagging. Bug: 294133380 Test: presubmits Flag: com.android.graphics.libgui.flags.buffer_release_channel Change-Id: Iad39b9eb77b57e32521f7ba447a66510967c8209 --- libs/gui/BLASTBufferQueue.cpp | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) (limited to 'libs/gui/BLASTBufferQueue.cpp') diff --git a/libs/gui/BLASTBufferQueue.cpp b/libs/gui/BLASTBufferQueue.cpp index f13d499b50..767f3e8c16 100644 --- a/libs/gui/BLASTBufferQueue.cpp +++ b/libs/gui/BLASTBufferQueue.cpp @@ -525,7 +525,9 @@ void BLASTBufferQueue::releaseBuffer(const ReleaseCallbackId& callbackId, } mNumAcquired--; updateDequeueShouldBlockLocked(); - mBufferReleaseReader->interruptBlockingRead(); + if (mBufferReleaseReader) { + mBufferReleaseReader->interruptBlockingRead(); + } BBQ_TRACE("frame=%" PRIu64, callbackId.framenumber); BQA_LOGV("released %s", callbackId.to_string().c_str()); mBufferItemConsumer->releaseBuffer(it->second, releaseFence); @@ -857,7 +859,10 @@ void BLASTBufferQueue::onFrameCancelled(const uint64_t bufferId) { mNumDequeued--; updateDequeueShouldBlockLocked(); } - mBufferReleaseReader->interruptBlockingRead(); + + if (mBufferReleaseReader) { + mBufferReleaseReader->interruptBlockingRead(); + } }; bool BLASTBufferQueue::syncNextTransaction( @@ -1191,7 +1196,10 @@ public: bbq->mSubmitted.clear(); bbq->updateDequeueShouldBlockLocked(); } - bbq->mBufferReleaseReader->interruptBlockingRead(); + + if (bbq->mBufferReleaseReader) { + bbq->mBufferReleaseReader->interruptBlockingRead(); + } return OK; } @@ -1215,7 +1223,10 @@ public: bbq->mMaxDequeuedBuffers = maxDequeuedBufferCount; bbq->updateDequeueShouldBlockLocked(); } - bbq->mBufferReleaseReader->interruptBlockingRead(); + + if (bbq->mBufferReleaseReader) { + bbq->mBufferReleaseReader->interruptBlockingRead(); + } size_t newFrameHistorySize = maxBufferCount + 2; // +2 because triple buffer rendering // optimize away resizing the frame history unless it will grow @@ -1251,7 +1262,9 @@ public: bbq->updateDequeueShouldBlockLocked(); } - bbq->mBufferReleaseReader->interruptBlockingRead(); + if (bbq->mBufferReleaseReader) { + bbq->mBufferReleaseReader->interruptBlockingRead(); + } return NO_ERROR; } @@ -1272,7 +1285,9 @@ public: bbq->updateDequeueShouldBlockLocked(); } - bbq->mBufferReleaseReader->interruptBlockingRead(); + if (bbq->mBufferReleaseReader) { + bbq->mBufferReleaseReader->interruptBlockingRead(); + } return NO_ERROR; } @@ -1292,7 +1307,9 @@ public: bbq->updateDequeueShouldBlockLocked(); } - bbq->mBufferReleaseReader->interruptBlockingRead(); + if (bbq->mBufferReleaseReader) { + bbq->mBufferReleaseReader->interruptBlockingRead(); + } return NO_ERROR; } -- cgit v1.2.3-59-g8ed1b