replicant-frameworks_native/services/surfaceflinger
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
..
DisplayHardware libgui: Allow an IGBProducer to disable allocation 2015-04-23 15:28:12 -07:00
Effects
EventLog
RenderEngine SurfaceFlinger: Fix integer overflow in Mesh ctor 2015-04-30 14:57:41 -07:00
tests Merge "Error compiling waitforvsync.cpp" 2015-02-25 23:42:17 +00:00
Android.mk resolved conflicts for merge of 1665c8e1 to lmp-mr1-dev-plus-aosp 2015-01-27 11:49:26 -08:00
Barrier.h
Client.cpp Bypass surface flinger permission check for calls from system. 2015-04-10 20:26:51 -07:00
Client.h
clz.h
Colorizer.h
DdmConnection.cpp Enable clang for libui/libgui/surfaceflinger 2014-12-04 17:56:17 -08:00
DdmConnection.h
DisplayDevice.cpp Enable clang for libui/libgui/surfaceflinger 2014-12-04 17:56:17 -08:00
DisplayDevice.h surfaceflinger: fix -Wmismatched-tags warnings 2014-10-31 09:51:10 -07:00
DispSync.cpp
DispSync.h
EventControlThread.cpp
EventControlThread.h
EventThread.cpp SF: Permit changing DispSync offsets at runtime 2015-04-15 13:56:28 -07:00
EventThread.h SF: Permit changing DispSync offsets at runtime 2015-04-15 13:56:28 -07:00
FrameTracker.cpp
FrameTracker.h
Layer.cpp SurfaceFlinger: Fix PTS on stale buffers 2015-05-01 12:23:44 -07:00
Layer.h SurfaceFlinger: Pass surface damage to HWC 2015-04-15 13:20:01 -07:00
LayerDim.cpp
LayerDim.h Frameworks/native: Wall Werror in surfaceflinger 2014-11-13 14:18:56 -08:00
main_surfaceflinger.cpp Kill HAVE_PTHREADS. 2015-01-26 22:36:36 -08:00
MessageQueue.cpp
MessageQueue.h
MODULE_LICENSE_APACHE2
MonitoredProducer.cpp libgui: Allow an IGBProducer to disable allocation 2015-04-23 15:28:12 -07:00
MonitoredProducer.h libgui: Allow an IGBProducer to disable allocation 2015-04-23 15:28:12 -07:00
SurfaceFlinger.cpp SurfaceFlinger: Limit to 4k Layers 2015-04-30 15:10:00 -07:00
SurfaceFlinger.h SurfaceFlinger: Limit to 4k Layers 2015-04-30 15:10:00 -07:00
SurfaceFlingerConsumer.cpp SurfaceFlinger: Fix PTS on stale buffers 2015-05-01 12:23:44 -07:00
SurfaceFlingerConsumer.h SurfaceFlinger: Fix PTS on stale buffers 2015-05-01 12:23:44 -07:00
Transform.cpp Add clamp to Layer and update Transform inverse. 2014-11-21 17:05:18 -08:00
Transform.h