Commit Graph

21 Commits

Author SHA1 Message Date
Saurabh Shah
ae67b6bd33 Put HDMI code under compile time flag
Put HDMI code in HWC under compile time flag.
This prevents crashes in use cases like HDMI used as primary.
If not done, non-existing code in gralloc is called in that
use case.

Change-Id: Ic7e792acf0c35eb12f04a74405619385d7288991
2011-09-19 19:16:36 -05:00
Naomi Luis
49dbd79cf7 Add overlay_buffer_info structure to hold the buffer geometry
The overlay_buffer_info buffer geometry and size. When calling the
overlay from the gralloc or hardware composer, populate this structure
with the information from the gralloc handle.

(cherry picked from commit 128adc3b8177ef72f2bf21f4022d7ef06ed9281b)

Change-Id: I2f60f691ac01e67f150c753f168be754b14f94e6
2011-09-19 19:16:36 -05:00
Saurabh Shah
cb098e76e8 Handle overlay setup failure
Separate overlay setup and overlay play.
On setup failure, mark the layer to use C2D if enabled.
Else mark the layer to use GPU.

CRs-fixed: 292398
(cherry picked from commit b1459b0b1106ed66810b1c5a09878fae353c123c)

Change-Id: Id4c27384193612ab13e87d18492b0fef662eb8b4
2011-09-19 19:16:36 -05:00
Naomi Luis
4066a02c83 libhwcomposer: Honor the HWC_DO_NOT_USE_OVERLAY flag
If SurfaceFlinger marks a layer with the HWC_DO_NOT_USE_OVERLAY
flag, do not use the overlay to draw the layer

(cherry picked from commit 9271a839b6bbbdc7b22bd7f1dca6f4c0c63de965)

Change-Id: Ie44586a1254a2dc2ad41ae902debc5bb442cbfde
2011-09-19 19:16:36 -05:00
Naomi Luis
07e8ae7fe4 libhwcomposer: Skip composition if there is no UI update
If we have only one overlay layer, and the rest of the layers
are not updating, set the HWC_SKIP_COMPOSITION flag to inform
SurfaceFlinger not to compose anything. Also skip the drawing of
any UI frames and swapping the buffers.

Change-Id: I2f6554c905756a08880cba531c0210a58396179b
CRs-fixed: 289477
2011-09-19 19:16:36 -05:00
Jeff Boody
9d25efb361 libhwcomposer: return error if Android native buffer is null
Change-Id: I78d35779aa0d15086828ad1cf10ce6ff8b844336
2011-09-19 19:16:36 -05:00
Naomi Luis
c17c053935 libhwcomposer: Disable alpha if layer blending is disabled
If the layer blending has been disabled, disable copybit alpha so
that copybit does not perform any blend operation.

Change-Id: I9a83fad0f126adaf9540bc72d17e7dcb1c55cd0f
CRs-fixed: 288527
2011-09-19 19:16:36 -05:00
Naomi Luis
49f32e10cb libhwcomposer: Use layer alpha value
Set the copybit plane alpha equal to the layer alpha value.

Change-Id: Idcb5a23cc5e99061ddd31a3da7bedda2867d579d
CRs-fixed: 288257
2011-09-19 19:16:36 -05:00
Naomi Luis
7c3d92ed0b libhwcomposer: Handle HDMI disconnect event
- Inform the gralloc of the HDMI status.
- If the HDMI is disconnected, close the overlay and also inform the
gralloc that video mirroring has stopped.

Change-Id: Ie89ffe860c0f9c9142d6c7f5d7a6c555884561ce
CRs-fixed: 286954
2011-09-19 19:16:35 -05:00
Naomi Luis
c99d13825e libhwcomposer: Enable COPYBIT_PREMULTIPLIED_ALPHA if the layer blending is premutliplied
Change-Id: Iefe0ddeaa20b4411074079bc77ac17cc0e38c27e
2011-09-19 19:16:35 -05:00
Naomi Luis
9c2ba115fd Add support for dynamic resolution change with overlays
Whenever there is a change in the buffer geometry, set a flag in the
gralloc handle stating that the buffer geometry has changed.
In the HWC, whenever we encounter an update in the geometry, if the
channel is already open, we just call the necessary ioctls to update
the overlay information and not unnecessarily open/close channels.

Change-Id: I27db8fc497ebc514e262d6b7854739f312644714
2011-09-19 19:16:35 -05:00
Naomi Luis
56a78ad233 libhwcomposer: Add support for maintaining original resolution
When the layer flags are marked to maintain the original surface
resolution, draw the layer using the overlay.
Store the HDMI status in the overlay object instead of the HWC
context.
2011-09-19 19:16:35 -05:00
Naomi Luis
8818296680 libhwcomposer: Use sanitized kernel headers
(cherry picked from commit 68e70474c2acaf35e42c4656e19d5f35012d0d70)

Change-Id: I8f77453d64f1c2c1e974b96c0727616bf0a8bf87
2011-09-19 19:16:34 -05:00
Naomi Luis
cd8f8d8e84 libhwcomposer: Close the overlay channel after video/camera playback.
Change-Id: I321acdb5ff00d7d70399d044473ef9b5ad9f547e
2011-09-19 19:16:33 -05:00
Naomi Luis
7b7b48531e libhwcomposer: Set the correct copybit parameters
Set the correct parameters for the source and destination rectangles
when drawing the layer using copybit.

Change-Id: I6ab7e2b5ba7b457a5bc604fd3a0031e6bada82cb
2011-09-19 19:16:33 -05:00
Sridhar Parasuram
2a50a0a894 Fix copyright markings
Change-Id: I2170d0dbd9270bcfd38ea2f8c7052ac387b9e0c9
2011-09-19 19:16:33 -05:00
Naomi Luis
ac47ade639 hwcomposer: Add support for C2D/MDP composition
Add support in the HWC to use C2D and MDP composition via the copybit HAL

Change-Id: I19a98d9821600fdfbadcab53329027ef17aa8f1f
2011-09-19 19:16:33 -05:00
Naomi Luis
f59c70eab4 libhwcomposer: Add null checks
SurfaceFlinger calls a hwc_set with a NULL context and
list when it is releasing the HWC. Check the validity
of the pointers before using it.

Change-Id: I5b61cc50a85b9b660646789b2cf9a0f4ee6e4a5c
2011-09-19 19:16:33 -05:00
Arun Kumar K.R
7e5f14bb48 Add support for video on HDMI
Enable video on HDMI when cable is connected.
Inform gralloc module when video playback starts and stops.

Change-Id: Icc2a1b62fcd8cf75c1be98d88c3fa4dc49ef0278
2011-09-19 19:16:33 -05:00
Arun Kumar K.R
49d7fa781d hwcomposer: Add support in the HWC to store the HDMI connection status
Change-Id: Id9afe4da3b69465e356c16a227653896f2fd86c5
2011-09-19 19:16:33 -05:00
Naomi Luis
13ac17278d hwcomposer: Initial version of the Hardware Composer HAL
Initial HWC changes
- Add support to recognize video/camera buffers in the prepare phase
- Use overlays to draw single video/camera layers

Change-Id: I3351b3172fae12d9f6e016ff7e1a2f6a476799b3
2011-09-19 19:16:32 -05:00