Merge "Discard invisible surfaces"
diff --git a/libs/vr/libvrflinger/display_surface.cpp b/libs/vr/libvrflinger/display_surface.cpp
index e1729f8..7c821bf 100644
--- a/libs/vr/libvrflinger/display_surface.cpp
+++ b/libs/vr/libvrflinger/display_surface.cpp
@@ -381,6 +381,15 @@
   ATRACE_NAME("DisplaySurface::OnPostConsumer");
   std::lock_guard<std::mutex> autolock(lock_);
 
+  if (!IsVisible()) {
+    ALOGD_IF(TRACE,
+             "DisplaySurface::OnPostConsumer: Discarding buffer_id=%d on "
+             "invisible surface.",
+             consumer->id());
+    consumer->Discard();
+    return;
+  }
+
   if (posted_buffers_.IsFull()) {
     ALOGE("Error: posted buffers full, overwriting");
     posted_buffers_.PopBack();