Drop buffers for SurfaceFlinger properly am: 45e9e0b133 am: cbc317eb7c
am: 9f54796ee7
Change-Id: Ia8d7f54bd70ee8fc1219e746420b6aeafeb23160
diff --git a/libs/gui/BufferQueueProducer.cpp b/libs/gui/BufferQueueProducer.cpp
index c20c2f3..9c311a3 100644
--- a/libs/gui/BufferQueueProducer.cpp
+++ b/libs/gui/BufferQueueProducer.cpp
@@ -886,7 +886,7 @@
item.mFence = acquireFence;
item.mFenceTime = acquireFenceTime;
item.mIsDroppable = mCore->mAsyncMode ||
- (!mCore->mLegacyBufferDrop && mConsumerIsSurfaceFlinger) ||
+ (mConsumerIsSurfaceFlinger && mCore->mQueueBufferCanDrop) ||
(mCore->mLegacyBufferDrop && mCore->mQueueBufferCanDrop) ||
(mCore->mSharedBufferMode && mCore->mSharedBufferSlot == slot);
item.mSurfaceDamage = surfaceDamage;
diff --git a/libs/gui/include/gui/BufferQueueCore.h b/libs/gui/include/gui/BufferQueueCore.h
index 9c0ee99..690a85f 100644
--- a/libs/gui/include/gui/BufferQueueCore.h
+++ b/libs/gui/include/gui/BufferQueueCore.h
@@ -233,7 +233,8 @@
// mLegacyBufferDrop indicates whether mQueueBufferCanDrop is in effect.
// If this flag is set mQueueBufferCanDrop is working as explained. If not
- // queueBuffer will not drop buffers unless consumer is SurfaceFlinger.
+ // queueBuffer will not drop buffers unless consumer is SurfaceFlinger and
+ // mQueueBufferCanDrop is set.
bool mLegacyBufferDrop;
// mDefaultBufferFormat can be set so it will override the buffer format