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
|