replicant-frameworks_native/services/surfaceflinger
Mathias Agopian 208cb07724 fix [2873058] Surface::dequeueBuffer blocks on last buffer, i.e. cannot dequeue all allocated buffers at once.
this situation happened when the last buffer needed to be resized
(or allocated, the first time). the assumption was that the buffer
was in use by SF itself as the current buffer (obviously, this
assumption made no sense when the buffer had never been allocated, btw).

the system would wait until some other buffer became the "front" buffer.

we fix this problem by entirely removing the requirement that the
buffer being resized cannot be the front buffer. instead, we just
allocate a new buffer and replace the front buffer by the new one.

the downside is that this uses more memory (an extra buffer) for a
brief amount of time while the old buffer is being reallocated and
before it has actually been replaced.

Change-Id: I022e4621209474ceb1c671b23deb4188eaaa7285
2010-07-27 20:11:35 -07:00
..
DisplayHardware
tests fix [2873058] Surface::dequeueBuffer blocks on last buffer, i.e. cannot dequeue all allocated buffers at once. 2010-07-27 20:11:35 -07:00
Android.mk
Barrier.h
BlurFilter.cpp
BlurFilter.h
clz.cpp
clz.h
GLExtensions.cpp
GLExtensions.h
Layer.cpp fix [2873058] Surface::dequeueBuffer blocks on last buffer, i.e. cannot dequeue all allocated buffers at once. 2010-07-27 20:11:35 -07:00
Layer.h
LayerBase.cpp
LayerBase.h
LayerBlur.cpp
LayerBlur.h
LayerBuffer.cpp
LayerBuffer.h
LayerDim.cpp
LayerDim.h
MessageQueue.cpp
MessageQueue.h
MODULE_LICENSE_APACHE2
SurfaceFlinger.cpp
SurfaceFlinger.h
TextureManager.cpp
TextureManager.h
Transform.cpp move native services under services/ 2010-07-14 17:59:35 -07:00
Transform.h