History log of /hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
48857cd056356d233d2751b2510376ea6017b056 20-Nov-2015 Zhao Xuewen <zhaoxuewen@huawei.com> display: edo panel: display quality optimization

Because edo panel design using delta pixel design,
so you can see aliasing in the display edges
of the panel. In order to optimize the display
quality,add algorithms to rending the framebuff data.

If we detect the display pixel design is Delta,
disable mdpcomp to get the whole single layer framebuff,
then use the algorithms to optimize the pixel arrangement.

Change-Id: I4d6ac7e2bae13548ed35807eb6a2b7d933101cb4
Signed-off-by: l00212897 <gang.li@huawei.com>
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
7249973d8972f333a1a8c38345fa8751f3d27944 02-Jul-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Avoid partial frame update on secure display

On configuring for secure display, MDP switches to secured
memory bank. Invoking any more DCS panel commands which
follows non-secure path will cause XPU violation. So its
necessary for HWC to turn off partial update to avoid DCS
commands due to ROI change.

Change-Id: Ibcc24d34d3cb825b027c116ac6a4d841d9cb9b70
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
000cb84f08ff7034094a16e9514a67c9bc470c0c 25-Jun-2014 Naseer Ahmed <naseer@codeaurora.org> display: Dynamic debug logging via binder

Provides a way to enable/disable logs at runtime via binder.
The logs need to be enabled from a priviliged shell.

For example,
$ adb shell service call display.qservice 15 i32 0 i32 1

Here 15 is the integer code for DYNAMIC_DEBUG in IQService.h
The first parameter 0 is for DEBUG_ALL
The second parameter 1 is to enable.

Hence, this command enables all debug logs.

Another example - this command enables vsync logging
$ adb shell service call display.qservice 15 i32 2 i32 1

Change-Id: I13d5f397d9d03f0ac6a14d3a3c9098ed59fc62fd
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
c5628e5e5d07912ad30849801f18c07ab433a4f5 30-Jun-2014 Saurabh Shah <saurshah@codeaurora.org> hwc/overlay: Get rot dest dimensions instead of manipulating source

Currently for Mdss rotator we manipulate the layer buffer dimensions
to be equal to what rotator's destination dimensions would be, so that
these could be fed to MDP. Instead, this patch introduces APIs in
rotator so that hwc can directly query destination crop, width, height,
format from rotator.

This also simplifies the updateSource() and configRotator() helpers.

Change-Id: I501d998f2e0574683c764af9422742b2426ba0c7
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
392015f27bf5930ccb8b2c8955b28c2137b4c65b 03-Jun-2014 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: Extend PTOR feature for two layers

- Consider two smallest layers for PTOR feature which uses MDP comp.
- These two layers are rendered on a buffer and are queued to MDP
to acheive full MDP Composition
- This helps to acheive performance enhancement

Change-Id: I43d9306ff19cd2d7a410c885316523965a44cbd4
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
cfb968873b9e94dca883aadabee42b01558faea9 15-Jun-2014 Shalaj Jain <shalajj@codeaurora.org> display: remove compiler warnings

Use correct typecasts and format specifiers and resolve
compiler warnings

Change-Id: I51b12ecb78a9a496cf1f76c3d32892a203f70c43
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
74e109a6891def0f55250476bc28aa2098027606 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

b/14225977

Change-Id: I3c99c571e02e2cf7822342516b6a87d97be553d1
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
4a7fde21bc0dea152a633521d727dda7d540f262 16-Nov-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Rotate RGB layer using MDP Rotator

1. Use MDP rotator to rotate RGB layers which are rendered by software
2. Restrict total number of rotator sessions to 4 for all displays
3. Disable RGB layer rotation for all MDP versions < MDP5

Change-Id: Ie93111082dff9a16b614e9768df5d8ce83ff9e25
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
370a4b1416bd799afc998cce92e80b5e015ff5c2 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.

b/14225977

Change-Id: Ie8b527c8263a5eb366ae2a4adaa2ffbbf270ba50
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
c5223a2e980004d75cab3a784feff5f5c9ecd08b 03-Jun-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: 8084: Split videos with width > 2048 if source split absent

Split video with width > 2048 only if source split is absent, and
the relevant system property is set.
In source split the video is split evenly anyway.

Change-Id: Iab0af427756d32120a160787ecfb7c974dbbeea1
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
e095244acd6350d0898d5a9b409dff2748553bfc 23-May-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Source Split layers always if indicated by driver

Source Split layers always if the driver indicates so by setting
the src_split_always in the capabilities sysfs node.
This is applicable to layers whose width > mixer's width, since
MDP clk rate is dependent on max(mixer_width, layer_width).

This feature can be enabled if the panel height is more than a
certain empirically derived value. Splitting always in those
cases can help with a lower voltage.

Change-Id: If9b33f11ca4132eb77416c26819f7473c65d3b08
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
44d388cf974016f159e1fb6bbb0173c1ca87b9c9 06-Jun-2014 Raj Kamal <rkamal@codeaurora.org> hwc: Avoid MDP draw if prepare is not successful.

If #AppLayers are 0 or exceed MAX_NUM_APP_LAYERS
return early from MDP draw.

Change-Id: I834c7b04a295fbd9b98374cade880992d995ad1f
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
bc602eb045cfed39d3b0c7a86b01af446e111072 22-May-2014 Dileep Kumar Reddi <dkumarre@codeaurora.org> hwc: modifying logic in adjust FB Z-order for 4k2kYUVSplit

Use complete layer list details instead of depending on only
4k YUV layer indices.

Change-Id: I28deee47b8330a4b3c56bef48e333ce6ead8bf25
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
c17e1753ce0781208842a2233241683c01a4abd2 30-May-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Map dirtyRect to layer destination for single DSI panels.

Map dirtyRect generated for sourceCrop to layer destination
before using it for calculating ROI for single DSI
panels.

Change-Id: Ie65284e9c58270c66276f9d43c4eb3e7db29b623
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
80cd536400045e5625ed89af9b297800d69d7b89 14-May-2014 Sushil Chauhan <sushilchauhan@codeaurora.org> hwc: Full MDP Composition mode with overlap region removal

MDP bandwidth limitations can be avoided, if the overlapping region
covered by the smallest layer at a higher z-order, can be composed
on a render buffer using Copybit, and then it can be queued to MDP
along with other layers. It helps to improve performace by avoiding
GPU Composition in use cases like Home Screen pan. To enable this
feature, set system prop "persist.hwc.ptor.enable" to "true" or '1'
and enable Copybit HAL compilation.

Change-Id: Ib719d3dd42477837519518cc427f1b95356c28f7
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
463feeb515f0cc7454eac70ae8bb96df4b852a38 27-May-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Add display ROI in HWC dumpsys

Add ROI generated for each display in their dumpsys data.

Change-Id: I41fb79af9d42abc11ff147d18a600fd4ad60ab6c
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
484b141e59f02304121b7da45a04ef722a97c294 10-Mar-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Simulate composition strategy

Provide support to simulate composition strategy tree to execute
and test multiple strategy combinations across test cases.

Change-Id: I5011fad32f8f45ecef47b6df513f9d72343697d2
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
800270df33aaaeca37eaac7c24a2fbe01d8fe6db 19-May-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: source split: Enable BWC for video with width <= mixer width

Enable BWC for videos with crop and position widths <= mixer width.
Source split was earlier used on split panels only, and BWC was
never enabled (It should at least have been for eligible content).
When source split was enabled for all panels, automatically BWC got
disabled for rotated videos. This change fixes that.

Change-Id: I349e782fb6de515ff42fcb137f02cf27c425da56
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
5bbc98fa2dcc744a1943cc8c85ce74169fc8a044 08-May-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Map dirtyRect to layer destination before using.

DirtyRect for a layer is generated w.r.t to its buffer
coordinates. It needs to be mapped for layer destination
(display) coordinates before using it to calculate the frame's
ROI.

Change-Id: Id86f495b2016da2cfd5aed4d86bff6d3035abf10
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
514cb6b3f43dd8a3d743cbe68f333898d5e981b8 25-Apr-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Support single ROI for split panels.

For panels that cannot accept commands in both the interfaces, we cannot
send two ROI's (for each half). We merge them into single ROI and split
them across lSplit for MDP mixer use. The ROI's will be merged again
finally before updating the panel in the driver.

- Reads panel property of dual control path.
- If dual control path not supported, merge ROI's before
analysing for composition strategies.

Change-Id: I67e361a299dc5d1adb28b180900e24633eefc4a8
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
6f7634666209698e4835b9f326278a7068834383 18-Nov-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Extend partial frame update for split displays

Extends partial frame update support for split displays by calculating
changing region(ROI) independently for each half of the screen. In case of
only one half updating, display driver shuts down the DSI/MDP mixer control
of the non updating half.

Maintains two ROI's for each display. In case of Non-split
displays, only left ROI is updated.

Change-Id: I8a67fe40aac665a48b6f8a46beffb9f8027851b2
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
b82663bac1ecc18d185c8c15a6108b25b4b847f4 14-Apr-2014 Tatenda Chipeperekwa <tatendac@codeaurora.org> hwc: Handle validateAndSet failures in AD prepare call

When validateAndSet fails we must reset the mDoable flag to false and
close the fb device. This will prevent making a draw call using
invalid resource references and prevent any fd leaks.

Additionally, we should only turn AD on if there are no configuration
errors during prepare call. This will prevent toggling AD between
on/off state in the face of continuous failures.

Change-Id: I15502dbf64c6203092aa13e001bab5d27b0e17ec
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
3fdd1867c6a39a4397ea74370c0d895be30b0e76 12-May-2014 Prabhanjan Kandula <pkandula@codeaurora.org> overlay : Rely on 8x16 pipe strategy for 8x39.

Since both has same number of pipes with similar
features like scaling capabilities, for now rely on 8x16.

Change-Id: Ief51bb5c70d8aef7dca3d791f8b4d62a4c5392ff
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
c9e382481ac19b43dcbefee46ff4ee93fbfe8a95 30-Apr-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Enable source split for targets with single dsi

Enable source split for targets with single dsi. This has the
benefit of using 2 pipes for layers whose width (crop) is higher
than line width.

Change-Id: I147136a3eb786e1af7b63508d65c010e88e358ed
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
ef3b6ddfa2131c105c9b800bf289eb3b4c065442 18-Apr-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Don't validate dropped layers for MDP support

Ignore dropped layers while checking MDP support for layers
when trying for full MDP composition.

Change-Id: Ia11594173759e9dcc321d72ef425615281c35b7c
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
4418482cd51e8343e7efd978ccdd17c616d1d78a 14-Apr-2014 Raj Kamal <rkamal@codeaurora.org> hwc: Add target specific checks in hwcomposer

* Mdss driver supports DMA-Multiplexing on wb interface
for certain targets. Add overlay get function to query
this info during pipe allocation for wb.

* UI Scaling on external is not supported on certain
targets due to the lack of availability of pipes with
scalars. Add overlay get function to query this info
to disable action-safe calcs, DRC and others which
require downscaling.

Change-Id: I1726caa4634f72d781561e797078648524ea2eef
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
c5ee4bd551fd15825770154947920733949f8811 27-Feb-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Use layer dirty rect to calculate frame's updating ROI

Use layer dirty rect instead of display frame to calculate frame's ROI.

Change-Id: If5fe93da7815efdf9b44ed683a4d80b397921cf1
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
ba33c33f54132af55509d5ffaf6d8d344368495f 08-Apr-2014 Xu Yang <yangxu@codeaurora.org> hwc: [8x26]Never allow primary get DMA pipe when external connect

For 8x26, if external display is connected, DMA pipe should never
be occupied by primary display. Otherwise, external display would
lack DMA pipe if switch to GPU composition.

This patch refines former commit: 9c1eb2be21a4952ee097d33

CRs-Fixed: 640934
Change-Id: Idc64b724cfacf9e8e22ca73e4e443e8d989e1212
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
319441687b340d9963456dc79de5b6e16eaf36b3 20-Apr-2014 Prabhanjan Kandula <pkandula@codeaurora.org> hwc : Enable partial update if panel supports it.

Rely on panel info shared by driver and enable
partial update if it says as supported. Use the
existing property to disable partial update if
required for debugging.

Change-Id: I75d5dcbbfea08515d17150054ca91367319b929c
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
ffb2f15afa389b9020b5817c978b05672f82c747 09-Apr-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Skip dropped layers in video only composition

No need to draw dropped layers while doing video only composition
since they are lying outside updating ROI.

Change-Id: I7bef731538e39a5b16f17314ad31f0c4e7f2b618
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
64e9290b18acab1e1c01f06c508ef0bd2a73e7d3 15-Apr-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Set MDSS_MDP_DUAL_PIPE on both pipes

Set MDSS_MDP_DUAL_PIPE on both left and right pipes so libscalar
can detect the pipe pair.

Change-Id: I2c77238de1c7f81d4e17f516680a63462482910e
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
a83d776f160d90db1cb5df28a793f4f06a93f020 05-Mar-2014 Saurabh Shah <saurshah@codeaurora.org> overlay: Support for returning pipe based on capability

Add support for returning pipes based on capabilities.
getPipe() API takes in pipe specifications like format class,
scaling, display, mixer, fb and decides what pipe to return.
The nextPipe() API is now just a private helper.

Change-Id: I0ab809662c0ad6297e19a44f39264ee929944d13
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
0bc6186c13bed6530aadad53308916869871aa8c 28-Feb-2014 Saurabh Shah <saurshah@codeaurora.org> hwc/overlay: Add support for pipe priorities, 1 pipe config for FB.

If using source split to stage 2 pipes on the same mixer stage,
the left pipe needs to be a higher priority than the right.

Add API in overlay to compare pipe priorities and use this in
source split config to stage pipes accordingly.

Add support for 1 pipe config for FB if updating rect is within 2048
pixels.

Change-Id: I8b33d5ebd0f8765ee842bab128d8abd67a110145
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
9b1d1baa5c225eea75c896c2ad4011a73dde058f 31-Mar-2014 Dileep Kumar Reddi <dkumarre@codeaurora.org> HWC: Minor fix in 4k2kYUVsplit feature.

Increment fbZ when 4k2kyuvindex matches with fbZ,
otherwise we see momentary flicker as right half of
4k2k YUV layer and fb layer have same z-order.

Change-Id: Ia900e102b6d4670b9bfdfd4e52ef360d1d813cab
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
ebf925e696ac4debee9ed652aea5ba2a21dfa136 31-Mar-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Add rotator obj to layer-rot-map if acquired.

Add rotator obj to the layer-rot-map soon after its successfully
acquired. This makes sure that any object allocated is accounted
for, irrespective of whether rotator configuration succeeds or not.

Change-Id: I94102d9c607cf61b2eccdf7f2445bb07d309d35c
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
4217cbfc47f3b4f8f0436e3953cf169f7f18a506 17-Feb-2014 Praveena Pachipulusu <pveena@codeaurora.org> hwc: Use proper typecasts.

- Remove compiler warnings
- Use proper typecasts

Change-Id: I7391f32ae31283239f5cebb93b02f3ce3a5c99f3
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
80c2b7d36c8a088e7672aed237966986bf99fa29 14-Aug-2014 Jesse Hall <jessehall@google.com> {msm8084,msm8226,msm8960}/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.

I haven't confirmed reset(0) is called on these chips, only on
msm8974, and that's a necessary condition for the leak to occur. But
this change is safe either way.

Bug: 16601370

Change-Id: Ic24dc3c3546ecdb4e86f7ff3085b2665354e93cd
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
0fdae193307fb17bb537598ab62682edd5138b72 13-Mar-2014 radhakrishna <radhakrishna@codeaurora.org> h/q/d: Add utility function for 8x16 and read RGB scalar capability

- Add utility function for 8x16
- Add internal function to identify if RGB doesn't
support scaling that is read from capabilities node.
- If UI layer needs scaling and RGB pipe doesn't
support scalar, request a VG pipe
- On 8x16, request DMA pipe for WFD

Change-Id: I94e8e0371bb10fcad53fddd2b7c45bc9b2594a4d
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
ef898e19da9a67d99c50376af694877e2c87b5e6 11-Mar-2014 Manoj Kumar AVM <manojavm@codeaurora.org> hqd: Restrict decimation when layer format is macro-tile

When layer format is macro-tile, decimation cannot be supported.
Add necessary checks to bail out for such use-case.

Change-Id: I711f07a2963a76280a08887d04770cd418d8bd1e
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
a653efede03423aa840da24634f1ec6f20796f1e 09-Apr-2014 Simon Wilson <simonwilson@google.com> Revert "Revert "msm8226: update to AU_LINUX_ANDROID_KK.04.04.02.010.224""

This reverts commit 90268aeae4a80fdce99db4a4e45d696afd4fff36.
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
ef53c1c84ec55ed50f607d52b7abfbb86239408e 09-Apr-2014 Simon Wilson <simonwilson@google.com> Revert "Revert "split msm8x26 and msm8x74 display HALs apart""

This reverts commit 13236c4d3582dd6f7185a303c4795ea611edbfe3.
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
13236c4d3582dd6f7185a303c4795ea611edbfe3 07-Apr-2014 Benoit Goby <benoit@android.com> Revert "split msm8x26 and msm8x74 display HALs apart"

This reverts commit 32d546383b4424a954987570731f7fa216bce206.
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
90268aeae4a80fdce99db4a4e45d696afd4fff36 07-Apr-2014 Benoit Goby <benoit@android.com> Revert "msm8226: update to AU_LINUX_ANDROID_KK.04.04.02.010.224"

This reverts commit f96e0b957a215582702db2a5ec6c744afd94eae3.
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
f96e0b957a215582702db2a5ec6c744afd94eae3 28-Mar-2014 Iliyan Malchev <malchev@google.com> msm8226: update to AU_LINUX_ANDROID_KK.04.04.02.010.224

Change-Id: Ia9af631171fb9ec64de1d1cb0ddf5be3e0fe9132
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp
32d546383b4424a954987570731f7fa216bce206 18-Mar-2014 Iliyan Malchev <malchev@google.com> split msm8x26 and msm8x74 display HALs apart

Change-Id: I58a7dc129faa6eef4f7cdc8ee09fd42cd86c189b
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8226/libhwcomposer/hwc_mdpcomp.cpp