When using the bypass, read only last 4 bits of
the transfrom value regarding the change of
transform value in Layer::setGeometry().
(cherry picked from commit 7689940bec6440b78418cb15a9888312ab96ea04)
Change-Id: Ida5781e3e92929b8024947a41e5521f83164a4f7
Conflicts:
libhwcomposer/hwcomposer.cpp
When Overlay startChannel fails due to some reason and overlay
channel is not yet up, state needs to be reset to initial value.
Change-Id: Iabc765f350bf999d8362f86a43b900ff7aed1bb3
CRs-Fixed: 354403
- move freeing roator memory to a new function
- In queueBuffer, updateDataChannel, if memory allocation
fails for the rotator, free the previous allocated memory
CRs-fixed: 353156
(cherry picked from commit 97de5b6dc39a8706ba90f4e8b191b18418cb0191)
Change-Id: Icc774b67678426ea7ba43520b1186ea148ce1281
Trigger overlay state change for S3D format changes.
Close both overlay channels only when transition to/from 3D display
happen.
The closeChannel resets the Overlay state variables. Any changes to
the state variables prior to closechannel are lost. Update state
variables after calling closeChannel.
Remove unused variables.
Change-Id: Ia5aa84d02df1e1874df93530cf3e55298ebc81e3
CRs-fixed: 342350 342987 347382 350326
(cherry picked from commit 6706fd708dace780751a4602d6125e089851789f)
The GRALLOC_USAGE_PROTECTED flag that was used
earlier for content protection is also used for
some other use cases such as disabling of
screen captures. Define this new flag that
is explicitly used for allocating secured
buffers for DRM.
Change-Id: Ia33f79fa0dea7f2f16dd320f267203e6173af48e
CRs-fixed: 348454
(cherry picked from commit 440a996f13be732895524412762793f109681c11)
- In setTransform, when rotating to 90 or 270 deg, also consider
the case of current flip values(if any)
- This is needed when switching b/w front camera/back camera/
camcorder
Change-Id: Ieae8f90438dda24006ede4cf925acf46ecec5b32
(cherry picked from commit c5defdb54862490c502f255d7811cf73b8962b8d)
Remove the member "secure" from overlay_buf_info.
This member was used to indicate secure content and this info was
later extracted out into existing flags. Now we use the same flags,
right from hwc to mark secure content.
The member above had junk value, since it wasnt initialized.
This caused, normal videos to fail with IOMMU. Removal of the member and
marking the existing flags fixes this.
Change-Id: Ib5a2439fde7114c20e478fbee5e4d276680c316a
- Enable rotator for HDMI for video
- cleanup updateOverlaySource API, it does not need
orientation info
Change-Id: Id53a42cbc4265015ea2714d25df1b02af60ee5e4
CRs-fixed: 341691, 330719, 342199, 344308
Evening-out of layer destination coords causes a noticeable up & down
shift in the screen when video layer drawing switches between Overlay
and GPU. This is most easily observed during video playback or pause,
when a UI layer (like Menu) is displayed / hidden. Remove evening-out
of layer destination coords to fix the video layer "twitching" issue.
Change-Id: I3f43b53a7609c9ad8cc983c353fba6dc97460158
CRs-fixed: 348856 350073
When external display is connected during video playback, the
flags to overlay was not set properly.
Pass the flags which comes from the hwc, by just changing the
WAIT_FOR_VSYNC(external should not wait for vsync)
(cherry picked from commit 857cfcba2d120d5da4916c7cb4fe119a08d1ce68)
Change-Id: I13100bebd223780eb9c709f384f0e4644e8295dc
- 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
MDP color formats have been changed to match the actual input format.
Also rotator will now provide the dst format instead of maintaining
local mapping.
CRs-fixed: 339114,337040
(cherry picked from commit f8c2fe0c78d27f9292e5bb9948db11c72446dc55)
Change-Id: Ic76a4fd96c5aa4c82d6dbdef650752934d761ac0
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
The post processing library header has been included in the target output
now; thus, liboverlay should use the new location in the 'out' directory.
Change-Id: I53fad5503456fbb821c7eb8fb0092f6a762f4c3a
(cherry picked from commit b338d9e7a9c182a654de1a86418f5b1f27e7f308)
- During video playback, when the external display is connected,
start the overlay channel on the right framebuffer.
- set the correct position for the new external display channel
- fix minor bug in the function getAspectRatioPosition for external
display
CRs-fixed: 336674
(cherry picked from commit 6afc95ee1197718332461c8f0ddf9cf5f94cc7aa)
Change-Id: Ifa30dfea349c2a0f133790ab2dc91527d53152f8
Setup both the overlay and rotator for every geometry change event.
The mNoRot flag decides if the rotator needs to be setup for that
particular channel. SetTranform takes care of enabling/disabling the
rotator and correcting the params when the rotation changes.
CRs-fixed: 336037 336346
(cherry picked from commit 84c7068f405189542658529cc43a3d54b49b11ca)
Change-Id: I4c4c747bf365c50c48037c657c653d4903ec7e76
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
- Add an interface to class Overlay to clean up the overlay
channels. This interface will query the framebuffer device, and
will free(UNSET) them if they are in use
- hwcomposer hal will call this API during initialization
(cherry picked from commit 0d03b1b823bbf36f7adb16bb4344fc46d8748c6a)
Conflicts:
libhwcomposer/hwcomposer.cpp
Change-Id: I4a4bedfdc409913ef31c1d5f5a869db730528096
Check if the rotator memory was allocated before attempting to free it.
CRs-fixed: 334607
(cherry picked from commit 4feb43e3a964878b2c708e7417df8d116e1d17ef)
Change-Id: Iac5d957ce7286848443e3d05f1c8d9c32b258b72
- 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)
When there is a state change, open/close only the required channels
instead of blindly closing all the channels. When HDMI is connected,
open the overlay for queueing the frames on the external, and when
hdmi is disconnected, only close the external overlay channel.
CRs-fixed: 333324
(cherry picked from commit a6b5ac4c385e03b3c798bb07d0d3ba6140aebbe8)
Change-Id: I7333a6fe106cd0aa99471542daf3c84c04c5d056
- 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
set the default sharpening settings for overlay pipes
i.e, sharpening is enabled and sharpening strength to zero.
CRs-fixed: 328472
(cherry picked from commit ba5235a66a4424746a6d785f83333b3543dc2dd1)
Change-Id: I6e18321e96f74df99ca6c4b63d06bc831f9e81ae
Pass visual parameters such as sharpness, brightness, contrast,
hue, and saturation from framework to kernel. Converts floating
point to int8_t to represent visual param values.
Change-Id: I3dfc7c38d305fb05f080efb624f61c76adb5e023
Fix swapinterval 0 support in class OverlayUI. The missing property
check for swapinterval is added to the new setDisplayParams API.
Change-Id: I3a7cb843f79afa213eb2f88b80e21249f64d61d0
Refactoring is necessary to attain flexibility in setting mdp overlay params
at runtime, while using composition bypass.
This change includes new APIs for setting crop rectangle, display params and
commiting mdp params, namely setCrop(), setDisplayParams() and commit(),
respectively.
Change-Id: Id57035602baabd954fd6b484be4f63fef632d74b
Check the is_fg flag along with the other parameters in checkOVState.
This is done so that the is_fg flag can also be updated even if there
are no updates to the geometry.
Change-Id: I82874d01c11eb85fb444c2bdbc50f586db683481
UpdateOverlay source didn't have any support for interlaced content.
Add the required support. Create a new function to check if the content
is interlaced.
Change-Id: Ie47b7669461f773b55c71cad6978fc1c8cf4e91b
When queuing buffers using the overlay:
- Set the NO_WAIT flag for the HDMI channel.
- Set the WAIT flag for the primary channel.
- Queue the buffer on the HDMI first.
- Queue the buffer on the primary.
- Wait for the HDMI Vsync.
Change-Id: Id24e9551230b7a7134bd21a7b3a9e8658f7de222
Android uses different alignments for YV12 buffers.
Hence, introduce a new format (MDP_Y_CR_CB_GH2V2) for
such buffers.
Change-Id: I50ba8baf2696252fce513e455d94bfde460b0e51
CRs-fixed: 302752
When the source for rotator is the
framebuffer, the FB flag needs to be set
to identify the type of memory to be used.
Change-Id: I4fc6112832ad42eb7092be5243653b9baf8a241a
Update the overlay when we have a channel up. Previously, we did updates
only when the width and height changed. Now, we always update the overlay
when the channel is open, and not close the channel to update parameters
such as orientation change, flags etc.
Change-Id: I0b2ef8b19bd860d5361c391e040ff497f1023ae3