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
diff --git a/libs/gui/BLASTBufferQueue.cpp b/libs/gui/BLASTBufferQueue.cpp
index 2d2b6b2..dfbb863 100644
--- a/libs/gui/BLASTBufferQueue.cpp
+++ b/libs/gui/BLASTBufferQueue.cpp
@@ -597,9 +597,15 @@
 
 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) {