Call ROTATOR_START ioctl only if the rotator config changes.
Save the last good config when the start succeeds.
Make getSessId()'s return type uint32_t to match the member's.
Change-Id: I5ca048ea866316f18d8df14dc08218fca2c82bdf
- fb open will turn on the framebuffer device, no need of explicit
UNBLANK
- remove PANDISPLAY as it will be trigged by FBIOPUT_VSCREENINFO
Change-Id: I58bc1ebea924809b32a8e51eb81a2cc926538465
-In 3 layer bypass case on hdmi cable connection, UI freezes.
-Overlay state change from OV_BYPASS_3_LAYER to OV_UI_MIRROR
directly not possible on 8660 as BF pipe is not available.
-Add support to change overlay state via OV_CLOSED to make pipe free
OV_BYPASS_3_LAYER-->OV_CLOSED-->OV_UI_MIRROR
-Move processUEventOnline to prepare thread.
Change-Id: I29c657ab799d1cd4ad52adcf6a8f86d18e76bcf9
CRs-Fixed: 386335
Conflicts:
libhwcomposer/hwc_utils.h
Conflicts:
libhwcomposer/hwc_utils.cpp
Correct the enumeration value of HWC_USE_COPYBIT factoring in the new
HWC_BACKGROUND enum in hwcomposer_defs.h.
Change-Id: I4a8f60ac1b5387bf6068a626d00db0b2e193ee98
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