History log of /frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
1495ceb88594bf3c5963ef65ee12953dc0354546 08-Aug-2014 Jesse Hall <jessehall@google.com> surfaceflinger: fix -Wmismatched-tags warnings

warning: struct 'HWComposer' was previously declared as a class

warning: class 'DisplayInfo' was previously declared as a struct

Change-Id: I13db9f8aab3a957ce8ff8d64598dae1807d6fe7e
(cherry picked from commit 646f54105018e99ef4a30ee41f01f7d1ab66c38e)
6c9e34a98a63033b80bd1c24c7aa1304f912f10a 14-Jul-2014 Michael Lentine <mlentine@google.com> Modified SurfaceFlinger to implment setActiveConfig and getActiveConfig.

This can be used to change the current display mode of the device.

Change-Id: Icdc3fb58389b861dc77b68102083da6f7a96eccb
Tested: None
(cherry picked from commit 2651fa94635a96d653038fb389a0dd827338f8d3)
03414a1cfe6c1222fd7723949bd622f9cba145aa 01-Jul-2014 Riley Andrews <riandrews@google.com> Turn on support for async cursor update in surfaceflinger.

If available, surfaceflinger will use the hwc setCursorPositionAsync()
api to change the position of supported cursor layers outside of
the usual prepare/set loop.

Change-Id: Ib3fc5c0c390b3489ddbba202379840a1d2748917
2c9b11f0291210c9b9513a1a0cce6afebd361b3b 25-May-2014 Prashant Malani <pmalani@google.com> surfaceflinger: Replace blank/unblank with setPowerMode

We replace the blank/unblank calls in surfaceFlinger with a more generic
setPowerMode() routine.

Some displays support different power modes (for example, with reduced
color palettes). Depending on the use case we should be able to toggle
these modes, so as to achieve incremental power savings.

Initially, three power modes will be supported:

HWC_POWER_MODE_OFF will correspond to blanking the display, while
HWC_POWER_MODE_NORMAL will correspond to unblanking. HWC_POWER_MODE_DOZE
will put the display into a low power setting, if it is supported in

If such a low power mode is not supported, it should be treated as a
call to set the mode to HWC_POWER_MODE_NORMAL.

As a consequence of adding the mPowerMode field, the mScreenAcquired is
no longer required, and thus references to it are removed and replaced
equivalent references to mPowerMode.

We also add the glue code to connect the services invocation of setting
a power mode and the HAL implementation in HWComposer.

Bug: 13472578
Change-Id: I431595ecf16d2f2c94259272db3dd42f29636204
Signed-off-by: Prashant Malani <pmalani@google.com>
dd02391756dff240c178f7cba21d73d62821007e 06-May-2014 Dan Stoza <stoza@google.com> Merge "Enable changing display configuration"
7f7da32569f8e0b3d383a40b95f8ac1d55afd801 03-May-2014 Dan Stoza <stoza@google.com> Enable changing display configuration

This allows querying and switching display device configurations
through the ISurfaceComposer/SurfaceComposerClient interface.

Bug: 14320401
Change-Id: I8c22165698950e5da32204c1c4da92122f91a715
41d67d7ab4da1c393497a620a116a854b3c618e7 26-Apr-2014 Andy McFadden <fadden@android.com> Improve SurfaceFlinger PTS estimation

Get the next refresh time from DispSync instead of guessing based
on the current time.

Change-Id: I8dc72a3217bfd4e9b4c905034194d1a298cad69a
399184a4cd728ea1421fb0bc1722274a29e38f4a 04-Mar-2014 Jesse Hall <jessehall@google.com> Add sideband streams to BufferQueue and related classes

Sideband streams are essentially a device-specific buffer queue that
bypasses the BufferQueue system. They can be used for situations with
hard real-time requirements like high-quality TV and video playback
with A/V sync. A handle to the stream is provided by the source HAL,
and attached to a BufferQueue. The sink HAL can read buffers via the
stream handle rather than acquiring individual buffers from the

Change-Id: Ib3f262eddfc520f4bbe3d9b91753ed7dd09d3a9b
bef42c50ebda2d63400f92611e1dd857c03bb38c 22-Aug-2013 Mathias Agopian <mathias@google.com> handle several vsync signal correctly

Change-Id: I34935d2197ce8e914fef2f110896e47b44225ad2
9e663de4fe1dcc872373ee530c60a375624671c3 16-Aug-2013 Jesse Hall <jessehall@google.com> Use new HWC display type/count constants.

Change-Id: I774d0c68906ac6dc69268f708c30a6b0868b8816
6b44267a3beb457e220cad0666c039d3a765cdb2 10-Jul-2013 Mathias Agopian <mathias@google.com> fix SF buffer cropping

When a buffer had a crop (meaning its content is scaled to the window size)
and a window crop was defined, the resulting crop couldn't be expressed
properly because h/w composer's API was limited to integers, since
this is fixed in h/w composer 1.3, we take adventage of this to
make sure we get the correct crop.

this bug could result in the buffer being scaled by an incorrect ratio and
be slightly offset; moreover, it would produce different results from the
GL code path, which is always correct.

Change-Id: I8e20e00b6e26177d14f4ab4d2cd581e26c818892
74d211ae26a0257c6075a823812e40b55aa1e653 22-Apr-2013 Mathias Agopian <mathias@google.com> clean-up/simplify all dump() APIs

remove the scratch buffer parameter and use
String8::appendFormat() instead.

Change-Id: Ib96c91617c8e7292de87433d15cf6232b7d591b0
1c569c4d45f89ec05abf8f8fe3a560e68bf39a8e 05-Apr-2013 Jesse Hall <jessehall@google.com> Tell HWComposer the dimensions of virtual displays

HWComposer queries the HWC for dimensions of physical displays, but
can't do that for virtual displays. The dimensions are used to set the
display frame of the framebuffer target layer passed to HWC, and
implicitly the dimensions of the virtual display.

Bug: 8316155
Change-Id: I9cbd2530d2fa878f86128a1472def520b5d694a5
851cfe834295224cd64bdd499872b95b19c4de8c 20-Mar-2013 Jesse Hall <jessehall@google.com> Isolate knowledge that fb target == output buffer

HWComposer didn't allow the virtual display output buffer to be set
directly, instead it always used the framebuffer target buffer.
DisplayDevice was only providing the framebuffer release fence to
DisplaySurfaces after a commit.

This change fixes both of these, so both HWComposer and DisplayDevice
should continue to work if VirtualDisplaySurface changes to use
separate framebuffer and output buffers. It's also more correct since
VirtualDisplaySurface uses the correct release fence when queueing the
buffer to the sink.

Bug: 8384764
Change-Id: I95c71e8d4f67705e23f122259ec8dd5dbce70dcf
13f01cbdbd34779a234bc674df79e23672fd5c0b 20-Mar-2013 Jesse Hall <jessehall@google.com> Pass sp<Fence>s around instead of file descriptors

Change-Id: Iac70584a2207940730e8f803a543e4e9a4000c47
ef64b75a936ffd194673dbce6766995f86b42ba9 18-Mar-2013 Jesse Hall <jessehall@google.com> Don't log an error on HWC1.1+ devices with no FB HAL

Change-Id: I015e5a1a1f926181e51f82525f69beff71bd70cd
80e0a397a4712666661ecc629a64ec26e7f6aac3 15-Mar-2013 Jesse Hall <jessehall@google.com> Add BufferQueueInterposer and use it for virtual displays

BufferQueueInterposer allows a client to tap into a
IGraphicBufferProducer-based buffer queue, and modify buffers as they
pass from producer to consumer. VirtualDisplaySurface uses this to
layer HWC composition on top of GLES composition before passing the
buffer to the virtual display consumer.

Bug: 8384764
Change-Id: I61ae54f3d90de6a35f4f02bb5e64e7cc88e1cb83
13127d8921356dff794250e04208c3ed60b3a3df 06-Mar-2013 Mathias Agopian <mathias@google.com> Get rid of LayerBase.

The functionality of LayerBase and Layer is folded
into Layer. There wasn't a need for this abstraction

Change-Id: I66511c08cc3d89009ba4deabf47e26cd4cfeaefb
a9a1b006e48320f5c501473e51e6c4a5f7a17b88 28-Feb-2013 Jesse Hall <jessehall@google.com> Initialize DisplayData fences to NO_FENCE, not NULL

Also fix another place that was checking for NULL fence rather than

Bug 8283950

Change-Id: Ie06db327eb416828d8dac139171d96d4470b2e35
9f8386e1118c10dd4927f62637ec7162569bdbdc 30-Jan-2013 Mathias Agopian <mathias@google.com> Add support for plane-alpha in HWC

Change-Id: I218e7dd5f23de535aabce61e993002ab6cb46cdd
51d22007386f171e1c696786ddce957e78fc4a03 14-Jan-2013 Jesse Hall <jessehall@google.com> Remove unused HWCLayer::setPerFrameDefaultState()

Bug: 7977590
Change-Id: Ic49c4e38ef2ee6beaeb268c406347c882135bdf0
e64b38fad2cc6686fb6691aaf65c735f505a49a5 20-Nov-2012 Jamie Gennis <jgennis@google.com> Merge "SurfaceFlinger: track the HWC retire fences"
2ec3e0748bff8d75baade2ddda9fbfa21a3b7d3f 12-Nov-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: track the HWC retire fences

This change adds functionality to the HWComposer class to track the retire
fences returned by each hwc set call. It adds the HWComposer::getDisplayFence
method to allow other parts of SurfaceFlinger to get a fence that will signal
when the most recent flip takes effect on a display.

Change-Id: I676e0f98440fc58ed70908aa1a1e2ee3e7bf9eb2
ee932d0ad1a16cc93b4bd9eaf9cb3cc756fb2dfc 14-Nov-2012 Mathias Agopian <mathias@google.com> Reset compositionType to HWC_FRAMEBUFFER before calling prepare()

Honor the documentation. this broke in JB-MR1.

Change-Id: I841a93b409fc940374bc748c4e143d82a192669c
cb55857bbde34a06c19dde3db5064d1717a0173e 05-Oct-2012 Mathias Agopian <mathias@google.com> fix dumpsys Layer name when using multiple displays

Bug: 7288401
Change-Id: I14beeef58fac5270cef3b611e18c163060efe6c3
81cd5d3b94d21253a0be925f4ae58cc7f4afeef7 04-Oct-2012 Mathias Agopian <mathias@google.com> make sure we don't call into the HWC HAL when not needed

when enabling/disabling vsync we now make sure to
not call into the HAL if the state wouldn't change.

Bug: 7274951

Change-Id: Ie24a6d68888a51b577acf9c2a973d85437cbacaf
27ec5739bc05330e08b02f25b62a8f597bad897a 03-Oct-2012 Andy McFadden <fadden@android.com> Fix crashes after HDMI disconnect

The display was being removed from SurfaceFlinger's list before we
had a chance to reset HWComposer's layer list, so we were passing
stale data into the hardware composer (which has its own per-display
data). This resulted in "invalid gralloc handle" complaints.
We now clear the layer list immediately after removing the display.

The display was being removed while its EGLSurface was still
"current", resulting in "cancelBuffer: BufferQueue has been
abandoned" complaints. We now call makeCurrent on the primary
display before removing the external display.

Bug 7274254

Change-Id: Ia59e3a61d7ec46488b96bf93ec5e4ed3488b70e4
c01a79d77b829e7de86ef137694e8ad708470ca1 28-Sep-2012 Andy McFadden <fadden@android.com> Pass display arg to blank/unblank

This allows us to blank and unblank displays other than the built-in
display (e.g. HDMI).

Bug: 7240511
Change-Id: I89ea13f9e497be74c3e1231d0c62fb558e93e0f8
f5a33928349bebc8eebc9f466618997e98c24e68 20-Sep-2012 Mathias Agopian <mathias@google.com> we now correctly set-up connected screens during boot

Change-Id: Ie8b1a3b97ad1821cc970e43abe96c8cec7135b66
148994e5f33ce240ff24ceb5bc0500b7f2001959 20-Sep-2012 Mathias Agopian <mathias@google.com> We now report hotplug events to the framework

Change-Id: I2d6b7787d39e5929485a551e4982498c5053c211
1604f777d11c40daae8ec91d8ea75625996bfbac 19-Sep-2012 Mathias Agopian <mathias@google.com> one more step toward HDMI support

getDisplayInfo() now returns proper information for
HWC managed displays.

hotplug is sitll not supported; so this is not fully correct
as the information returned will be bogus if the HDMI screen
is not plugged in.

Bug: 7191563
Change-Id: If55d8e829fae0443571548155007f486cdf9bc9f
da27af9832a0170f1fc40ef3f21371c4d30d21b3 14-Sep-2012 Mathias Agopian <mathias@google.com> add support hwc 1.1

Bug: 7124069

Change-Id: I53d705105c4ad8954d3f50ee4f4c8b7ec936b871
cde87a3b9d3f8dc15232d927b56ee9e5e520f58d 13-Sep-2012 Mathias Agopian <mathias@google.com> refactor things a bit

- decouple GL and main display initialization
- ensure that each "supported" display has its own FramebufferSurface
- onScreenAcquired/Released now takes a display

Change-Id: If34a05f3dea40f6c79db77f4dde283a2580daac4
db27621e22559a1b16414f890677ef04242fbc3b 07-Sep-2012 Jesse Hall <jessehall@google.com> Initialize new HWC 1.2 fields

Also rename resolution* to width/height.

Change-Id: Ia5f0c50d3f0a349160f314a3257c3b985e13ef1d
b0d1dd36f104c0b581674adc7f830cbf44b7db06 10-Sep-2012 Andy McFadden <fadden@android.com> Reshuffle FramebufferSurface

FramebufferSurface no longer speaks directly to the FB HAL. Now
everything goes through HWComposer (which may or may not be
connected to a hardware composer).

Added display index arg to some query methods.

Change-Id: Id3e157d2d4e3555d33afbb703e518b6e92e2d6d5
c39736088398a9b4367b30fc307ed7de96ac342e 01-Sep-2012 Mathias Agopian <mathias@google.com> the visible region sent to HWC was garbage

we used to have a visibleRegion object per layer, but now
it's per screen; so at somepoint the code got changed to
calculate the per-screen visible region on the stack and that's
what got passed to HWC.

we're now setting the visibleRegionScreen at each frame and
freeing at after the HWC set() call. We use the underlaying
SharedBuffer so that in most cases we don't have to allocate,
free or copy memory around.

Bug: 7089478
Change-Id: I24fa556c76613a225d9fe7a6c6b727bb476144d8
1bd20e0f9ecd27cc5ad2bdf08b01837ecc10c357 29-Aug-2012 Jesse Hall <jessehall@google.com> HWC 1.1: hook up hotplug event, use new display config queries

Change-Id: I2fd359e5fc7e1948072c6bc6b6fe47ea5e8025c1
f435863467ab407f2a482604beed5fa6f0144c62 23-Aug-2012 Mathias Agopian <mathias@google.com> teach HWC about multiple displays

Change-Id: I5e72a83d419a729835cb0e1ec45557b4d3fb56b1
30bcc61431d8e3bef779472dd52a7b156dcaba09 23-Aug-2012 Mathias Agopian <mathias@google.com> remove support for HWC < 1.0

Change-Id: If7e676a6e3524afeb9af3875125d2131d95db38b
e60b0687c8d49871d0c8786cabe6851f7a7783b5 22-Aug-2012 Mathias Agopian <mathias@google.com> HWComposer now has its own concept of display IDs

HWComposer can now create IDs representing a display
it can deal with. IDs MAIN and HDMI are reserved.
SurfaceFlinger associate HWComposer IDs with a
DisplayDevice and uses that when it talks to HWComposer.

A DisplayDevice doesn't have to have a HWComposer ID,
in that case it just can't use h/w composer composition.

Change-Id: Iec3d7ac92e0c22bf975052ae2847402f58bade71
bbd164a3c790a0649dffd2f015e6f47692c72e1c 21-Aug-2012 Jesse Hall <jessehall@google.com> Update for cleanups in hwc interface

Change-Id: I363fd8b085167a1af6c14b68012bda5c62bfe59f
8f971ff6661c875e7adb3f14731e1579c3c80c62 22-Aug-2012 Jesse Hall <jessehall@google.com> Pass the correct number of displays based on HWC version

Change-Id: I27372f5d3102ad56f6d67722d631ae18d37f8330
8b736f138cfd9b239a2c7073347a13c489534ae1 14-Aug-2012 Mathias Agopian <mathias@google.com> xdpi / ydpi were reported as 0

Bug: 6975723
Change-Id: Ia7fa37ec11e2308804f5034959a37e508d292d31
1e26087493ac0e7d7dc6dea8ad85cfef08b3271f 09-Aug-2012 Mathias Agopian <mathias@google.com> Add a display parameter to HWComposer where needed

- also replace C casts with C++ casts
- only the interface is changed, HWComposer still doesn't
fully handle multiple displays

Change-Id: I48eb89bff2edb76bf1d4d41f46802b9b2a7166a8
b685c542836b93c99cd85053e07696406ea37adb 31-Jul-2012 Jesse Hall <jessehall@google.com> Changes to support multi-display HWC

Change-Id: I07efff54f2980dcb013935747b03e099b8f1181b
1a4d883dcc1725892bfb5c28dec255a233186524 03-Aug-2012 Jamie Gennis <jgennis@google.com> surfaceflinger: refactor FrambufferSurface

This change refactors the FramebufferSurface class to inherit from the new
ConsumerBase class.

Bug: 6620200
Change-Id: I46ec942ddb019658e3c5e79465548b171b2261f2
888c822c4cb6976aab9256c58bae9e17e3e55c5c 05-Aug-2012 Mathias Agopian <mathias@google.com> remove a dependency of DisplayDevice on the refresh rate

this remove a dependency (not all) on FramebufferSurface

Change-Id: Ie07ce70760cdcedfb41b5b41bea8da45637bf474
d3ee231eddce0b69ec5e35188dbd0f4a2c3b9ac3 02-Aug-2012 Mathias Agopian <mathias@google.com> cleanups in preparation of bigger changes

- fix typo drawForSreenshot misspelled
- get rid of DisplayDeviceBase
- removed unused or unneeded code
- always pass a DisplayDevice to Layer methods that are called
on a per-display basis (to make it clear that this could be
called more than once per composition).

Change-Id: Id948b7e09fe5c06db0e42d40d6ed75dd095c7f44
34a09ba1efd706323a15633da5044b352988eb5f 30-Jul-2012 Jesse Hall <jessehall@google.com> Move eglSwapBuffers out of HWComposer

Commit 8630320 moved the eglSwapBuffers fallback (for devices with no
HWC implementation) from DisplayHardware to HWComposer. But HWComposer
only knows about the framebuffer EGL display and surface handles if
there is a HWC, so it was always passing bogus handles.

This change moves the eglSwapBuffers fallback up to SurfaceFlinger,
which has access to the framebuffer EGL handles.

Bug: 6886613
Change-Id: Iad3f5ff7c90ee48d7053999e6a4548d6794b6ebd
921e6ac4b7610a178285898d191eb0e3afe906c0 24-Jul-2012 Mathias Agopian <mathias@google.com> SurfaceFlinger cleanup

mostly refactored SurfaceFlinger.h, but also removed dead code.
cleaned-up a few includes as well.

Change-Id: Ib15f4ffe567912b61ee98aa076c6a283b72811b5
10fbdb6059755f009e02f0ccc2b9d289beb6b086 13-Jul-2012 Colin Cross <ccross@android.com> surfaceflinger: call into hardware composer to blank screen

Call into the new HWC blank operation to blank or unblank the screen.
Legacy systems may have already blanked the screen via early suspend,
and can choose to not implement the blank operation in their hardware
composer implementation.

Change-Id: Ib403c8c0e36367a2cfef3e1d124872fcfeb9e7cb
dc5b485f74edf2d2f31c62054eb6c180421a3ade 30-Jun-2012 Jesse Hall <jessehall@google.com> Pass fence to HWC on first use of buffer

Also do a CPU-wait on the fence before using it for GL composition.

Change-Id: I0f645a42a44803276cae11b904e5a26d65871562
ef19414bd8b77a26f5751f3845be79025a8263fe 14-Jun-2012 Jesse Hall <jessehall@google.com> Transfer HWC release fences to BufferQueue

After a HWC set, each SurfaceFlinger Layer retrieves the release fence
HWC returned and gives it to the layer's SurfaceTexture. The
SurfaceTexture accumulates the fences into a merged fence until the
next updateTexImage, then passes the merged fence to the BufferQueue
in releaseBuffer.

In a follow-on change, BufferQueue will return the fence along with
the buffer slot in dequeueBuffer. For now, dequeueBuffer waits for the
fence to signal before returning.

The releaseFence default value for BufferQueue::releaseBuffer() is
temporary to avoid transient build breaks with a multi-project
checkin. It'll disappear in the next change.

Change-Id: Iaa9a0d5775235585d9cbf453d3a64623d08013d9
5880cc573823148237eac9ab7bc586b8e4eb7160 06-Jun-2012 Jesse Hall <jessehall@google.com> Add support for HWC_DEVICE_API_VERSION_1_0

The acquire and release fences aren't yet used; this is just support
for the new version and temporary backwards compatibility for older

Change-Id: Ia5ccc05a97c86f649042b9a35e11042fa0187e84
3e8b853d67c737abdb363f9c978e7d83eac4d888 14-May-2012 Mathias Agopian <mathias@google.com> refactor HWComposer to break dependency with the HAL headers

HWComposer must abstract the HWC HAL entirely, so that the
HAL can continue to evolve (and break binary compatibility)
without breaking SurfaceFlinger. The HWC data structure had
leaked outside of HWComposer, this is now fixed.

We now have an abstract interface that provide all the
needed functionality, HWCompose provides concrete
implementations of it based on the the HWC version.

Change-Id: I40c4676dc986b682ede5520a1c60efe64037b0bb
03e407270c7ad76632f982c886d0776bed9e9b4c 27-Apr-2012 Mathias Agopian <mathias@google.com> set vsync power hint

Change-Id: I28c2faf9ff584df3e74392712971cbcf75eb9e98
e2c4f4ec23b735dd2a03f4ea8b08b288a1bb04e8 11-Apr-2012 Mathias Agopian <mathias@google.com> Added vsync debugging information in dumpsys log

Change-Id: I20ef05a73d89caaf6a70dc9ca25ada6e6a1f6ff9
2965b26022f95051f65b09d7eac47cbe923855c9 09-Apr-2012 Mathias Agopian <mathias@google.com> VSYNC handling cleanup

Change-Id: I1376bf864c4e03c11fb6d1333a8b7cfdda08c9e4
3eb38cb33e41ce40dd1094bdec850f0fca9f8a53 04-Apr-2012 Mathias Agopian <mathias@google.com> SurfaceFlinger now uses the new VSYNC HAL API.

If h/w composer doesn't support vsync (version < 0.3) we
"fake" it with a timer.

Change-Id: I1e3be79f43c9631d1293ad7d6cf52f9bfc42d65b
31d2843b45ebdb69ec3355111b7567363fd2a6b7 04-Apr-2012 Mathias Agopian <mathias@google.com> Add HWC vsync hook. Currently unused.

Change-Id: I849d56f375813a044c5e2d0b25f791476a60fa01
9c6e297271ec9af9d974242d89cfa08cb6ceaa0a 21-Sep-2011 Mathias Agopian <mathias@google.com> fix transition from full overlays to fb

we need to clear the whole framebuffer in that situation because
we can't trust the content of the FB when partial (fb preserving)
updates are used.

Bug: 5318492

Change-Id: I3f0e01b0fb665a34e44d88ad9f0f54a5d990060b
22da60c3e64cd57535cbba063c07127814a2b52f 09-Sep-2011 Mathias Agopian <mathias@google.com> Improve SF dumpsys output wrt HWC

Change-Id: Ibdb7930fa3b521bfd3f44750ed98cfd75f9a01fe
7ee4cd5556cef1878e1d4729f1b389f186311027 02-Sep-2011 Mathias Agopian <mathias@google.com> fix a bug that caused the off animation to not show sometimes

this happened when the overlays were in use, since the animation
is rendered in the FB and the FB is not used.

we now have a way to turn hwc off temporarily.

Change-Id: I3385f0c25bb9cc91948e7b26e7cd31ed18c36ace
c7d14e247117392fbd44aa454622778a25c076ae 02-Aug-2011 Mathias Agopian <mathias@google.com> Add a h/w composer API to allow the HAL to trigger a redraw

This is useful in various situations, for instance if the HAL
wants to change its compositing strategy.

Bug: 4488017
Change-Id: I5afc14e5917c6db7926d7417d48677d5aba50caa
8372785879d329f592f6883620b5a32d80d74691 24-Sep-2010 Mathias Agopian <mathias@google.com> dump HWC state in dumpsys

Change-Id: Ifbb38ca1ac9685776250e01c8d02021b35af72cf
f5f2712854599b4970643c6000fe6ae950a08ba9 09-Sep-2010 Antti Hatala <ahatala@nvidia.com> surfaceflinger: give hwcomposer a chance to release buffers

Change-Id: I605fa779702022865dd58df3b36f37c2644ade36
45721773e1a68e96da4b6cc04cef276bae7ca3e9 13-Aug-2010 Mathias Agopian <mathias@google.com> Fix a couple issues with the new hwcomposer HAL

- we now clear the framebuffer upon request from the HAL
- the HAL list size could get out of sync with reality
- there was also an issue where sometime we could run past the list

Change-Id: Ic3a34314aed24181f2d8cc787096af83c046ef27
a350ff98692b3a50cad5cc93f9f83221242ca86a 11-Aug-2010 Mathias Agopian <mathias@google.com> call into hwcomposer HAL when present

Change-Id: I70f31c69a9436a43860e78977442863ecba6d27b