History log of /hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
bce12990928d1c2d1e250271b43f5fb10174ecfc 13-May-2014 Saurabh Shah <saurshah@codeaurora.org> overlay: Remove usage of scale header

Remove usage of scale header and do not create or destroy objects.
the programScale() function exported out of libscale.so will
internally manage objects.

This frees up overlay from relying on scale.h which may not be
exported by libscale.so to a known location if only binaries are
shipped.

Change-Id: If6970541e2eb0ee2bdb907c73ed3534fc22e9dd1
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
77c1e87bc317f052f46dac466a0efd91e5bf7b21 12-Apr-2014 Naseer Ahmed <naseer@codeaurora.org> overlay: Remove defines of log2f

Was a relic from earlier builds

Change-Id: Icf640a48f35c4caf6e7cbafa527260b040900096
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
91bab6c4186b0dde65ba178f41cf55d691019e4e 26-Mar-2014 Sravan Kumar D.V.N <sravank1@codeaurora.org> overlay: Align width to 4 multiple in case of 90 degree rotation.

To support interlaced content with 90 degree rotation
width has to be aligned to 4 multiple.

Change-Id: Idaae06f1aa80490ae1b37e148c6d862dc26bebca
CRs-Fixed: 637264
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
1e4d70d866537955876c11a279498579842b8a41 02-Apr-2014 Jeykumar Sankaran <jsanka@codeaurora.org> h/q/d: Dump ovinfo only on pipe config errors

Dump ovinfo only when validateandSet fails due to invalid pipe
configs. Failure due to insufficient resource is common and
dumping ovinfo for such cases wont provide much information.

Change-Id: I9e102cf633bb394603ea2484d80017e4b906b49a
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
72ec5996469f52df964b4ea4ed8f1cc3f7fbb330 15-May-2014 Naseer Ahmed <naseer@codeaurora.org> Revert "fixed msm8084 display HAL compilation"

This reverts commit b4216eed261a310a9f93607d68d139518ba516c7.
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
b4216eed261a310a9f93607d68d139518ba516c7 28-Apr-2014 Vineeta Srivastava <vsrivastava@google.com> fixed msm8084 display HAL compilation

1. Updated Makefiles for it to compile.
2. Removed ANDROID_JB_MR2 flag
3. Removed HWC_BLIT
4. Included sync.h header

Change-Id: Ic8d713e9a68cecd961505a20ff55b8b173f2ee8d
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
1029ad2b12d5f30e77b2c2f85da891f2d1842424 17-Dec-2013 Saurabh Shah <saurshah@codeaurora.org> hwc/overlay: validate and prepare frame

Send the entire frame (array of overlays) to driver, so that it would
check pipes params and the whole frame wrt bandwidth and SMP.

Now, the overlay's commit API just prepares an overlay object but
makes no ioctl calls.

If the driver finds the frame, as a whole, to be not ok, the
validation fails and overlay/hwc return silently.

If a certain overlay object is mis-configured or pipes are
unavailable, the driver sets the number of objects it processed.
Overlay uses this to dump the incorrect config.

Change-Id: Ifb2b7fadc6bd6d9d94a35ba3908fbd832f41447f
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
fbda988d2909e2b8527098b5ffc93fa38fb0219e 22-Jan-2014 Arun Kumar K.R <akumarkr@codeaurora.org> liboverlay: remove warnings during compilation

- Remove unused variables
- Use proper typecast

Change-Id: Ia60fc4c3c7ec39a1df4a780de7f5d75d723f7960
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
b4144169bc4681fe47647bc127be3da2e59e9623 07-Jan-2014 Saurabh Shah <saurshah@codeaurora.org> overlay: Standardize init/close of internal components

Standardize the constructor/destructor init/close of internal
components.
Also internal components are allocated dynamically, with pointers
maintained in parent. This should facilitate gathering internals
from objects into arrays.

Change-Id: I8606fa436cf03fb75e43dc0f8341a05901751a11
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
acd5dc3e7e638a8d9e83b46f3cb5f4e4effe23d7 31-Dec-2013 Raj Kamal <rkamal@codeaurora.org> Call overlay_set even if there are no change in params

* Call overlay_set even if there are no change
in mdp_overlay params.
* Remove mPPChanged and mLkgo variables and associated
functions.
* This is needed because there is no value add in
avoiding set calls when there are no change in params.
This also helps us in avoiding hal hacks where we
need to force call overlay_set due to driver issues.

Change-Id: Ib626acbdce93185ff037c9581d07bbe428f5f159
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
b28b611dec8392c7c8f17bc5e71b0a656fa8daa8 06-Dec-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Remove support for forced pipe configs

Forced pipe configs were used during geometry changes to track bandwidth
in driver, which is no longer the case

Change-Id: I49fb1ca1b7173da2e17ccfc8ce9b447152b9b7b6
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
8d64e523e2f6c8f04cf859536c2c073d6193d70e 02-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc/overlay: Add Color layer support in MDP Composition."
08cbd816733f17c957411ae915f2543afea70b67 18-Jul-2013 Sushil Chauhan <sushilchauhan@codeaurora.org> hwc/overlay: Add Color layer support in MDP Composition.

1. Color layer has a destination rectangle, RGBA color and plane
alpha. There is no gralloc buffer. Layer flag "HWC_COLOR_FILL"
denotes a Color layer.
2. There is no color member in HWC layer, so RGBA color value
is passed via the "tranform" member from framework to HAL.

Change-Id: I8769fd3f5febcaf952a1456de0a4262679c9a0e4
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
072cc46edd38e61fd21757c4725dbcef431bef08 27-Sep-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Add support for using scalar calculations

Add support for using scalar calculations from custom library.
The calculation will override pipe configurations if required on
basis of format, scaling, split display etc.

Change-Id: I53c73431b70b5b339ad09c19ac8792f0fc96aaaa
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
12a7b537b1e043a61b06db3d083c2372c11ef1f2 19-Mar-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Add support for plane alpha

HWC 1.2 API passes down the plane alpha and the blending
operation to apply. Pass this information to the MDP.

Change-Id: I7fbd17345d9157aa654e4b1031ac3e26adf87f37
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
113e05ecbfafafc57351734dffd22d21ca7c4ee5 19-Jun-2013 Sushil Chauhan <sushilchauhan@codeaurora.org> overlay: MDSS cannot handle 1-pixel downscaling for UI layer.

As MDSS cannot handle 1-pixel downscaling for UI layer, decrease
src crop by 1 pixel in such cases.

Change-Id: Ifc1f3a8e416c48db4b09d2ab0838927952e263ed
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
cb4c7d9014e462a67ccb650a26f1c2f89aef6e58 13-Jun-2013 Arun Kumar K.R <akumarkr@codeaurora.org> liboverlay: define log2f only for jb_mr1

We only need this defined for JB MR1 as other builds may have it
defined in math.h

Change-Id: I6fbf3338bad63baa9dba3c7e135853bdce909930
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
b1f967cdfb6a3e223ec8c45601da5640a8307228 01-Jun-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Add BWC policy manager"
55c5bf42207f78090f0b63277fcaa2e7dd3262f9 30-May-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc/overlay: MDSS driver requires 4-aligned crop.h for interlaced"
f0a7a20029deae76ea13d90099a09cc5e540f6ba 29-May-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add BWC policy manager

Add a BWC policy manager that decides if BWC needs to be disabled on
certain conditions.
These conditions are statically determined. BWC might get used and
still fail (or cause failure of subsequent pipe requests) if SMP
blocks are not sufficient.

Change-Id: I805738911a8da7dfc6232c133c74ef844c3af5b1
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
d49176f4cbdb03d1ef3225bddf225293241b16a0 24-May-2013 Sushil Chauhan <sushilchauhan@codeaurora.org> hwc/overlay: MDSS driver requires 4-aligned crop.h for interlaced

MDSS driver requires the crop height to be multiple of 4 to
de-interlace the interlaced Yuv content.

CRs-Fixed: 491488
Change-Id: I9a95392a71cca217e2890c9736f1450fd8aa4a59
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
20ab3f49dbdb9482f456759cf2fed2264d1f01e2 23-May-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Reset pipes on config failure

There can be frequent failures in pipe config on certain targets
owing to scare SMP blocks. In such cases, reset usage of all pipes;
forcibly configure them next time, even if params haven't changed;

Change-Id: I769513fc3513e292d9d9b7f126735841a7a8f493
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
e2f07405d2d04aaf5577080761cd2b11a9e3c736 09-May-2013 Sushil Chauhan <sushilchauhan@codeaurora.org> hwc/overlay: Crop x, y, w and h should be even for MDSS Rotator.

MDSS driver requires Rotator crop x, y, w and h to be even for YUV
formats.

CRs-Fixed: 485216
Change-Id: I9a066970f8cedaed7ba18534bb99edd1bcf421dd
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
4762db4eb027284225be9d10f08d87252612064c 11-Apr-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix dumpsys crash

In extreme cases, when all pipes are used, the buffer is insufficient.
Reduce logging by striping off unnecessary bytes.

Change-Id: I5a6ffb9ff288e389eea4e9ca4ac850ed59d539ff
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
8fe8c938d27e528fcf7fb4a408711b4b6e405f13 04-Apr-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Add support for decimation.

Add support for decimation on top of what MDP can downscale,
because decimation can have quality issues.
B-family MDP downscale of 1/4, plus decimation of 1/16 can let
us have a total downscale of 1/64.

Also decimate by 2 (min) if width is greater than what layer mixer
supports and is not handled by the client.

Change-Id: I3b7c4bf321c7561bd98206ad118f4ac1ee2879ae
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
5015ccda26e8f6e4d3293e0128f853557189ad47 13-Apr-2013 Linux Build Service Account <lnxbuild@localhost> Merge "overlay: Swap flips on 90 only for older mdp version."
027d88d922505ca1e8d90e231e69b40e7948ea9e 10-Apr-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Swap flips on 90 only for older mdp version.

Older mdp rotator does 90 first and flip next,
forcing HAL to swap flips, in presence of 90.

Newer mdp does flip first and 90 next, owing to DMA pipe.
(Also similar to GPU flip handling). So we can pass flips as-is.

Change-Id: I379509a07e45966262005666e7727e7923079d3a
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
c515b0f37640828e8d9c1d9d7fef0d452684fec4 10-Apr-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix black line in center of 4k2k.

1080p Video on 4k TV:
On newer mdp versions we don't need video destination to be even.

Portrait framebuffer on TV:
The framework chops off texels from RGB layers's crop.
Ref: frameworks/native/libs/gui/SurfaceTexture.cpp#616

When we use getNonWormHoleRegion() in HAL on a 4096 width TV,
we get a final rectangle short by 2 pixels on the right.
When we divide this frame in half for displaying using 2 pipes,
we end up not filling up the left layer mixer upto 2048.

Example:
Tv width 4096. (Portrait display on TV)
Dst left = 1440 (left black bar is 1440 pixels wide)
Dst width = 1214 (ideally should be 1216, but because texels are chopped)
4096 - (1440 + 1214) = 1442 (right black bar is 1442 pixels wide)
When the half width (1214/2 = 607) is given to left layer mixer,
its left (1440) + width (607) comes to 2047, leaving 1 pixel out!

--The texel chopping can be gotten rid of but it breaks test cases
in a way which is difficult to fix.
--The other option is to not use getNonWormHole() but to stick the full
framebuffer on display will increase bandwidth.
--Yet another option is to subtract the left rectangle from 2048,
calculating backwards. This change does that.

Change-Id: I17f3bfd1184bbf8a33d116c288d4cc2c51a3911a
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
5d50448ce691782fde0c26ec8247b3d5d6b2de82 23-Jan-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add MetaData support in overlay path.

DONE:
1. HSIC(SPA) test.
2. IGC R/G/B channel test.
3. QSEED2 sharpening/smooth test verified through register value check.

Change-Id: Ia9472f489c013df22a3411eeaac3c8d1e6e22ac0
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
327b2ba85538669304a50d0fb6cc2f6aab7aaf3b 26-Feb-2013 Saurabh Shah <saurshah@codeaurora.org> hwc/overlay: Video on 4k2k external, 4k2k rotation.

-Add support for Video via overlay on 4k2k external panel.
-Add support for rotating videos on 4k2k panels. We use
pre-rotation in hwc to rotate a video into a single buffer,
irrespective of panel size. Then this buffer is fed to MDP.
Rotator objects are managed by the new RotMgr.
-Cleaup mdpcomp and overlay.

Change-Id: Ifb08534747e8e18b6c58dd8a3e1a9947409100f1
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
dbdcee7b408fa6cbf37169d9601aa3598c91ce40 22-Feb-2013 Linux Build Service Account <lnxbuild@localhost> Merge "overlay: Fix rotator output buffer size."
a22f5873a9974b00f352370e077db9788ad67699 13-Feb-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Add support for pipe dumps.

Add support for pipe state dump useful in dumpsys.
Reduce debug log spam when mdp state changes.

Change-Id: Ie27ad00698085e2ffd6166ad2f7503fe16a571f8
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
e4dbe91c2c45ef7ad1f5106b75bd49062cf80c48 15-Feb-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Fix rotator output buffer size.

Fix rotator output buffer size for mdp and mdss rotators.
Output size is based on rotated width & height.
Output format can be different than source format.
It could be same if using mdss rot or using fastyuv mode in mdp rot.
Deprecate the static mapping of rotator input and output formats.
Driver will be responsible for correctly populating the dest format that its
wishes to use.

Change-Id: I17352d6d460cac24eb97083aed38668929c66807
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
47c130ffbafe12d6ddf6e8df4ffdd9916318c379 16-Nov-2012 Raj kamal <rkamal@codeaurora.org> liboverlay: Set mdp src format as rotator output format.

* Set mdp source format as rotator output format
rather than determine it from a fixed mapping of
input/output formats.

* This is needed since for the same input format
to rotator, fastyuv mode if enabled may result in
a different output format than the one if the mode
is not enabled.

* Do the inline optimization for rotator where possible

CRs-fixed: 451064
Change-Id: If0bb2f3a44df10968383ab3f5c3625257518934d
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
5070c694011ddc30673ec68a9d1d74dc713c49f2 10-Feb-2013 Duy Truong <dtruong@codeaurora.org> Update copyright to The Linux Foundation

Change-Id: I145b66896159ff9886ed73507f17b3165ba0266d
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
8b2d50f3c665329517352269a687bdf562b2cc6d 15-Jan-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> liboverlay: Rotator-assisted MDP downscaling of videos.

Engage the rotator to assist MDP in performing video downscale for
primary and external. This saves bandwidth and avoids causing the
driver to make too many panel mode switches between BLT (writeback)
and non-BLT (direct) modes.

Change-Id: Icfabc2c0f978a23cf96c78a9976cf69cea697b5f
CRs-Fixed: 434852
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
2dc8fbef183721824969902cba9c9daeb5b3ea4a 13-Nov-2012 Mathew Karimpanal <kjmathew@codeaurora.org> display: Standardize log-tags for qcom display logs.

Change-Id: I75bc2d8db8d64994097d6b744f357c29c9a5717a
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
97f90b097454424374c34f4e79aaf1025eef1cd0 21-Aug-2012 Saurabh Shah <saurshah@codeaurora.org> liboverlay: Adjust values to align with MDP requirement

For YUV only:
Crop rectangle (src_rect) needs to be even for x/y and w/h
Destination dst_rect w/h need to be even (x/y can be odd).

Signed-off-by: Saurabh Shah <saurshah@codeaurora.org>

Change-Id: Ib0c1b7d31773e71d60f080b4beacaa68e32a990e
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
a71a7ecd0323a16fe7728271474f8b7056c679d8 18-Aug-2012 Saurabh Shah <saurshah@codeaurora.org> hwc/fb/overlay: wait for fbpost and pan display

Draw sequence in hwc_set
--eglSwapBuffers
--wait for fb_post. Its ok to draw to External only at this point.
--draw to external | Parallel with PAN
--commit to external | Parallel with PAN
--wait for pan (happening in fb_post) to finish.

Call MSMFB_OVERLAY_SET ioctl only when params change.

These thing together ensure a correct sequence and should fix tearing and
stuttering, the latter assuming there are no other display pipeline delays.

Acked-by: Arun Kumar K.R <akumarkr@codeaurora.org>

Change-Id: Ibb0ad8485fa6b30dc6ac07ae8b25a760941c08ce
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
095858108ae7959f7ab29edc342988cb47adf558 15-Aug-2012 Saurabh Shah <saurshah@codeaurora.org> liboverlay: ensure open fd's are always closed

Ensures that reset and mFd.Close is always called when MdpCtrl
and MdpData are closed down.

Acked-by: Arun Kumar K.R <akumarkr@codeaurora.org>
Change-Id: I775ba7cfe45c67e6acf874e3f4e8b4fa6fbe33b8
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
835713dc4f444860a7718205ab95d9fe24adc469 10-Aug-2012 Saurabh Shah <saurshah@codeaurora.org> Overlay: Switch the flip for MDP, on 90 rotated source

Camera client doesn't factor in the 90-rotated source when setting the flip
Switch the flips when the source is 90-rotated.

Change-Id: Ia5f18afff4384a33b8ad2ca051be1a120aefa4d5
Acked-by: Kinjal Bhavsar <kbhavsar@codeaurora.org>
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
ee7fc0347e52276d43413e91f31d72d6db99dcfb 20-Jul-2012 Naseer Ahmed <naseer@codeaurora.org> liboverlay: Refactor, bug-fixes, upgrade.

* Fix memory leak during copying pipe objects.
* Remove unused / unnecessary code.
* setMemoryId API is merged with queueBuffer.
* setParameter API is setTransform now.
* Rotator upgraded to:
--Allow different rotator hardware types.
--Remove dependency on MDP code.
--Allocate memory only during first playback,
close when the associated pipe is closed.
* Have single commit implementation.
* Include new format types.
* Remove WAIT and CHANNEL enums and usage. Replace BypassPipe with
GenericPipe. Client expected to set alignments and parameters.
Add transform combination enums.
* Allow APIs to be called in any order. Do transform calcs in commit.
Move ext type setter and getter functions.
* Add calculations for 180 transform.
* Add secure session support in rotator
* Implement all rotations in terms of H flip, V flip and 90 rotation.

Change-Id: I34a9a2a0f1255b3467a0abbaa254d0b584e901ce
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp
befc466069680cb8a65b1f22ad44723d949128c8 14-Jun-2012 Naseer Ahmed <naseer@codeaurora.org> qcom/display: Update HALs

- Update the display HAL from Code Aurora Forum
- Add updated overlay library
- Enable HWC with basic video going through overlay
- Cleanup some files

Change-Id: I65c687c51be458cee71213c79e03eeda962d9086
/hardware/qcom/display/msm8084/liboverlay/overlayMdp.cpp