diff options
| -rw-r--r-- | libs/vr/libvrflinger/display_surface.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libs/vr/libvrflinger/display_surface.cpp b/libs/vr/libvrflinger/display_surface.cpp index e1729f8cf0..7c821bfd68 100644 --- a/libs/vr/libvrflinger/display_surface.cpp +++ b/libs/vr/libvrflinger/display_surface.cpp @@ -381,6 +381,15 @@ void DisplaySurface::OnPostConsumer( 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(); |