replicant-frameworks_native/services/surfaceflinger
Mathias Agopian 76cd4ddc6a partially fix [3306150] HTML5 video with H/W acceleration blackout
We used to guarantee that a layer in SurfaceFlinger would never be
destroyed before all references (to its ISurface) on the client
side would be released. At some point, this guarantee got
relaxed to allow to free gralloc resources sooner. This last
change was incorrect, because:
- in implementations with reference-counting the gralloc resources
wouldn't be released anyways, until all the mapping were gone
- in implementations without ref counting, the client side
would most likely crash or do something bad
- it also caused the SharedBufferStack slot to be reallocated
to another surface, which could be problematic if the client
continued to use the surface after the window manager destroyed it.

So, we essentially reinstate the guarantee that layers won't be
destroyed until after all references to their ISurface are
released.

NOTE: This doesn't entirely fix 3306150 because there is another
problem there where the Browser continues to use a surface after it
has been destroyed.

Change-Id: I305c830dd722b30a6d53cbf3a9c714fd3cf7eb06
2011-01-14 18:19:02 -08:00
..
DisplayHardware remove support for PUSH_BUFFER surfaces and overlays 2010-12-08 16:13:59 -08:00
tests remove support for PUSH_BUFFER surfaces and overlays 2010-12-08 16:13:59 -08:00
Android.mk minor clean-up. SurfaceFlinger doesn't need libpixelflinger.so. 2010-12-13 16:47:31 -08:00
Barrier.h
clz.cpp
clz.h
GLExtensions.cpp
GLExtensions.h
Layer.cpp Fix a problem where hwc and GL composition could show a different buffer 2010-12-14 20:30:37 -08:00
Layer.h Fix a problem where hwc and GL composition could show a different buffer 2010-12-14 20:30:37 -08:00
LayerBase.cpp remove support for PUSH_BUFFER surfaces and overlays 2010-12-08 16:13:59 -08:00
LayerBase.h remove support for PUSH_BUFFER surfaces and overlays 2010-12-08 16:13:59 -08:00
LayerDim.cpp
LayerDim.h
MessageQueue.cpp
MessageQueue.h
MODULE_LICENSE_APACHE2
SurfaceFlinger.cpp partially fix [3306150] HTML5 video with H/W acceleration blackout 2011-01-14 18:19:02 -08:00
SurfaceFlinger.h partially fix [3306150] HTML5 video with H/W acceleration blackout 2011-01-14 18:19:02 -08:00
TextureManager.cpp
TextureManager.h
Transform.cpp really fix [3118445] Transform * Transform does not work as expected 2010-10-27 18:04:11 -07:00
Transform.h fix [3118445] Transform * Transform does not work as expected 2010-10-24 14:53:05 -07:00