summaryrefslogtreecommitdiff
path: root/libs/gui/BLASTBufferQueue.cpp
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-07-24 21:40:46 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-07-24 21:40:46 +0000
commit155975fa75452a4a962dec06850a880fa972dd03 (patch)
tree30f0cbde119b8825ad044f34c70abb825f1378eb /libs/gui/BLASTBufferQueue.cpp
parent3c15ef43dc68b38f9509b35b23e0ff1553d2c408 (diff)
parent8f71501b795d3891279e4930b879856b56c12429 (diff)
Merge "Fix BufferReleaseChannel flagging." into main
Diffstat (limited to 'libs/gui/BLASTBufferQueue.cpp')
-rw-r--r--libs/gui/BLASTBufferQueue.cpp31
1 files changed, 24 insertions, 7 deletions
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;
}