History log of /hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
25571876f574a20d9eb7c634e2d7743222b34205 14-Aug-2014 Jesse Hall <jessehall@google.com> msm8974/hwc: Free all MdpPipeInfos on reset

The reset code was only freeing MdpPipeInfos if numLayers>0, but on
every frame it was being called with numLayers==0 and then again with
numLayers>0. Since reset also memsets the structure to zero, it was
leaking the MdpPipeInfos on every frame.

Bug: 16601370
Change-Id: I7a95bc2e533455c8a65c5a0c498b99d87c858fe0
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
8a07739c20408defbb1cba710fa50ae199524907 18-Jun-2014 Saurabh Shah <saurshah@codeaurora.org> hwc/overlay: Fix decimation / bwc bugs

1) While setting BWC check for 90 transform and swap crop
2) Calculate decimation in the getDecimationFactor API itself.
Currently, a residual downscale is calculated and the clients have
to take logs and apply forcible decimation like in MdpCtrl
3) Fix bug where transform gets typecasted to bool

Bug: 14225977

Change-Id: I3c99c571e02e2cf7822342516b6a87d97be553d1
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
cdb41289c164ff46f3587e5d5784b8fc927ca977 13-Jun-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: On downscale check swap on 90 transform

While checking for valid dimensions, take 90 transform into
account while calculating downscales.

Bug: 14225977

Change-Id: Ie8b527c8263a5eb366ae2a4adaa2ffbbf270ba50
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
7220a4f08ff74a5b60f1a1c9f84e87cc4a55d304 26-Oct-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Do not compose RGB layers for virtual displays

This is a temporary workaround to unblock HWC 1.3

b/8316155 - Implement HWComposer 1.3 w/ virtual display support
Change-Id: Ie877ec459916fb6c05ef9781e41900b661f4f489
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
b434b98715e4bfe9b8bfb0ac34f33e695aa9891d 05-Oct-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add support for virtual displays

Add support for virtual displays in hwc.
The availability is detected when a valid list first appears.
Need a valid framebuffer handle to configure writeback based
on aligned dimensions.
Force full GLES virtual layers to go through HWC based on
boardconfig flag.

b/8316155 - Implement HWComposer 1.3 w/ virtual display support
Change-Id: Ice26d47022c8582a6d30503cfa5c918057046320
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
873a69a63909b570e687817ac61684fb4a199c28 24-Oct-2013 Naseer Ahmed <naseer@codeaurora.org> display: Use L3 DRM for non TZ content

When the GRALLOC_USAGE_PROTECTED flag is set, use L3 DRM if the
buffer isn't also allocated with the MM heap.
Per the gralloc spec, this means that such buffers shouldn't be
routed to external displays since the hardware protected path is
not available due to allocation from an insecure heap.

b/11071443 - (related) [HH] Green frame happens during playback
of Forward-lock DRM with Miracast connetion
Change-Id: Ifd858f874b4e3c2c3ec54c6d6a33372ec55b0aee
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
b5199b08a351177e2d572b29d04f5a05069b3c2a 15-Oct-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add load based partial mdp comp

Add support for load based partial mdp comp.
This is used on geometry changes where a redraw is unavoidable.
We select a batch of layers, that has minimum pixels for FB comp,
the rest go to MDP.

b/11175503 - Hammerhead window animations are janky
Change-Id: Ifc5eeb4785c75c37de97a2bb89ca81409d324691
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
20884490b7a01c9ffdafab591de55eb60bd56299 10-Oct-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Do not punt secure layers for non integral crops

GPU cannot handle secure layers so a black screen is seen when we
punt secure layers with non integral source crops.

Bug:11156948
Change-Id: Ie19c631aab55dc8e7c1ad5e1f42162e833f49222
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
625e0a798a84c476f8cab99bb34b6f2df336aa6c 29-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Include more cases in partial MDP composition.

When MDP cannot support a layer, we send the whole list of layers to
GPU. If such layers are not updating they can be cached on FB while
allowing the rest to take the MDP route.

Example # 1: Volume bar on video in 90 rotated mode. Since volume bar
is not h/w accelerated, there is no prerotation and we invoke the GPU
for redraws each round. With this change we won't because of caching.

Example # 2: If prerotation is applied to layers on primary, the
secondary layers would show a transform and the whole list is redrawn
with GPU. Now we could make use of caching.

This change also imposes a 1 layer limit on secondary, but now allows
full and partial MDP comp, thus benefiting secondary-only content.

Signed-off-by: Iliyan Malchev <malchev@google.com>

Conflicts:

libhwcomposer/hwc_mdpcomp.cpp

b/9764589 - use h/w overlays on HDMI when possible
Change-Id: I7eb43ba817f1081f317fefa99fa0c507344060e8
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
1c3402c355c966bb443139b5becb1fe092815855 20-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add check for block mode for rotated video

Do not allow video if it requires pre-rotation and DMA pipe
is configured in LINE mode.
Fall back to GPU in this usecase.
This is not applicable for wfd on 8x26 since Driver supports
both multiplexing of DMA pipe in LINE and BLOCK mode as same
mixer control block is used for rotation and writeback mode.

b/9764589 - use h/w overlays on HDMI when possible
Change-Id: I5b99b214619134b1bd67f3c441b14f76051e3d3b
Acked-by: Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
43b3bfe2cb5b924dd3fb9718e27eadebe6f04e19 06-Sep-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Punt layers with non integral source crop

The MDP driver cannot handle such layers right now. Investigate
doing this with pixel phase in the future.

Change-Id: Iabbdd0285234160770ae5a799b07a5b912e5fde3
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
83f9f73c45da200a06244749e4f21a632ecc01ba 30-Aug-2013 Jesse Hall <jessehall@google.com> Unrevert "hwc: Bump up version to 1.3"

This reverts commit ad17afc8bcda6c2d6006a3b005defb011042aaac,
which reverted commit a5b5aebd86ed595990435692e7e7ede31aeb63dc.

The original change exposed a bug in the platform but wasn't itself
buggy; the platform bug has now been fixed.

Bug: 10443969
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
be984c968c2ff350ff9943d775fcfdce620ce8d5 29-Aug-2013 Vineeta Srivastava <vsrivastava@google.com> Merge changes Ib0ef6b1b,Ie0e266ee,I96365b4c,I595547dd,I33bd64a5,I14adf2df into klp-dev

* changes:
hwc: Enable sync-pt for rotator on B-family
gralloc: Move getAllocator in unlock
libhwcomposer: Add check for MDP comp dump
hwc: Fix locking.
overlay: Remove optimization that prevents garbage collection
hwc: Change log message for AD feature
0b8513cd63c7d9ee63a9e080e8c7af8cc35ea85b 15-Aug-2013 Jeykumar Sankaran <jsanka@codeaurora.org> libhwcomposer: Add check for MDP comp dump

Avoid mdpcomp dump for frames having layers more than
MAX_NUM_APP_LAYERS, since our HAL doesn't support it.

Change-Id: I96365b4cbdeef2c00524eeb53877ee568ba0c172
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
01f9a13e06f5b25788dfb042d20583ce2f974579 22-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix locking.

Remove the unnecessary blank lock, mdp comp lock, secure lock.
Rename the ext lock to a more appropriate draw lock.

The mdp comp lock is at an incorrect place and causes unwanted
objects to show up in dumpsys, since configDone hasnt cleaned
them up yet.

dump(), blank(), draw() should all acquire a common lock.
draw() includes prepare() and set().

Conflicts:

msm8974/libhwcomposer/hwc.cpp
msm8974/libhwcomposer/hwc_qclient.cpp
msm8974/libhwcomposer/hwc_uevents.cpp
msm8974/libhwcomposer/hwc_utils.h

Change-Id: I595547dd5a393a8af6cd8c9297d50793b715e658
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
ad17afc8bcda6c2d6006a3b005defb011042aaac 27-Aug-2013 Jesse Hall <jessehall@google.com> Revert "hwc: Bump up version to 1.3"

This reverts commit a5b5aebd86ed595990435692e7e7ede31aeb63dc.

That change added support for float croprects, but didn't add support
for virtual displays. SurfaceFlinger crashed when virtual displays
(including wifi display) were used because HWC didn't behave as
expected.

Bug: 10443969
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
87838778cdb83d1f8d5c708865714268bc8ea167 27-Aug-2013 Naseer Ahmed <naseer@codeaurora.org> hwcomposer: Deprecate setupBasePipe

Needed only for A family targets where MDP boots up with
RGB pipe attached to the base.

Conflicts:
msm8974/libhwcomposer/hwc_mdpcomp.cpp

Change-Id: I5118b8b41e4f864f8c73a115398b13bffa1f3383
Acked-by: Jeykumar Sankaran <jsanka@codeaurora.org>
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
a5b5aebd86ed595990435692e7e7ede31aeb63dc 17-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Bump up version to 1.3

Increment hwc version to 1.3.
Create and use a converter from float source crop to integers.

Change-Id: I5e185195c975b3a9434c5d9dce9ae4757ff98739
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
fcd23276f6846a81a107c52372a9a29cf5dd8b4a 15-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Cleanup secondary configuration variables / helpers.

Make secondary configuration status as an attribute per display.
Replace the unused helpers related to display's active state with
display's configuring state.

Memset display atttibutes to 0 at bootup.

Change-Id: Id964eba9d268c5a0daa7a9f187a542db36f90362
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
d80659c540b719660c7af9f530445268bc409db6 03-Jul-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add assertive display support.

Add assertive display support to hwc. This feature takes effect when
node /sys/class/graphics/fb*/ad is present. This signifies that that LM0
is being used with fb* for writeback.

When a video playback begins we write "1" to this node to indicate to
post processing that a writeback will happen. Likewise a "0" is written
to this node when playback stops.

The original contents are worked upon and the modified output is fed
via writeback to either rotator or mdp as appropriate.

The feature doesnt trigger when either:
1) Buffer size exceeds 2048
2) External display is connected
3) Multiple yuv streams are present

When this mode is active, MDP comp is applied only to yuv layer.

Conflicts:

msm8974/libhwcomposer/Android.mk
msm8974/libhwcomposer/hwc_utils.cpp
msm8974/libhwcomposer/hwc_utils.h

Change-Id: If5520f9dc849de3189c9f9ed4e9072c8f8f760e1
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
ed69bc8090c0a784a65d91d5ef2c013f7c93f873 14-Aug-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Disable idle invalidation for command mode panels

Command mode panels have an internal framebuffer with which they
refresh, hence the idle invalidator isn't needed for them.

Change-Id: I6acf0cc1f8c520cbcf706f109a42e47304c534d3
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
636f2a499a682f7eb7ecce52d22c1c77c1fc84fc 14-Aug-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Enable plane alpha on 8974

Change-Id: I1506190279cddc2c46b6768276c4a5beae407643
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
517e8b0015001fed3ea1d7bbeeda421de7fdeb2e 07-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: split display: Fix left split default value if not published

If the left split is not published by the driver then the default should
be even split. This was missing from the configuration in utils. This is
already taken care of in framebuffer configuration and mdp composition.

Change-Id: I3db44481fd791809146752ddff56420dcbe89fb4

Conflicts:

msm8974/libhwcomposer/hwc_utils.cpp
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
a8c3d11acf21811ee74589d08dbcc037cd763526 30-Jul-2013 Saurabh Shah <saurshah@codeaurora.org> hwc/overlay: Prevent pipes from switching mixers

For split displays, earlier we allowed pipes to switch mixers in
subsequent rounds. This change prevents that and makes sure there
is one composition round where a pipe being transferred to another
mixer of the same display is UNSET

Change-Id: I3c679cc4256363eeb70c5cf8bcaf5047b8a064c2

Conflicts:

msm8974/libhwcomposer/hwc_fbupdate.cpp
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
63740d39c9a8140e7a26f24e8069e75f73d1a32d 23-Jul-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Configure framebuffer before other layers.

If framebuffer needs to be configured, configure it before all the
other layers in mdp composition. This helps in cases where we are
out of SMPs and framebuffer configuration fails owing to that.
Framebuffer being the fallback path, should always get highest
priority when reserving SMP blocks

Change-Id: Ie7a6903d1b9fb98b308689c81522571449bf2e8e
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
832fb268445bd30f2a44a7e34e6fcc2da31c6ffc 19-Jul-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add setting to disable idleinvalidator

Added the ability to disable idleInvalidator when the
debug.mdpcomp.idletime property is set to "-1". The hwc test app
displays image on the screen with surface flinger turned off.
This causes timeout, so this change is to allow the testapp to
disable the timeout functionality by setting property.

Change-Id: I1adf28eea33ea73f3695644bec95056d16bd85f8
Acked-by: Zohaib Alam <zalam@codeaurora.org>
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
0935bc3c9e0e09063202ab3cd20cd67ba4455632 10-Jul-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Handle video with plane alpha

An earlier patch disabled plane alpha completely for video.
Instead, do this only when we are in video only mode.

Change-Id: I6ebee54d3aed4d40c0090e01e9b0bc07e7972bfd
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
7f791f901f4409456c80a1059f6e635a3430542c 12-Jul-2013 Prabhanjan Kandula <pkandula@codeaurora.org> hwcomposer: Fix a deadlock with debug enabled.

If debug property for MDP composition is enabled,
we call dump function from composition thread.
Make sure we are not holding the MDP composition
lock before calling dump function as this also tries
to acquire the same lock and causes a dead lock.

Change-Id: I05e5fd58be096f1ab683d796cc1beb4972c2168f
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
ba59309c5e08d8e56adcb90a86b9523d84f7836a 10-Jul-2013 Prabhanjan Kandula <pkandula@codeaurora.org> hwcomposer: Fix a crash with MDP composition.

Reset the current frame data before returning from MDP
composition prepare to avoid accessing previous frame data
in MDP composition draw phase. Avoid the number of app layers
going beyond the layer count limit in MDP composition.

Change-Id: I2a3035ad5cb1731060b9359ccdbe9fe0c07e843c
CRs-fixed: 510683
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
e166ca5c0f29d6d883d0e930c6129fbc37bfdca4 02-Jul-2013 Prabhanjan Kandula <pkandula@codeaurora.org> hwc : Fix crash during dumpsys

Dumpsys runs in different thread not in composition thread.
Accessing mdp composition frame info in dumpsys with out
synchronizing could cause crash since frame info can get reset
in composition thread.

CRs-fixed: 503268

Change-Id: If3f7d8cc9fce8b14622e666fa52583ff0cfdedd2
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
828e828437e9d6dd027819c2bbea21f0c13597d5 11-Jun-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add support for uneven split primary displays

Add support for unevenly split primary displays.
The driver provides info about the split via msm_fb_split sysfs node

For external we assume even split. If driver doesn't specify any split
for primary, we default to even split.

Change-Id: I4d541f41de2d7a5d2b62653fa33cab079a6d5d30

Conflicts:
msm8974/libhwcomposer/hwc_fbupdate.cpp
msm8974/libhwcomposer/hwc_uevents.cpp
msm8974/libhwcomposer/hwc_utils.cpp
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
c980f525f50689154df2bc6a510b8b5810931af1 18-Jun-2013 Prabhanjan Kandula <pkandula@codeaurora.org> hwcomposer: 8x26-1080p: dont allow mdp comp with HFLIP.

If an incoming layer has HFLIP tranform it needs two lines of
SMP buffer(or latency buffer). For panels with width greater than
1k this is costly. Fallback to GPU if RGB layer transform has HFLIP.

Change-Id: I9de63bf088d6afa0924ece7ac75e68f0bab7a6b5
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
04af919f7d16572b16a91d8b681afe42386fb4e1 17-Jun-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: 8x26: Composition policy when WFD connected

When WFD is connected to 8x26
1) On Video transition, have 1 padding round if external connected.
Required to shift pipes across mixers.
2) Request DMA pipe always for FB on WFD.
Necessary for rotation + writeback
3) Disable non-worm-hole calcs on external (because of 2)
4) Disable action-safe calcs on external (because of 2)

Change-Id: I63b50b2477db443f9ea1d3fa610b59295c9359b7

Conflicts:
msm8974/libhwcomposer/hwc_fbupdate.cpp
msm8974/libhwcomposer/hwc_utils.cpp
msm8974/libhwcomposer/hwc_utils.h
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
5784cd2d1dfbef1239645049f7fedaf800a088a8 13-Jun-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Don't use yuv count for fb Z order.

In video-only cases, don't use yuv count for fb Z order, instead use
the mdp count which indicates how many video layers are actually
being sent to overlays.

Change-Id: I53ab4316fbb17f5d054066ef2dd85d89183d6a8c
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
0276ce984ec32143bc54428cefe0a8a1a8853e3f 24-May-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwcomposer: Add adb property to disable Mixed Mode

This change adds adb property support to disable mixed mode in
MDP Comp. Will be helpful in debugging issues to narrow down the
root cause.

Change-Id: I49b737bb8755dc3a35db2e1ea8ccb2043135d2b0
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
db0ce0b85469e6de8b460860aad55c5833692be6 07-Jun-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Move max app layer check outside isFrameDoable routine.

Move the condition for checking maximum number of app layers
ourside the isFrameDoable function to avoid heap corruption while
updating hnd array in cacheAll function.

Change-Id: Id4458fcadc7775a2d78b1849de6782857c6ac17f
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
02a5da1596ec1e025ba673a5283fb51a2fb41ad4 07-Jun-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix MDP comp array index access

Fix MDP comp array index access in case of High Res pipe allocation.
This is already correct in case of Low Res allocation routine.

Change-Id: I7eaa0711ef8998ea03edba18b74db80459daf4c7
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
0f47bb43e032f6396d9496c1ecb254c9aa7e94ba 06-Jun-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Fix to avoid heap corruption

- Check for MAX_NUM_APP_LAYERS before updating yuv indices array.
- Fall back to GPU composition when number of app layers exceeds
MAX_NUM_APP_LAYERS to avoid heap corruption.

Change-Id: Ieb91b705a0a5f50ce2f8829d1f1ee048d44b7d2e

Conflicts:
msm8974/libhwcomposer/hwc_utils.cpp
msm8974/libhwcomposer/hwc_utils.h
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp
513ddc2124abf90c63af41999201f0d2031af0c8 12-Jun-2013 Vineeta Srivastava <vsrivastava@google.com> Splitting hardware/qcom/display chip specific.

Moved msm8960 specific code in msm8960/ directory.
Moved msm8974 specific code in msm8974/ directory.
Updated Makefiles to point to correct header files.

Change-Id: I0623022f324be0ae42571660074f16afa1f71df5
/hardware/qcom/display/msm8974/libhwcomposer/hwc_mdpcomp.cpp