71 Commits

Author SHA1 Message Date
Rajulu Ponnada
e17722b895 hardware/qcom/display: Add debug feature to display FPS for both bypass,fb
Change-Id: Ib4991200db9bc64c823c57ed1fba43f836142957
(cherry picked from commit cc57c2f34b936636e9c52dc43689d9386bcd0e35)

Conflicts:

	libgralloc/Android.mk
	libhwcomposer/Android.mk
	libqcomui/Android.mk
2012-03-16 20:51:30 -05:00
Naomi Luis
72aff33e3e libhwcomposer: Continue the loop when we skip composition.
When the HWC_SKIP_COMPOSITION is enabled, continue looping through
the layers instead of breaking the loop. Thus we are assured that
all overlay layers are always drawn.

Change-Id: Ia8d4c7003838cbb86e2f0ea8b5ef2d47516aa011
CRs-fixed: 333986
(cherry picked from commit 8c2a615a0a3d89a5830af3b8117115ae8071bd27)
(cherry picked from commit 11ea4a3635a347182f6b2f8f2ad6e3b394a13eda)
2012-03-16 20:44:07 -05:00
Naomi Luis
7407479717 libhwcomposer: Unlock video layers below the SKIP_LAYER.
If there is any video layer below the HWC_SKIP_LAYER, we compose that
video layer using the GPU. Unlock any previous video buffer that were
sent to the overlay.

CRs-fixed: 333974
Change-Id: I1937ca8b139f40453a3bccb0b490fd4d65fa1f52
(cherry picked from commit 48a3996a2178244ce6365f97212c55e7ab33752a)
(cherry picked from commit f4a08165b2d3be97b72287fc4001cb5c90d57c07)
2012-03-16 20:43:54 -05:00
Ramakant Singh
5cfdca4008 Display/libhwcomposer:Add intermediate stretch for low resolution clips
Copybit module has a limited stretch to scale a clip.
Hence we need to do a intermediate stretch before going
to final stretch.

(cherry picked from commit 6503d323f9e113c0edf66e724bb422559ecbd5cb)

Change-Id: Ib8ea9a917896985d4f7d7ebf999222f2dc6f6480
2012-03-16 20:41:57 -05:00
Naseer Ahmed
6f273c5c6e hwcomposer: Enable dithering if FB format is RGB565
CRs-fixed: 329362

(cherry picked from commit acd73753d1da0ba587fea91a2605229c7274e7b7)

Change-Id: I5155e98a87d17066fab6075d2b067175e4a6b56c
2012-03-16 20:35:33 -05:00
Jeykumar Sankaran
e806dc448b libhwcomposer: Fix dynamic composition for 2 overlapping layers
This change allows composition to fall back to c2d even if the second
layer overlaps the base full screen layer.

CRs-Fixed: 326413
(cherry picked from commit b27338930d5bf3de17d03b06db6169e648d5e5fc)

Change-Id: Iaf1bf706fb216286047452173b58aeba1781cd9b
2012-03-16 20:35:04 -05:00
Naseer Ahmed
71e0e80dbd display: Add support for protected heaps
(cherry picked from commit c932690c5a9d0aedfd2580e5c5e9f79e32f54261)

Change-Id: Ibddab4252ecefa1c410430b89f94aba4d3ae1c96
2012-03-16 20:34:50 -05:00
Naomi Luis
cf67073149 libhwcomposer: Mark all layers below the SKIP layer for GPU composition.
If there is a SKIP layer present, the SKIP layers are first composited
using the GPU. If there any layer below the SKIP layer that performs
any operations on the FrameBuffer, it results in undesireable results
on the screen e.g. artifacts, since SurfaceFlinger draws the SKIP layers
before the HWComposer.

Change-Id: I198236673e2a0bd19a6087ff01049061547abb47
CRs-fixed: 327392
2012-03-16 20:31:07 -05:00
Naseer Ahmed
25297cbe9b display: Fix blending on MDP 3.0
Assign the correct blending value
for MDP 3.0, earlier it was
incorrectly assigned to zero
for cases where blending was not needed.

Change-Id: Icec6541616c8a9dc6ffc0e99c5b2936389799656
2012-02-06 23:19:37 -06:00
Saurabh Shah
90e1eda3a3 Refactor OverlayUI
Refactoring is necessary to attain flexibility in setting mdp overlay params
at runtime, while using composition bypass.
This change includes new APIs for setting crop rectangle, display params and
commiting mdp params, namely setCrop(), setDisplayParams() and commit(),
respectively.

Change-Id: Id57035602baabd954fd6b484be4f63fef632d74b
2012-02-06 23:19:37 -06:00
Jeykumar Sankaran
dadd73f13f libcopybit: Disable copybit blending for opaque layers
This change disables copybit blending when surface flinger sets
HWC_BLENDING_NONE for a layer.

Change-Id: Ie86a2d5c9e3d3dab1bc7a0a3cc31bff7afe604da
2012-02-06 23:19:37 -06:00
Ramakant Singh
36ba650a17 Display/libhwcomposer:align the copybit src and dst buffer
Align the copybit source and destination buffer according
to the frame buffer pixel format.
CRs-fixed: 327687

Change-Id: I00a0a047f2f6d639202e8395d85902b821e2a65c
2012-02-06 23:19:37 -06:00
Naomi Luis
42c4db1c6e libhwcomposer: Check the number of open overlay channels
When performing the setup for bypass operations, check the number
of bypass channels that are in open state. If the count does not
match the number of bypass layers, close all the bypass channels.
This is done to prevent the overlay channels from going into an
inconsistent/undefined state.

Change-Id: If471a4b4437e25642586616461c5d745f15b3287
CRs-fixed: 323676
2012-01-01 17:54:54 -05:00
Steve Kondik
d2dde1230a Merge branch 'ics' of https://github.com/toastcfh/android_hardware_qcom_display into HEAD
Conflicts:
	libhwcomposer/Android.mk

Change-Id: I22baeb33395aa3478554109781dd1ded2293490b
2011-12-30 09:25:44 -08:00
Jeykumar Sankaran
7abeff1de3 Display: Use bitwise operators on HWC flags
Change-Id: I031a6510622a1e768651bcd91d3ab6f399fc81f1
2011-12-26 16:46:14 -05:00
Naomi Luis
4438e2f942 libQcomUI: Implement clearRegion for C2D/MDP/CPU composition.
Implement clearRegion for C2D/MDP/CPU composition. This prevents
glClear and therefore the glFinish from being called, thus
improving performance.

Change-Id: I03d9230e03cce11d9fe7e2bd34e4df8328ad2e00
2011-12-26 16:46:02 -05:00
toastcfh
eae32cda02 display: use some cm specific build flags and fix up cflags for qcom hardware
Change-Id: I3e39bbb522313d4bafd97cd205411f32a992a697
2011-12-22 22:04:28 -05:00
Jeykumar Sankaran
5312f7f48e Display: Add support in libqcomui to check FB update
This change adds support in libqcomui to check if FB is updated
by a composition type

Change-Id: Ic23f24d95166cb9b1a03614f1c0fd562f321a1fd
2011-12-22 21:44:07 -05:00
freexperia
9be3ed9e53 qcom_display: added missing flag for idef eglGetRenderBufferANDROID
Change-Id: I1a531d223cfc21e741b083eba002ba9293fd6047
2011-12-22 11:39:58 +02:00
toastcfh
b67994677f Merge git://codeaurora.org/platform/hardware/qcom/display.git ics into ics and resolve conflicts
Change-Id: I3acb5e963763821d2b547cf3c9390754dc42c12f
2011-12-18 19:45:23 -05:00
Mathew Karimpanal
d120c0dfac libhwcomposer: Mark layers below skip-layers for GPU composition
If module composition type is MDP or C2D and we have a skipped layer
(usually layers without backing buffers, layers with "invalid"
orientations or debug layers), mark every HWC layer below this layer
for GPU composition.
This logic is needed because ICS SF composes a bunch of z-ordered
HWC_FRAMEBUFFER (GPU) layers first and then the remaining bunch of
z-ordered HWC_OVERLAY layers last which breaks the overall z-ordered
layer rendering requirement. This logic also holds valid for 2-layer
bypass in ICS.

Change-Id: I5082affac8affd6b19d78be827d149901945a163
2011-12-15 14:23:41 -07:00
Naomi Luis
8287f5bbcb libhwcomposer: Validate the previous overlay and bypass handles.
Validate the previous overlay and bypass handles before unlocking
the buffers. The reason for doing this, is that in certain use cases,
after the previous handles are stored, the buffer gets destroyed and the
handle is now invalid. The HWC however doesn't know that the handle is
invalid and tries to unlock the handle, resulting in a failure.

CRs-fixed: 323614
Change-Id: I0f0c8506e7e22f9fc01eb28af0270f9c4587c787
2011-12-15 04:35:31 -07:00
Naseer Ahmed
75e2a92af4 hwc: Initialize padding for copybit
Change-Id: I053431caa114fdc9a09584933b10b4d27d34ec74
CRs-fixed: 324785
2011-12-14 16:55:42 +05:30
Naomi Luis
0afa0e42a6 libhwcomposer: Use the HWC private flags from libQcomUI.
Qcom specific private flags have been moved to libQcomUI. Use these
flags flags in the hwcomposer.

Change-Id: I9898dd11a7fff72678fa1f744454fcf310507a63
2011-12-13 11:23:32 -08:00
Naomi Luis
27774b1a66 libhwcomposer: Set the Framebuffer info for copybit composition.
Invoke copybit's set parameter call to set the framebuffer width and
height.

Change-Id: I735772e21b9fead48686fac3371b6b93156ece8a
2011-12-10 16:44:33 -07:00
Naseer Ahmed
c2e6b1f62e display: Use bypass only for contiguous memory
Since composition bypass uses MDP overlays, which
need physically contiguous memory, we cannot use
bypass in cases where the buffers are using ashmem
or other virtual memory. Hence, avoid bypass in
such cases.

Change-Id: I5c6d20e68e15719295373a1b0f3b930536336c43
2011-12-09 14:47:10 -07:00
freexperia
b151a85950 msm: cleanup to compile msm7x30
Change-Id: Ie1ca24c4f08de56a07c8e299ffbb00fc4af85a8a
2011-12-06 07:03:30 +02:00
Sushil Chauhan
f2dbabe786 Bypass: Turn off only after FB content is displayed.
Synchronize turning off of composition bypass with display,
so that close happens only after FB content is displayed.
This fixes blinks observed when bypass needs to be turned off,
for reasons other than video content.

Change-Id: Id98bddd0cb2a89ea8729a188934ae1cd947cf305
2011-12-05 16:52:39 -08:00
Naomi Luis
599d9a41bc libhwcomposer: Unlock buffers if the input params are invalid.
If the input parameters in the prepare and set functions are invalid, unlock
any previously locked buffers.

Change-Id: Ifd3b02c3ae6d2095970d5e15b98196d7fa7dee4e
CRs-fixed: 322054
2011-12-05 14:02:34 -07:00
Naomi Luis
b0e7470e4f libhwcomposer: Lock/unlock bypass buffers using genlock
Use genlock to lock the bypass buffers before they are queued to the
overlay. After all the bypass buffers are queued, use genlock to
unlock the previously locked bypass buffers.

Change-Id: Ifdd7921f0c9f5d5744c899a0257a4b954274334b
2011-12-01 18:25:44 -08:00
Diogo Ferreira
36bbca99c8 display: Set optional module tags instead of eng
Change-Id: I813779637488b11f0f3c1279f0ee3dcb2357b837
2011-11-29 01:52:56 +00:00
Naomi Luis
e2de425bc4 Display: Set WAIT on primary and NO_WAIT on HDMI
When queuing buffers using the overlay:
- Set the NO_WAIT flag for the HDMI channel.
- Set the WAIT flag for the primary channel.
- Queue the buffer on the HDMI first.
- Queue the buffer on the primary.
- Wait for the HDMI Vsync.

Change-Id: Id24e9551230b7a7134bd21a7b3a9e8658f7de222
2011-11-28 16:10:51 -08:00
Naomi Luis
be1b5f3d66 libhwcomposer: Use genlock to lock/unlock buffers for composition.
For copybit composition, aquire a read lock on the buffer, before
the blit operation and release the lock after the blit operation.

For overlay, aquire a read lock on buffer N that is sent to the
overlay. After the play call for buffer N returns, unlock the lock
held by buffer (N-1).

Change-Id: I3ff178d8ed8e3a289c199237dbec501afdb7e717
2011-11-25 16:27:59 +05:30
Naseer Ahmed
229856bedf HWC: Fix for non-overlay targets
Do not call prepareOverlay, instead
use copybit to compose video frames

Change-Id: I5e85b0b65009de37ab792e59d259d8f1879fb0c4
2011-11-23 17:22:36 -07:00
Sushil Chauhan
ef62685ddd Enable Composition Bypass.
1. Enable composition bypass for 1 or 2 non-overlapping layers.
2. Open bypass only if video playback status is CLOSED.
3. Close bypass immediately if Video or Camera needs VG pipe.

Change-Id: I1bef030b32ff2721d00b61f7717027d4d9219d04
2011-11-21 11:36:58 -08:00
Jeykumar Sankaran
4d5323cc6d libhwcomposer: Enable c2d composition in HWC
This change enables c2d composition in HWC by removing the temporary
flag added in the following commit:

    commit 7b814382adec44275389dd18d34c790576e67988

Change-Id: Ia6705c369090b14f3a00678c4e82078bd6e58847
2011-11-20 21:43:22 -08:00
Prabhanjan Kandula
96dd6a36b9 Display: Overlay HAL changes needed for HDMI
-Add overlay defines needed by framebuffer
-enable compile time flag for HDMI

Change-Id: I5b9a8412c579a3a8cd0e0283dc5fd7e26266c170
2011-11-20 21:42:53 -08:00
Jeykumar Sankaran
7b814382ad libhwcomposer: HWC change to accomodate HAL changes
-- Enable HWC
-- handle overlay as lib rather than HAL
-- move copybit changes under COPYBIT_ENABLE flag (temporary)

Change-Id: I36d8f9688cd7cbd838e288e5f482d8ee5c9b2df6
2011-11-18 02:04:19 -08:00
Naseer Ahmed
dd6a62c9dd hwc: Change Android.mk to point to new display gralloc
Change-Id: Ie7c08fb55339c2c7b7bf2c28576291a5a1e1d809
2011-11-16 12:46:41 -08:00
Saurabh Shah
e62cceadf6 Multi layer composition bypass
Allow 1 or 2 non overlapping layers to use composition bypass.
This is an enhancement to the previous approach which uses
bypass strictly for 2 layers.

Change-Id: I879903db44cb1fddbe3e428ffa77eb67e95e0886
2011-11-04 18:47:51 -07:00
Kinjal Bhavsar
6eb041de80 msm7k: Detect display type and mark layers
Mark layers for convert to S3D when playing S3D content on a 3DTV.

Change-Id: I355a73753682134b8ec5544a03d55ae40793e897
2011-10-25 12:23:11 -07:00
Saurabh Shah
f3353ad328 Bypass: Fix source dimensions
Since the RGB buffer could be 32 aligned, use actual source dimensions.

Change-Id: Ice615e34a304c864cbe8fef044e14e9f835f9359
2011-10-18 13:22:45 -07:00
Naomi Luis
38fa4f72ff libhwcomposer: Close overlay channels in HWC set
Close overlay channels in the next HWC set phase. This allows the
framebuffer to be composed prior to the closing of channels.

CRs-fixed: 305070
Change-Id: I8719381136c20c0febbd4f7bf5b935b92f6508ec
2011-10-18 13:22:41 -07:00
Naomi Luis
376ed9acd9 Enable overlay NOWAIT when there is UI update.
When composing UI along with video, enable the overlay NOWAIT option.
If there is no UI during overlay playback, use the WAIT flag.

Change-Id: Idc538e4412c790fc295a3aff1d1f23a6e4767fce
2011-10-18 13:22:35 -07:00
Naomi Luis
8afdc162ea Upgrades to the updateOverlay functionality.
Update the overlay when we have a channel up. Previously, we did updates
only when the width and height changed. Now, we always update the overlay
when the channel is open, and not close the channel to update parameters
such as orientation change, flags etc.

Change-Id: I0b2ef8b19bd860d5361c391e040ff497f1023ae3
2011-10-18 13:22:31 -07:00
Saurabh Shah
34aead9cf1 Composition Bypass: Bypass composition if we have 2 visible layers.
Bypass composition if we have 2 visible layers. However, this feature
is not used if:
1) Video playback is on
2) Rotation involved
3) App launch animation
4) HDMI connected

Set property debug.compbypass.enable=1 in build.prop
to enable this feature.

Change-Id: I4c0fa2aa1999c06c51f2b9a58641203316896e53
2011-09-23 19:04:10 -07:00
Jeykumar Sankaran
d7add45e8e Fix dynamic composition on framebuffer rotation
This change fixes a bug in detecting fullscreen condition for
dynamic composition.

Change-Id: Ieadaf970061badc1d2f876560c1118fccf3a420a
2011-09-19 19:16:37 -05:00
Arun Kumar K.R
370a5212ce hwcomposer: Inform gralloc about video before prepareOverlay
prepareOverlay will setup the channels for video playback, so
inform gralloc to close UI channels before they are setup.

Change-Id: I757a8fd79661eb66ccbe2ac1475e48740bbf1733
CRs-fixed: 298102
2011-09-19 19:16:37 -05:00
Jeykumar Sankaran
bfe4f06ee4 libhwcomposer: Add support for dynamic composition switching
This change adds support in HWC to switch between c2d and gpu composition dynamically.

Change-Id: I52effdc3722034cbb0e859e66334ca4769f0d5c6
2011-09-19 19:16:37 -05:00
Naomi Luis
61390825ec libhwcomposer: Move the skip composition logic to a separate API
Create a new function to check if we need to skip the composition
during overlay operations.
Reset the previous compCount variable if there is no video layer present.

Change-Id: Ibf570805114440f117f0fb98b5f2d53c1780ec84
CRs-fixed: 298014
2011-09-19 19:16:37 -05:00