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