summaryrefslogtreecommitdiff
path: root/libs/gui/BLASTBufferQueue.cpp
diff options
context:
space:
mode:
authorchaviw <chaviw@google.com>2021-10-14 11:57:22 -0500
committerRob Carr <racarr@google.com>2021-11-03 21:57:30 +0000
commit8cba4cea045ab7e85e86d975b8ea9b8e963c834f (patch)
tree94d9f8b125a0fed209460dd53c7aaac508687d9d /libs/gui/BLASTBufferQueue.cpp
parentfe34457d2e4644d47d1d8047894c7819d5cd34a5 (diff)
Use bufferItem's fence when calling release
When we acquire and release immediately, we want to use the bufferItem's release fence instead of NO_FENCE. Also add an error log if there's a failure in acquireBuffer, which really should never happen. Test: BLASTBufferQueueTest Bug: 200285149 Change-Id: I5e869b0f66f37b15b9317985b30f539dbfea831c (cherry picked from commit 6ebdf5f0f7ca5354a1a9a0e6419275c7b873849d)
Diffstat (limited to 'libs/gui/BLASTBufferQueue.cpp')
-rw-r--r--libs/gui/BLASTBufferQueue.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/libs/gui/BLASTBufferQueue.cpp b/libs/gui/BLASTBufferQueue.cpp
index 94864e53f3..5e26b3f0e8 100644
--- a/libs/gui/BLASTBufferQueue.cpp
+++ b/libs/gui/BLASTBufferQueue.cpp
@@ -621,9 +621,15 @@ Rect BLASTBufferQueue::computeCrop(const BufferItem& item) {
void BLASTBufferQueue::acquireAndReleaseBuffer() {
BufferItem bufferItem;
- mBufferItemConsumer->acquireBuffer(&bufferItem, 0 /* expectedPresent */, false);
- mBufferItemConsumer->releaseBuffer(bufferItem, Fence::NO_FENCE);
+ status_t status =
+ mBufferItemConsumer->acquireBuffer(&bufferItem, 0 /* expectedPresent */, false);
+ if (status != OK) {
+ BQA_LOGE("Failed to acquire a buffer in acquireAndReleaseBuffer, err=%s",
+ statusToString(status).c_str());
+ return;
+ }
mNumFrameAvailable--;
+ mBufferItemConsumer->releaseBuffer(bufferItem, bufferItem.mFence);
}
void BLASTBufferQueue::onFrameAvailable(const BufferItem& item) {