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 Don't simulate color space after correction 2014-03-10 12:43:49 -07:00
EventLog surfaceflinger: add frame duration logging 2013-07-23 17:28:47 -07:00
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 Improve memory coherence management in screenshot code [DO NOT MERGE] 2014-07-14 19:29:09 +00:00
Client.cpp Bypass surface flinger permission check for calls from system. 2015-04-10 20:26:51 -07:00
Client.h Adding render stats APIs to UiAutomation (framework native). 2014-04-10 12:32:19 -07:00
clz.h implement: "Add an ANativeWindow API for SurfaceFlinger to suggest an optimal buffer orientation" 2011-07-19 15:24:46 -07:00
Colorizer.h Add a --color option to dumpsys SurfaceFlinger 2013-04-22 21:51:28 +02:00
DdmConnection.cpp Enable clang for libui/libgui/surfaceflinger 2014-12-04 17:56:17 -08:00
DdmConnection.h add libsurfaceflinger_ddmconnection for PDK build 2012-08-31 20:08:33 -07:00
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 surfaceflinger: add getDisplayStats() method 2014-09-18 17:03:20 -07:00
DispSync.h surfaceflinger: add getDisplayStats() method 2014-09-18 17:03:20 -07:00
EventControlThread.cpp SurfaceFlinger: Add EventControlThread 2013-10-15 14:31:41 -07:00
EventControlThread.h SurfaceFlinger: Add EventControlThread 2013-10-15 14:31:41 -07:00
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 Adding render stats APIs to UiAutomation (framework native). 2014-04-10 12:32:19 -07:00
FrameTracker.h Adding render stats APIs to UiAutomation (framework native). 2014-04-10 12:32:19 -07:00
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 Silence warnings about unused parameters. 2014-09-09 16:53:59 -07:00
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 native frameworks: 64-bit compile issues 2014-03-12 13:12:44 -07:00
MessageQueue.h fix another bug where screenshots could end-up all black 2013-04-10 16:27:17 -07:00
MODULE_LICENSE_APACHE2 move native services under services/ 2010-07-22 15:28:19 -07:00
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 color blindness enhancement 2013-09-04 22:11:15 -07:00