Commit Graph

133 Commits

Author SHA1 Message Date
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
Ricardo Cerqueira
ad7f1aa0d3 liboverlay: Make sure the crop rectangles' dimensions are even
Even out the values for both dimensions and position on both src
and destination rects.
This fixes both over and underrun issues, especially with HD panels

Change-Id: I781792d69cad83f76c3c0a45a5179a731661c3cf
2012-10-06 00:41:06 -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
andrew.boren
29808884a9 qcom/display: Fix ion header.
Change-Id: I4a7759c2bf52433565c8501c22627794fb9c45a1
2012-09-30 00:45:38 -07:00
Andrew Sutherland
51cba77355 Revert "libtilrenderer: enable debugging"
This reverts commit 0e74f1f414.
seems to work ok. this is far too noisy
2012-09-13 20:07:05 -05:00
Andrew Sutherland
0e74f1f414 libtilrenderer: enable debugging
Change-Id: I0d677df35c3584e6a50d6d9a11f863ce8c49c73c
2012-09-13 20:03:19 -05:00
Andrew Sutherland
becf389b5b libtilerenderer: fix include path
Change-Id: Ie4310ebe3e18d806c85a0a13cbd251a645b9e6a3
2012-09-13 20:02:58 -05:00
Andrew Sutherland
8ae3baa1c1 revert 4d8c72e... hwc: Enable MDP_BACKEND_COMPOSITION
Change-Id: I2b3b91b17b5b47a2771e4cc5b9e349326203d29e
2012-09-13 00:03:16 -05:00
Andrew Sutherland
b9d164d3e4 libtilerenderer: update include paths
Change-Id: I12d6bf9c929c2f379bb7fd58ff48c44c721a324a
2012-09-12 23:42:27 -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
Amara Venkata Mastan Manoj Kumar
1b69283a7f hwcomposer: keep secure content in an overlay when below skip layer
Secure content can not be displayed unless in an overlay.  Since
getLayerStats marks all layers under the skip layer for framebuffer
composition, when there is a skip layer on top of protected content,
the protected content disappears since surfaceflinger doesn't draw
protected layers.

Change-Id: I59dd5dffad08dbf578baa459f5f4c726b6674c83
2012-09-12 23:11:50 -05:00
Jeykumar Sankaran
0d7fad0878 libhwcomposer: Reset layer list before clearing MDP states.
This change resets layers flags and composition types
before clearing MDP states.

Change-Id: I03ec173df7dec67348942f307079b506649f592b
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
Amara Venkata Mastan Manoj Kumar
da0c6f2126 Overlay: Change MDP format for YV12 buffers
Android uses different alignments for YV12 buffers.
   Hence, introduce a new format (MDP_Y_CR_CB_GH2V2) for
   such buffers.

Change-Id: Id4d58dd77f22c9efb8ece9caa34a8717964bf58d
2012-09-12 23:09:51 -05:00
Saurabh Shah
8904b7a648 hwc/overlay: Add premultiplied alpha support.
Add premultiplied alpha support to video and mdp comp features.

Change-Id: Ieddaf82d5cc43c455bd1c10dbc82b0fc016903ea
2012-09-12 23:09:43 -05:00
Saurabh Shah
e684abd1ec hwc: video: Create crop and position structs only once.
Create crop and position structs only once.
Fix bug where x and y were not updated.

Change-Id: I7c6a873ba207997baa302b8999bdaf34cc938dba
2012-09-12 23:09:36 -05:00
Arun Kumar K.R
6f560322d7 display: Add support for video rotation on Ext display
- sourceTransform in the hwc_layer_t has the source buffer transform,
  use this transform for external display.
- This helps in showing videos with source orientation properly on the
  external display

CRs-fixed: 387357
Change-Id: I2ac7e5481a27b93d10ba3fc1ad2e4a8788dc20a5
(cherry picked from commit a51a41188d34db49528edadadbf9ddbc052e772d)
2012-09-12 23:09:28 -05:00
Pawan Kumar
b39f56b071 copybit: Fix crash when copy_image is called with Tile format
Add check for copy_image failure case.
CRs-Fixed: 393122

Change-Id: I5765120e87a135795d771c5d331275a66ade7e23
2012-09-12 23:09:10 -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
Steve Kondik
ddd0b7498d hwc: Correct default value of dynThreshold
Change-Id: I18aefe755334cb62e43fc2c39cc42fb0fcbadef1
2012-09-12 23:08:39 -05:00
Steve Kondik
e7e5ddbba9 hwc: Set premultiplied alpha flag appropriately
Change-Id: I516dc5c6d3bb4f02c98b4add5e818ae88d08eba4
2012-09-12 23:08:31 -05:00
Neti Ravi Kumar
4c01c36778 hwcomposer : Use system property to set DYN composition threshold
Change-Id: I15c82d46ec846ff2bff7a1fc7a924bb7fcf844f9
2012-09-12 23:08:23 -05:00
Saurabh Shah
82a40187e0 overlay: Remove OVASSERT from getFormatString utility
Remove OVASSERT from getFormatString utility. OVASSERTS should happen only from
critically wrong states of overlay.
Just failing in this utility method would allow a fall back to GPU.

Change-Id: I4467a750574ee90aee4fa2e0fbb041e7f386a63b
2012-09-12 23:08:14 -05:00
Ramkumar Radhakrishnan
9445335019 libgralloc: Allocate buffer Fix.
Fix to allocate buffer of size defined by the client using
NATIVE_WINDOW_SET_BUFFER_SIZE property function.

Change-Id: I29f3e7e85c2f8dd7c11149d78b2681e6478cef78
2012-09-12 23:08:07 -05:00
Prabhanjan Kandula
1759ea1ab0 libcopybit: fix YUV buffer alignments as per gralloc
buffer alignment in copybit should be in sync with
gralloc allignments while allocating buffer.

CRs-fixed: 377051
Change-Id: Ib2ae64e368ea3c92d3494c71da605197ccb4a9a5

Conflicts:

	libcopybit/copybit_c2d.cpp
2012-09-12 23:07:59 -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
Ramakant Singh
77e0c7b380 libqdutils::Use qcomuiClearRegion for dynamic composition
Change-Id: I7483f6967c6f712af15031c386fb08c8fdae0808
2012-09-12 23:07:39 -05:00
Steve Kondik
4d8c72e306 hwc: Enable MDP_BACKEND_COMPOSITION
* Add MDP_BACKEND_COMPOSITION flag to resolve flicker

Change-Id: I3dfa680e0c74ccbac69f40dc15e014153ce0b530
2012-09-12 23:07:14 -05:00
Andreas Schneider
6635f27cd8 qdutils: Add MDP v3.0.2 detection.
Change-Id: I22ad1f7fe3c2c03518e192b44f8f0f7018d8ff34
2012-09-12 23:07:05 -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
Sravan Kumar D.V.N
dc733193ef display : Do not use copybit for composition when YUV layer is present.
Do not use copybit for composition when YUV layer is present only in
overlay targets & use copybit in non-overlay targets.

CRs-Fixed : 385992
Change-Id: I671bc5f37b924160e32e900207fb81634dee0929
(cherry picked from commit 1f05b5ef18723bc73a21259ca7c5f112228a5c85)
2012-09-12 23:06:49 -05:00
Neti Ravi Kumar
560a18ba31 hwcomposer : Disable bypass, when connected to external display
disable bypass, when connected to external display

Change-Id: I57edc8fc1b9254b3c60c229aabb2515f320c9de4
2012-09-12 23:06:41 -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
Saurabh Shah
4796f2588d liboverlay: Adjust values to align with MDP requirement
For YUV only:
Crop rectangle (src_rect) needs to be even for x/y and w/h
Destination dst_rect w/h need to be even (x/y can be odd).

Change-Id: Ib0c1b7d31773e71d60f080b4beacaa68e32a990e
2012-09-12 23:05:40 -05:00
Ramakant Singh
cefb36db5c libqdutils::Add support for qcomuiClearRegion
Add support for qcomuiClearRegion for draw
wormhole regions via CPU.

* Added separate singaltone class for getting
eglGetRenderBufferANDROID handle that can be
used by both copybit and clear_regions modules

CRs-Fixed: 383115

Change-Id: Ibeb5bdda87a60950889416e5b4d53e6eb5a3682e

Conflicts:
	libqdutils/Android.mk
2012-09-12 23:05:06 -05:00
Ramakant Singh
06d4f5be44 libqdutils::Replace USE_MDP3 with getMDPVersion() method
Change-Id: Id602c8ab8d8ba140a379ba0e475c73806d17b527
2012-09-12 23:04:06 -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
Ramkumar Radhakrishnan
36de7a412e libgralloc: Add support to custom buffer sizes.
Init allocSize hook function with alloc_size function

CRs-fixed: 379299
Change-Id: I514d47928f10b6c41404aa19d8b704f64327211b

Conflicts:
	libgralloc/gpu.cpp
2012-09-12 22:57:23 -05:00
Ramkumar Radhakrishnan
34aed79a86 display: Copyright Fix
Add Copyright information to the top of the added new files.

Change-Id: Ifd878445ef6b89120f761d51254ab2a553b6a6c3
2012-09-12 22:55:50 -05:00
Arun Kumar K.R
0d6b685501 hwcomposer: Make file changes
create separate lib for hwcexternal and ihwcservice

Change-Id: Ie55b9e98eaf62d4aa2cb9f422a75f8195bfd6060
2012-09-12 22:55:42 -05:00
Amara Venkata Mastan Manoj Kumar
62223703e1 hwcomposer: Handle MPQ WFD support
1. Code clean up to handle WFD feature

Change-Id: I36170c3424f9250dc39c2c249a757d508b2abdfa
2012-09-12 22:55:33 -05:00
Rajulu Ponnada
09e2a82405 hardware/qcom/display: tile rendering with fbo boundaries
support for application tiling  with fbo boundaries

Change-Id: I1f4abb5a386847c965518b58cb13966defcf7670
2012-09-12 22:55:25 -05:00
Jeykumar Sankaran
7c5f26105a libhwcomposer: Support swap interval zero
Change-Id: I4732263c86bb28b4c7135bad9768b8690f7f60e0
2012-09-12 22:55:16 -05:00
Ramkumar Radhakrishnan
060e7797ed display: Add binder interface between hwcservice and its clients.
Add hwc_service.cpp and ihwc.cpp file to enable direct communication
to hwcomposer by the clients to set hwc system wide properties.

Create hwcomposer service singleton object in hwc_context_t structure.

Change-Id: I0d0879475951a618a453a23ee254ea651e8c6b88
2012-09-12 22:55:04 -05:00
Sravan Kumar D.V.N
56da81b668 copybit : Add support for NV12_ENCODABLE format
Change-Id: I7087dcad2238a3c35cc15c28d75b76a9e3ca6718
2012-09-12 22:54:55 -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
Sravan Kumar D.V.N
857f8a5f0b display : Avoid calling eglGetRenderBufferANDROID for each layer
Currently eglGetRenderBufferANDROID is being called for each layer
which is not needed. This change calls this API once in set call,
and passes the 'render buffer' to drawLayerUsingCopybit.

Change-Id: I310163db02df13e8c03b51d73f291588fbf08160
2012-08-21 16:11:44 -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
Kinjal Bhavsar
384a5b2709 Overlay: Switch the flip for MDP, on 90 rotated source
Camera client doesn't factor in the 90-rotated source when setting the flip
Switch the flips when the source is 90-rotated.

Change-Id: I16b81ca2c146f9b4c20908674f89d0a2e9808681
2012-08-19 05:23:50 +02:00