Commit Graph

14 Commits

Author SHA1 Message Date
Jeff Boody
6ee9758eb8 libhwcomposer/libqcomui: disable composition bypass for asynchronous mode
The current composition bypass implementation prevents the app frame rate from
being decoupled with vsync. As a result when a graphics application requests
EGL swap interval zero it is still limited by vsync. This change disables
composition bypass if any layers being composited for the frame are in
asynchronous mode.

CRs-Fixed: 335498
(cherry picked from commit 8e1a74ffff6a07ac9ef649347b7ac23be143f2ea)

Change-Id: Ia0b6b14fbc953b04616667a494d98fcca99932f9
2012-03-16 23:30:29 -05:00
Saurabh Shah
e15d259d8c hardware/qcom/display: External-only display.
Add support for external-only display. Layer buffers
marked with GRALLOC_USAGE_EXTERNAL_ONLY will be
displayed on external panel only, if available.

In addition if the layer buffer also has the flag
GRALLOC_USAGE_EXTERNAL_BLOCK then only that layer
will be displayed on external (During suspend).

When this mode is on, the default mirror mode for
external is stopped.

Conflicts:

	libhwcomposer/hwcomposer.cpp

Change-Id: I8ea2920384c5b68311ee3fe00707d01ab6568b52
2012-03-16 23:29:57 -05:00
Zhoulu Luo
84961f81a5 libhwcomposer: Add support for 3 layer bypass
This change allows 3 or less layer use cases to get bypassed completely via MDP pipes.
If more than 3 layers, all of them gets composited on FB.

Intended FB fallback cases:
  1) 4 or more layers
  2) Any MDP pipe is in use
  3) Any layer needs rotation
  4) Any layer is allocated from non-pmem

Change-Id: Ieb2b30b8ab9893fd68c7fc61ec889ac9a01cb7dd
(cherry picked from commit 001ffcfef1d63948926b1be67c4977d13ae1b159)

Conflicts:

	libhwcomposer/hwcomposer.cpp
2012-03-16 23:16:24 -05:00
Arun Kumar K.R
37c2692006 qcom/display: Add support for WFD
- HDMI has priority over Wifi display, if HDMI is connected during
  Wifi, close the session for Wifi and start one for HDMI.
- the enableHDMIOutput parameter externaltype - HDMI/WIFI/OFF

Change-Id: If2cd9143fc7a953db49f38a6c166f9425ba5266e

Conflicts:

	libqcomui/qcom_ui.cpp
2012-03-16 23:13:28 -05:00
Neti Ravi Kumar
4952f4297b libqcomui : Compose UI in S3D format
The new class QCBaseLayer has been added. It implementsthe composition
of S3D UI when 3D video is playing. HWC adds hints to UIlayers for
composing them in S3D format when running S3D video.
Compose them in requested format.

(cherry picked from commit 080e303a70f89a1b0601a45c0815042addb7ac63)

Change-Id: I1d33a1419914b8e06618acd335f89808dc692742
2012-03-16 21:34:47 -05:00
Paras Morabia
6fd8923a96 QCommUI/HWComposer: Allow application to set 3D format
This change allows the application to set the S3D format for the surface.
With this change application would be specifying 3D format and that would
be handled by hwcomposer would handle it appropriately.

Change-Id: I6b7b33712ab85b8a94231bd65a19709b3c2cd606

Conflicts:

	libqcomui/qcom_ui.cpp
2012-03-16 21:28:48 -05:00
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
Neti Ravi Kumar
08e0b71c29 libqcomui: Select texture target based on pixel format
Do not choose GL_EXTERNAL_TEXTURE_OES for all formats, instead,
select between GL_EXTERNAL_TEXTURE_OES, and GL_TEXTURE_2D based
on the pixel format.

This change is done to reduce composition times.

Change-Id: I17edd78cdfa051f88ed6bd4e585c7a9b0705aa3a
CRs-fixed: 328074
2012-03-11 01:18:50 -06:00
Harshad Bhutada
23f2ec2103 libqcomui: add function to find if GPU supports a format in hardware
This is a helper function that will return false if the given format is
supported by adreno drivers but not supported in GPU HW. For these
formats, adreno will use software color conversion routines to convert
them to acceptable format by the GPU HW. This may be required if we
want to avoid creating texture for certain formats when not absolutely
necessary. Could be defaulted to return true depending on a compile
time flag.

Change-Id: Idb2200b5ed13bb8c184288d44340ed1aefeaa8df
2012-02-27 01:56:28 -06: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
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
Naomi Luis
8d7ff87f5c libQcomUI: Add support for qcom specific layer flags.
Add support for updating the qcom specific layer flags. Add support for
getting the per frame HWC flags based on the layer flags.

Change-Id: I5f7759a6a7fae6d4f70dd26f380a9b08e48e9475
2011-12-11 16:19:48 -08:00
Naomi Luis
be32078a40 libQcomUI: Add support for updating the buffer geometry
Add support for updating the buffer geometry without any reallocation
of memory. The buffer geometry is updated in the GraphicBuffer as well
as in the buffer handle.

Change-Id: I3fdb4f6a737277ab63fcbdb42e9c955ea7471760
2011-12-10 21:52:41 -08:00
Naomi Luis
18e73bc5c7 Display: Add libQcomUI
Add libQComUI which is used to perform operations specified by
SurfaceTextures.
The operation currently supported by this library is SET_BUFFER_SIZE
which deallocates and reallocates memory if the size allocated for the
buffer does not match the size requested by the client.

Change-Id: I370b94a91f5acf373f7040742aad7c2e7bb586fe
2011-12-10 21:52:29 -08:00