SurfaceFlinger: Rework buffer latching when removing from current state

When removed from current state we want to latch and release buffers independent of
their present time as we may not get another chance later (once we are disconnected
from the VSync pulse).

Bug: 123284777
Test: Manual
Change-Id: Ie46ff6199e6648ca9a15cf92048219715ffe26f4
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 3abd6a7..1296177 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -3156,16 +3156,8 @@
 
 void SurfaceFlinger::latchAndReleaseBuffer(const sp<Layer>& layer) {
     if (layer->hasReadyFrame()) {
-        nsecs_t expectedPresentTime;
-        if (mUseScheduler) {
-            expectedPresentTime = mScheduler->expectedPresentTime();
-        } else {
-            expectedPresentTime = mPrimaryDispSync->expectedPresentTime();
-        }
-        if (layer->shouldPresentNow(expectedPresentTime)) {
-            bool ignored = false;
-            layer->latchBuffer(ignored, systemTime(), Fence::NO_FENCE);
-        }
+        bool ignored = false;
+        layer->latchBuffer(ignored, systemTime(), Fence::NO_FENCE);
     }
     layer->releasePendingBuffer(systemTime());
 }