Re-introduce debug.sf.latch_unsignaled
This pretty much reverts this commit: Ia453eaf895554adbb2fa9c11c2bc8609e1037ea5.
Some devices may find this helpful to improve performance, but there is a risk of pipeline stall from misbehaving apps.
Bug: 173694115
Test: manual
Merged-In: I48c3095061dc106fa08d36b8ef17eccb04fb6eb1
Change-Id: I48c3095061dc106fa08d36b8ef17eccb04fb6eb1
diff --git a/services/surfaceflinger/BufferQueueLayer.cpp b/services/surfaceflinger/BufferQueueLayer.cpp
index c64371b..6b6d434 100644
--- a/services/surfaceflinger/BufferQueueLayer.cpp
+++ b/services/surfaceflinger/BufferQueueLayer.cpp
@@ -125,11 +125,16 @@
// -----------------------------------------------------------------------
bool BufferQueueLayer::fenceHasSignaled() const {
+ Mutex::Autolock lock(mQueueItemLock);
+
+ if (SurfaceFlinger::enableLatchUnsignaled) {
+ return true;
+ }
+
if (!hasFrameUpdate()) {
return true;
}
- Mutex::Autolock lock(mQueueItemLock);
if (mQueueItems[0].item.mIsDroppable) {
// Even though this buffer's fence may not have signaled yet, it could
// be replaced by another buffer before it has a chance to, which means