calculate the yresolution virtual according to the hole
introduced by 4k alignment of frame buffer.
CRs-fixed: 325134
(cherry picked from commit 464443a5d3b216e06e644d0e41c234490c3c46c2)
Change-Id: Id7a93e11e2f3c1d52a26ec3669a9d710c369bf41
Align framebuffer size and offset to pagesize, calculate
framebuffer size based on this alignment and use it for
mapping framebuffer in userspace and page flipping.
CRs-fixed: 332175
(cherry picked from commit d89b0493b4651fbaaeccccf0ae880cbf1a3a3479)
Change-Id: I7840f7f3c5c42852087cb9df6ae85680c971c601
- check if the target supports true mirroring in fb_enableHDMIOutput
instead of framebuffer HAL initialization.
- We check if the target can support true mirroring by using the RGB1
pipe, with new driver changes, RGB1 pipe is allocated only after
first display update.
- Hence moved this call to fb_enableHDMIOutput
(cherry picked from commit db5225cc97b7c42871d5674702e1ca48a5a27904)
Change-Id: I9838fb0bfe6d49c5de3a7b1f4c116bd93c7b375c
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Fix heap corruption in overlay clients, caused by missing
compilation flags. All libraries using overlayLib.h should
have flags used for conditional member declaration in overlay.
CRs-fixed: 342959
(cherry picked from commit 42120b29500560ebedbd897e2e7adf7369eb0a21)
Change-Id: Idf613861c4dc67e96ecadf7ce7e37472cb4e4daf
-Introduce utils folder in qcomUI lib for all Qcom
implemented utility classes.
-Move FPS calculation profiler class into utils
folder.
CRs-Fixed: 342060
(cherry picked from commit e9469022741642cfd8483839de96e809f4d94f1e)
Change-Id: Ie0af0c0cc10b5304814b4f26aed581ea93ce7f5f
Layer buffer handles that fail gralloc validation must be removed
from hwcomposer's register of previous bypass and overlay handles.
(cherry picked from commit 18c7f1951018b6632bd6e1a4957194c01423b6ee)
Change-Id: Idaaf3557b05adb5b3e938e9cd46dac5b104b729e
CRs-Fixed: 347157
- debug.gr.swapinterval is now deprecated. It has been replaced by
debug.egl.swapinterval.
- Do not disable MDP bypass if we have ASYNCHRONOUS layers present
and debug.egl.swapinterval=0.
- Do not lock overlay buffers if debug.egl.swapinterval=0
Conflicts:
liboverlay/overlayLibUI.cpp
Change-Id: I004a437397570ad62b589bb68db2b9815917f551
The flag GRALLOC_USAGE_PRIVATE_UNCACHED can be set in the
usage to allow it to be uncached. If not set, the buffer
will be cached by default.
CRs-fixed: 341196
(cherry picked from commit 6232816aadd311dbb57b714c7c0a4073d3ddc7f7)
Change-Id: Ic10677d105328702972dd69581b919c984d17fe9
- clearing PRIV_FLAGS_NOT_MAPPED if
GRALLOC_USAGE_PRIVATE_DO_NOT_MAP flag is not set
so mmap can be skipped.
Crs-fixed:342782
Change-Id: I01de82dedf08c8c41db179789cc3a9927aa7e221
(cherry picked from commit 67215121cdff9df78d6a80cda442a6bfc7aa27b3)
this brings us inline with cafs ics_chocolate branch
per: f696608c9d9e3b6b60a92423338f08d59d19d746
Change-Id: Ibaff05220e7d7f0ddd1b4d7507626a38d717340c
Add support for external-only display. Layer buffers
marked with GRALLOC_USAGE_EXTERNAL_ONLY will be
displayed on external panel only, if available.
In addition if the layer buffer also has the flag
GRALLOC_USAGE_EXTERNAL_BLOCK then only that layer
will be displayed on external (During suspend).
When this mode is on, the default mirror mode for
external is stopped.
Conflicts:
libhwcomposer/hwcomposer.cpp
Change-Id: I8ea2920384c5b68311ee3fe00707d01ab6568b52
For secure content the MM heap should never be
mapped in userspace. Add a flag to avoid
doing this for rotator which does not need
userspace mapping.
(cherry picked from commit 8d9f2fa336564d5a021dd932f5619b5f389d5fad)
Change-Id: I17d1faa40859e261518d928089f2ce86084d31fd
CRs-fixed: 332402
- Changed the aspect ratio of UI on HDMI based on the aspect
ratio of the primary resolution.
- Remove the default values for action safe region.
Change-Id: I596611f8b01e6e1c1007ad7e6c323ea0ea710ec9
CRs-fixed: 323358
(cherry picked from commit b3c2e7f9d68db550f280ed60e37e7f4ee2a73058)
Conflicts:
liboverlay/overlayLib.h
Modify the overlay APIs to use only one parameter to set the overlay
flags, instead of adding a parameter per required flag.
Change-Id: Ia753e10b9e2c7a5ee1aabfd48f30c9b7583beaa1
(cherry picked from commit 5535a95c8f69891090a81dbd8ccdc11aa889a42c)
- HDMI has priority over Wifi display, if HDMI is connected during
Wifi, close the session for Wifi and start one for HDMI.
- the enableHDMIOutput parameter externaltype - HDMI/WIFI/OFF
Change-Id: If2cd9143fc7a953db49f38a6c166f9425ba5266e
Conflicts:
libqcomui/qcom_ui.cpp
This reverts commit f2dbabe786.
This change is not needed any more because we are caching the MDP pipe
contents when closing the channel. So no need to wait for postFB finish.
Change-Id: Ia6f01c33953762cb7a97e0b2b795d9afeb60d2d9
(cherry picked from commit 441f1824593bb12a97508b426b597a16b35091e6)
This function can be used from other components
to get the aligned dimensions and size of the buffer
given the width, height and color format.
Change-Id: I8d7532a262194f3883bf0f5166e806e0971392e2
Conflicts:
libgralloc/gpu.cpp
It is possible to use this object from multiple threads
and there could be a race between a failure in one thread
and another method call from a different thread which would
result in system calls being called with an invalid fd.
(cherry picked from commit 560ca6e8feb4f52c9aade34fa7cfcfed55288083)
Change-Id: Iefb94ba1ee7177ab20600bee4374daf8e818bdb9
Several ioctl calls were returning -1 instead of -errno,
which may confuse upper layers, especially when the error
is -ENOMEM. Also move some existing "err = -errno" calls
to the top of if statements so that errno cannot change
by libc calls in the error handling code.
(cherry picked from commit a8eda532452651eb1fbae419319455de2a078ef0)
Change-Id: I181f98d5a261e8e3e1b3f6ecd3ba288e7b4b5607
A Google modification to eglCreateWindowSurface was
causing SurfaceFlinger to set its swap interval
value back to 1, regardless of the value set in the
debug.gr.swapinterval property.
This patch modifies the fb_setSwapInterval function
in gralloc to check the debug.gr.swapinterval
property and not change the swap interval if a value
is set there.
CRs-fixed: 329524
Change-Id: I80463c1209addbff227db7832dd0023e94eb06ac
The mandate for the width and height to be even is only for the YV12
format. Add this check only for the YV12 format.
Change-Id: I1e8d2de174ecf2e62cd33cc40dfd8e97d70a3a59
If an uncached buffer is needed from gralloc, the
client must use the flag GRALLOC_USAGE_PRIVATE_UNCACHED
Change-Id: Ie3fcfee1071a87fa0440600f4ca3e2d7ff6243ed
Validate the previous overlay and bypass handles before unlocking
the buffers. The reason for doing this, is that in certain use cases,
after the previous handles are stored, the buffer gets destroyed and the
handle is now invalid. The HWC however doesn't know that the handle is
invalid and tries to unlock the handle, resulting in a failure.
CRs-fixed: 323614
Change-Id: I0f0c8506e7e22f9fc01eb28af0270f9c4587c787
Since composition bypass uses MDP overlays, which
need physically contiguous memory, we cannot use
bypass in cases where the buffers are using ashmem
or other virtual memory. Hence, avoid bypass in
such cases.
Change-Id: I5c6d20e68e15719295373a1b0f3b930536336c43
Synchronize turning off of composition bypass with display,
so that close happens only after FB content is displayed.
This fixes blinks observed when bypass needs to be turned off,
for reasons other than video content.
Change-Id: Id98bddd0cb2a89ea8729a188934ae1cd947cf305