replicant-frameworks_native/libs/gui
Dan Stoza ecc504043f SurfaceFlinger: Fix PTS on stale buffers
SurfaceFlinger's (Layer's) shadow copy of the BufferQueue queue was
getting out of sync for a few reasons. This change fixes these by
doing the following:

- Adds a check to re-synchronize the shadow copy every time we
  successfully acquire a buffer by first dropping stale buffers before
  removing the current buffer.
- Avoids trying to perform updates for buffers which have been rejected
  (for incorrect dimensions) by SurfaceFlinger.
- Adds IGraphicBufferConsumer::setShadowQueueSize, which allows the
  consumer to notify the BufferQueue that it is maintaining a shadow
  copy of the queue and prevents it from dropping so many buffers
  during acquireBuffer that it ends up returning a buffer for which the
  consumer has not yet received an onFrameAvailable call.

Bug: 20096136
Change-Id: I78d0738428005fc19b3be85cc8f1db498043612f
(cherry picked from commit 2e36f2283f)
2015-05-01 12:23:44 -07:00
..
tests Merge "libgui: Allow an IGBProducer to disable allocation" 2015-04-24 15:50:10 +00:00
Android.mk libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
BitTube.cpp libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
BufferItem.cpp libui/libgui: Fix errors in parceling 2015-04-20 13:17:22 -07:00
BufferItemConsumer.cpp DO NOT MERGE libgui: Remove IGBC::BufferItem 2015-03-20 12:29:04 -07:00
BufferQueue.cpp DO NOT MERGE libgui: Remove IGBC::BufferItem 2015-03-20 12:29:04 -07:00
BufferQueueConsumer.cpp SurfaceFlinger: Fix PTS on stale buffers 2015-05-01 12:23:44 -07:00
BufferQueueCore.cpp SurfaceFlinger: Fix PTS on stale buffers 2015-05-01 12:23:44 -07:00
BufferQueueProducer.cpp libgui: Fix buffer age on 64-bit targets 2015-04-28 14:20:04 -07:00
BufferSlot.cpp libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
CleanSpec.mk Fix missing parens in CleanSpec.mk. 2012-10-04 20:05:19 -07:00
ConsumerBase.cpp libgui: Plumb detachBuffer through ConsumerBase 2015-04-07 15:05:40 -07:00
CpuConsumer.cpp Revert "libgui: Plumb attach/detach through CpuConsumer" 2015-04-02 13:48:15 -07:00
DisplayEventReceiver.cpp use a socketpair instead of a pipe in BitTube 2012-04-02 18:41:10 -07:00
GLConsumer.cpp DO NOT MERGE libgui: Remove IGBC::BufferItem 2015-03-20 12:29:04 -07:00
GraphicBufferAlloc.cpp libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
GuiConfig.cpp don't use compile-time configuration of libgui as much as possible 2013-03-29 15:33:47 -07:00
IConsumerListener.cpp libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
IDisplayEventConnection.cpp libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
IGraphicBufferAlloc.cpp libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
IGraphicBufferConsumer.cpp SurfaceFlinger: Fix PTS on stale buffers 2015-05-01 12:23:44 -07:00
IGraphicBufferProducer.cpp libgui: Allow an IGBProducer to disable allocation 2015-04-23 15:28:12 -07:00
IProducerListener.cpp libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
ISensorEventConnection.cpp libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
ISensorServer.cpp Enable data injection mode in SensorService. 2015-04-23 17:42:37 -07:00
ISurfaceComposer.cpp libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
ISurfaceComposerClient.cpp libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
LayerState.cpp libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
Sensor.cpp libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
SensorEventQueue.cpp Build fix SensorEventQueue. 2015-04-24 20:30:09 -07:00
SensorManager.cpp Enable data injection mode in SensorService. 2015-04-23 17:42:37 -07:00
StreamSplitter.cpp DO NOT MERGE libgui: Prepare for IGBC::BufferItem removal 2015-03-19 13:58:07 -07:00
Surface.cpp Close Fence FDs in error cases of Surface and GraphicBufferMapper 2015-04-30 14:50:17 -07:00
SurfaceComposerClient.cpp libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
SurfaceControl.cpp libgui: Enable -Weverything and -Werror 2015-03-18 15:57:27 -07:00
SyncFeatures.cpp libgui: Only allow one return from useFenceSync 2015-03-19 10:32:51 -07:00