In case of non overlay target composition of the video
layer should base on composition of UI layer as well.
(if taget has dynamic composition)
Change-Id: I5eb91adec340297fdc4b0560f01f74aaf8459586
CRs-fixed: 397517
Add OPEN_SECURE_START, OPEN_SECURE_END, CLOSE_SECURE_START
and CLOSE_SECURE_END secure intents for Securing/Unsecuring
start and end notifications.
1. On Open Secure Start and Close Secure End events, hwc_prepare
close the current overlay state and composition will be
done by GPU. This will teardown the exisiting Rotator session.
2. On Open Secure End, secure configuration is enabled and
subsequent hwc_prepare will allocate secure memory for Rotator.
3. On Close Secure End, secure configuration is disabled and
subsequent hwc_prepare calls will allocate non-secure memory
for Rotator.
Change-Id: Ia81b21d19f8084f218ae16eb8e69bb62937afa26
Conflicts:
libhwcomposer/hwc_utils.h
- instead of FBIOPUT_VSCREENINFO ioctl, use the new ioctl
OVERLAY_PIPE_COMMIT to update the external display
- when MSMFB_OVERLAY_VSYNC_CTRL ioctls fails, return -errno
Change-Id: Ie37309615f7fa39f20fa347fc53c04f7fcab9740
CRs-fixed: 391564
There is no need to do a glFinish on every composition complete.
glFinish needs to be called for composition cycles where GPU and
copybit are both used for composition. This is because the GPU and
copybit operate on the same framebuffer.
(cherry picked from commit 7983c275ae3eb15fab931d301e6338f83ad4a75a)
Change-Id: If06da4ca60ec17122c3dd698558cbf08fec73251
The change in 152124 makes the yuvLayerIndex equal to the pipLayerIndex
because of which overlay is used only for the pip video and not the main
video. Removing the assignment operation since that is updated when
yuvCount is 1.
Change-Id: I4a96a0e57c43e2c4888d3497229a9a24dde2ca27
Synchronization is needed,to make sure, read() is not called
by hwcVsyncThread when VSYNC is disabled.
Otherwise in usecases, where display is OFF, and still some
tasks keep running in the background; SurfaceFlinger hogs
CPU.
(cherry picked from commit ffa84468bbd2517ffb22ab4023cb57a6272fc80d)
Change-Id: Idd779647a27ed3e6fb0703a07033dd5f7cd1b5fd
* Read sysfs entries, to get vsync timestamp from kernel.
* External display continues to use in ueventThread.
* A new thread, vsyncThread is created to read and send vsync
timestamps to HAL.
* Disable H/W VSYNC for MDP 5.x targets until kernel changes are
complete.
(cherry picked from commit a61a58cb775631cd3899211f6ff0aed232f5f3c0)
Change-Id: I58e09a092f81d4ff78b8cb4072ff06d2500c6f53
RGB pipe doesnot support downscaling with alpha on targets
with MDP 4.1 and less. Abort bypass for those targets if the
layer requires downscaling with alpha
Change-Id: I3450968458977626dfc90a9f35da593f08ced93c
Fix possible leak of fd in ion allocation.
If mmap fails close the fd before returning.
Change-Id: Id414792c14a75259f6075b0d76bc470c31fb5853
CRs-fixed: 387633
* 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)