* Poll on FB0 sysfs for VSYNC events. This requires kernel support to
call sysfs_notify instead of sending a uevent.
Change-Id: I48734d8ffdd59dc1de7064fa004af1332ceb7623
- 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
- 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
- Remove unsed flag FINAL_TRANSFORM_MASK
Change-Id: I66f7db95166c51ecee8b6b5cc126a67df3dd4602
CRs-fixed: 387357
* If a device doesn't support VSYNC, it probably doesn't support FB
metadata ioctl. Add an ifdef around it.
Change-Id: I1bf788147129f7b9d584e22b914f1c59d2ee133b
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
* SF will disable HWC before showing the electron beam animation. Close
the overlay so that the GPU can be used.
Change-Id: I25bb3ed5cd9a5d80a590af4f94f2d0b903e98352
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
Wait for fb_post, PAN only if target has overlay.
(cherry picked from commit c6e9a0aae817e75b4b5e20ef23edd02a0a627ccd)
Change-Id: I9696c122b3ce5abed2ae2adb9e5929d3664b3add
Android uses different alignments for YV12 buffers.
Hence, introduce a new format (MDP_Y_CR_CB_GH2V2) for
such buffers.
Change-Id: Id4d58dd77f22c9efb8ece9caa34a8717964bf58d
- 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)
Swap buffers and UI mirroring must be done even on NULL lists
which are composed by SurfaceFlinger.
Change-Id: I6c840e3dd02dfa447c10bf3f4798114fc74536ee
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
Fix to allocate buffer of size defined by the client using
NATIVE_WINDOW_SET_BUFFER_SIZE property function.
Change-Id: I29f3e7e85c2f8dd7c11149d78b2681e6478cef78
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
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
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
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)
- 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
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
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
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)
Init allocSize hook function with alloc_size function
CRs-fixed: 379299
Change-Id: I514d47928f10b6c41404aa19d8b704f64327211b
Conflicts:
libgralloc/gpu.cpp