Commit Graph

30 Commits

Author SHA1 Message Date
Jeykumar Sankaran
cfb095ef61 libqdutils: Add copybit support to qdutils
- Introduce cbutils for copybit utilities
- Don't use qcomuiclearregion if GPU is used
- Check for qcom composition types updating FB
- Dont show YUV information to copybit
- Fallback to GPU in the presence of SKIP layers

This change adds support in qdutils to check for FB
updating composition type.

Change-Id: I200d3798a27836a51f4b2e6c79cdd9d8b155fad8
2012-10-06 00:49:06 -05:00
Amara Venkata Mastan Manoj Kumar
d0181d6f7c hwcomposer: Remove vsync event control for WFD External Display
Change-Id: Ic0ffcfb035a8d0037d6394cb4b77888390eb7608
2012-10-06 00:41:40 -05:00
Steve Kondik
2657e2e851 hwc: Close overlay when HWC disabled
* SF will disable HWC before showing the electron beam animation. Close
   the overlay so that the GPU can be used.

Change-Id: I25bb3ed5cd9a5d80a590af4f94f2d0b903e98352
2012-10-06 00:40:55 -05:00
Jeykumar Sankaran
e8c4c541b2 libhwcomposer: Close MDP PIPES in hwc_prepare.
Since MDP is doing a deferred close on pipes after PAN DISPLAY
HWC can close the pipes in prepare

Change-Id: Ia451e3b2e388d1b2199a14e31c3991d5d1b057c8
2012-09-12 23:11:50 -05:00
Saurabh Shah
43dfffc8d6 hwc: wait for fb_post, PAN only if target has overlay.
Wait for fb_post, PAN only if target has overlay.

(cherry picked from commit c6e9a0aae817e75b4b5e20ef23edd02a0a627ccd)

Change-Id: I9696c122b3ce5abed2ae2adb9e5929d3664b3add
2012-09-12 23:09:59 -05:00
Naseer Ahmed
357ee6d8dc hwc: Call swap buffers even on NULL lists
Swap buffers and UI mirroring must be done even on NULL lists
which are composed by SurfaceFlinger.

Change-Id: I6c840e3dd02dfa447c10bf3f4798114fc74536ee
2012-09-12 23:08:48 -05:00
Prashant Surana
cc5cb1781c Add support for PIP, picture in picture feature
Add a new state and required implementation in new overlay to support playback
of two videos using overlay.
Add a new class VideoPIP to handle the pip feature.

Change-Id: Ibce7044bc1216cba77bd952e191aed5472ed6737
2012-09-12 23:07:49 -05:00
Saurabh Shah
0a2352aee5 hwc: Unlock prev. buffers in N+1th draw round.
Unlock previously locked overlay buferrs in N+1th draw round, rather than N+2th.
This is now possible because of wait for PAN.
Provides an opportunity to improve genlock behavior and makes it more ICS like.

(cherry picked from commit b3a4cd7944397565388b4e940fb41d2af8882687)

Change-Id: I48f937b77d59b31f3bf04c5a2eb35500bd5d76d6
2012-09-12 23:06:57 -05:00
Arun Kumar K.R
b25918ac52 hwcomposer: delay starting the uevent thread
- There is a race condition window between initializing hwcomposer as a
  whole and registering callback functions for when the uevents arrive. We
  can fix this issue by delaying the uevent thread kick off until the
  callback functions are registered.
- Add thread name to uevent thread

Change-Id: I30e23b411b92b6578f186b641f562462a8f23179
2012-09-12 23:05:51 -05:00
Arun Kumar K.R
cc18cfed4c hwc/fb/overlay: wait for fbpost and pan display
Draw sequence in hwc_set
--eglSwapBuffers
--wait for fb_post. Its ok to draw to External only at this point.
--draw to external   | Parallel with PAN
--commit to external | Parallel with PAN
--wait for pan (happening in fb_post) to finish.

Call MSMFB_OVERLAY_SET ioctl only when params change.

These thing together ensure a correct sequence and should fix tearing and
stuttering, the latter assuming there are no other display pipeline delays.

Change-Id: Ibb0ad8485fa6b30dc6ac07ae8b25a760941c08ce
(cherry picked from commit c50c90863e41e31ecfe6963396b5def35e9dca34)
2012-09-12 22:58:18 -05:00
Saurabh Shah
1be2fcd4f0 hwc: qbuf: Add API to unlock all
Add API to unlock all current and previous buffers.
This is essential in suspend cases.

CRs-fixed: 382332

(cherry picked from commit d24eb9e70480f89561108078f68cbbd9b20e4bb5)

Change-Id: I54fcded7cabc79d991d4b28a248867d860ec6b08
2012-09-12 22:52:42 -05:00
Andrew Sutherland
54cbb6f94f Revert "hwc: call eglSwapBuffers even when there is no list"
This reverts commit 7b060c9cab.
*causes blank draws, revisit someday
2012-09-07 21:58:21 -05:00
Andrew Sutherland
7b060c9cab hwc: call eglSwapBuffers even when there is no list
Should fix crt-off animation

Change-Id: Ia38a35dcb16811337c80a3f7069d770e6eebb8a7
2012-08-21 16:11:17 -05:00
Steve Kondik
85ff2df3a5 display: Add option to disable hardware VSYNC
* Set TARGET_NO_HW_VSYNC to disable use of VSYNC

Change-Id: I9c48f89ba6d4a39baf7c149717b13c83c0b7f3eb

Conflicts:
	common.mk
	libhwcomposer/hwc.cpp
2012-08-12 00:10:39 -05:00
Amara Venkata Mastan Manoj Kumar
211f9f4144 hwc_composer: Support of WFD Display.
1. WFD Event Detection.
    2. WFD/HDMI Priority Decision.
    3. Configure HWC for WFD Connect/Disconnect.

Change-Id: I1c1bbae449ce38d9b32e8e2bd66d14ae98468c49
2012-08-08 20:30:11 -06:00
Arun Kumar K.R
9813cf3bdc hwcomposer: Store device orientation in hwc context
Instead of determining the device orientation based on the
layer orientation, use the value which comes from the framework

CRs-fixed: 382796
Change-Id: I83e87534fbfc62740a411f1324b2c12e88434b41
2012-08-08 10:53:29 -07:00
Sravan Kumar D.V.N
c1e7e4861a display : Enable vsync for MDP3 targets
-Enable vsync for MDP3 targets
-With this change all targets except 8x55,
 have vsync enabled

Change-Id: Ic0856359a28c730948d7d74427f6802ed89cc1b1
2012-08-07 14:52:57 +05:30
Neti Ravi Kumar
97d3484b12 libhwcomposer: Add C2D support to copybit
Change-Id: Icb1a010f8079bb3f2122d8520c87d60b757d73bd
2012-07-31 10:36:51 +05:30
Saurabh Shah
bf3c454efe hwc: Add support for external-only layers
Add support for different types of external-only layers
EXTERNAL_ONLY: General purpose
EXTERNAL_BLOCK: Blocks the display of other ext-only layers
EXTERNAL_CC: Used for closed captions with videos.

Change-Id: I7cb531a55a2f0015e3a51673faf08941bcea1923
2012-07-27 08:24:25 -07:00
Naseer Ahmed
32dd0125d9 hwc: Disable HW vsync for some targets
7x27A, 8x25 and 8x55 do not support HW vsync yet.
This change checks for their MDP version and disables HW vsync
on them. This change should be reverted once hardware vsync is
available on these targets.

Change-Id: I0cb884f571346b3595169cb4b3c01bbdb7ecaaee
2012-07-27 08:23:50 -07:00
Naseer Ahmed
912842f62d display: Get panel type from framebuffer
Change-Id: I5dc16125bbb7d864dcb7106166e91b950a44d686
2012-07-27 08:23:40 -07:00
Jeykumar Sankaran
bd86fcfff6 display: Add support for MDP Composition
This change
   1) implements MDP Composition upto 3 layers
   2) adds invalidator support to fall back to FB
      composition during idle screen condition.

Change-Id: I8d724f905c943f986b68596e2548a7f5a8ce6588
2012-07-27 08:23:34 -07:00
Arun Kumar K.R
a72904b1dc hwc: enable vsync for external display
- wait for hdmi vsync when connected to hdmi
- add commit to call PANDISPLAY for updating ext display
- add functions to close fb and reset info

Change-Id: Icdd3620bd9d15240a88a26a3f1bf9c07d58d011b
2012-07-27 08:23:30 -07:00
Naseer Ahmed
9ccb3975c7 display: Enable vsync
* Use the vsync uevents from the kernel to start
surfaceflinger composition.
* This patch also does some code cleanup
    - Move copybit specific functions to copybit files.
    - Cleanup verbose logging.
Change-Id: I8ca3cd7a7ceb53655ed0fcf39ac2cb35e6cbe890
2012-07-27 08:23:23 -07:00
Sravan Kumar D.V.N
c80da70cbe display : Add support for copybit composition
This change add support for copybit composition in display HAL
for MDP3 targets.

Change-Id: I80144619f39a895d2f214adb6ca92d0a7f5ed9a5
2012-07-20 19:56:54 +05:30
Arun Kumar K.R
59d5b624c6 hwcomposer: Add support for UI mirroring
- Uevent observer as part of Hwcomposer
- HPD, enabling/disabling external display from HWC

Change-Id: I52b4f30c78e98c5b52c86722046389f458c2dbee
2012-07-18 11:09:16 -07:00
Saurabh Shah
399667e7c4 overlay: upgrade
p#1: Remove WAIT and CHANNEL enums and usage. Replace BypassPipe with
     GenericPipe. Client expected to set alignments and parameters.
     Add transform combination enums.
p#2: Allow APIs to be called in any order. Do transform calcs in commit.
     Move ext type setter and getter functions.
p#3: Add calculations for 180 transform.
p#4: Add secure session support in rotator
p#5: Implement all rotations in terms of H flip, V flip and 90 rotation.

Change-Id: I34a9a2a0f1255b3467a0abbaa254d0b584e901ce
2012-07-17 17:49:01 -07:00
Saurabh Shah
5704501325 hwc: Add VideoOverlay class
Add videoOverlay class for display videos with overlay.

Change-Id: I161d1732fdf8336d0b6dcf5326e6adb7514a2d02
2012-07-13 23:49:15 -07:00
Naseer Ahmed
6e75c3d61a display: Add QC Display utils
* Rename qcomui directory to qdutils
* Avoid inclusion of qcom_ui header
* Add class to get MDP version
* Add namespace for qdutils to prevent collison

Change-Id: Ib8b083ecfa071bbf9f72bfbfb8ecd6b202e87847
2012-07-10 02:03:46 -06:00
Naseer Ahmed
7341799797 qcom/display: Update HALs
- Update the display HAL from Code Aurora Forum
- Add updated overlay library
- Enable HWC with basic video going through overlay
- Cleanup some files

Change-Id: Ia53650759d4fe99bde395b7b4e8e02e6e65845e0
2012-07-10 02:03:45 -06:00