* 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
* 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
- 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
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
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)
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
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
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
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
SurfaceFlinger re-creates HWC worklist only for new frame and on
layer geometry change. Invalidate triggered by idle timeout
refreshes the existing worklist retaining its previous
composition type. So its MDP comp's responsibility to clear
layer composition types to HWC_FRAMEBUFFER on timeout.
Change-Id: Ibf11dd6c12c647c75d36d8cbad408c3ea70588bd
the hdmi driver can send change uevent anytime, in which case, the
connected state was getting set to 0, due to its default value.
Change-Id: I22dc96acda0272661750277d62c5c11c5156fb3b
Update destination x, y after an out-of-bounds video's bounds are recalculated
for crop and destination position.
Change-Id: I5419f7ae054f709111c39d79ec721686f474ae53