History log of /hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
92b8018e9fcbe8f51f595db0906ff22eed13a251 23-Sep-2014 Jesse Hall <jessehall@google.com> Do not split if width <= split left

Bug: 17673217

Change-Id: Iff629959dd0a6c15866fdca3f508a81482815573
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
0eb79f8456c2a8bb0f30a2e966f8c9000fe934e9 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/msm8084/libhwcomposer/hwc_fbupdate.cpp
ac2fedd035f04998f47f2c5a47034a0968e47865 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/msm8084/libhwcomposer/hwc_fbupdate.cpp
a7075caa2020c42d35d48ffa44302a4d92e5ab5a 23-Apr-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Clear overlay and layer-rot map from caller

Clear overlay and layer-rot map from the top level caller of
composition, rather than from the place of actual intermediate
failure. This makes sure, even in cases of GPU comp failure,
overlay and layer-rot maps are cleared and eventually pipes unset.

Change-Id: Ibf1152a0e8ca66d87bcc6b87009c4b09e451099d
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
314840035b55115a39d526cde009c678ccdacf40 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/msm8084/libhwcomposer/hwc_fbupdate.cpp
3d3705af561ebe7182b23fdc81e0b755d22b11eb 17-Feb-2014 Praveena Pachipulusu <pveena@codeaurora.org> hwc: Use proper typecasts.

- Remove compiler warnings
- Use proper typecasts

Change-Id: I7391f32ae31283239f5cebb93b02f3ce3a5c99f3
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
a85d9f9f2d5cd0555b409b1fc974a9ecec3fee56 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/msm8084/libhwcomposer/hwc_fbupdate.cpp
5080cdee5662ba2eab9a058bda428217720dc694 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/msm8084/libhwcomposer/hwc_fbupdate.cpp
348ca172f707a14925ba1652e9bcb3d4c2a695f4 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/msm8084/libhwcomposer/hwc_fbupdate.cpp
50cd3e8b50b76d74cfa17be5b2baf4973e3bc3a4 18-Mar-2014 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: set mModeOn flag for fbupdate properly

Set mModeOn flag for fbupdate to false if validateAndSet function
fails, so that queueBuffer can be avoided for prepare failure.

Change-Id: Ifcc7a16caf8779f13411ae2a9eeeec6e6c846f4c
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
a1f884eced72ca52131f38df5181a158248a24b9 27-Feb-2014 Jeykumar Sankaran <jsanka@codeaurora.org> h/q/d: Add support to update framebuffer partially

For dual DSI panels, when enabled partial update AND framebuffer rect
optimization, it is not necessary to update both the halves of
the framebuffer every frame. This channge adds support to update
framebuffer based on the updating region generated.

Change-Id: Ia63a8b9ac0e915c04e06122a16471ee18b5a8272
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
7dc3e31e2a6de0ee146ad9146c12453ad5ce8fa7 13-Feb-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Add support for SourceSplit

Add support for SourceSplit. The mixers are abstracted from hwc.
There would be no translations to mixer understood destinations.

1) If a layer's crop and position are < 2048, only 1 pipe can be used
irrespective of position.
2) Else 2 pipes can be used with the layer equally split, without
regard to position.

Change-Id: I501a53838d147887c1e2299366663e05320d5096
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
d5d41f238fd48170a0755bde427088c92ca0920c 14-Feb-2014 Jeykumar Sankaran <jsanka@codeaurora.org> h/q/d: Optimize framebuffer layer update

While doing mixed mode composition, update only the region of the
framebuffer where layer contents are cached or updated. Avoids
MDP fetch for non-visible contents of FB.

Change-Id: I20997d79e02a6bac60d7333c28c6dde134263197
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
c9cbe63708025b7aed15e251b2fb3a914fd842a0 01-Feb-2014 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> display: Remove klockwork warnings and errors.

Remove all klockwork warnings and errors for libgralloc,
libhwcomposer, liboverlay, libqdutils, libqservice, libvirtual,
libexternal libraries to avoid buffer overflow and memory leaks.

Change-Id: I078143bcbcf5e4b342156bd8305a644566f7cc4b
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.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/libhwcomposer/hwc_fbupdate.cpp
f2a7cdb337bc7b0767c0fcca735b1c1d95b6c715 29-Jan-2014 Dileep Kumar Reddi <dkumarre@codeaurora.org> hwc: Dynamic Resolution support on Primary

* Useful to estimate GPU/MDP performance for different resolutions.
* MDP:
Every layer is downscaled/upscaled to primary panel resolution.
* GPU:
All layers will be composed in required resolution to FB.
FB is downscaled/upscaled to primary panel resolution.
* Steps to follow:
step 1: adb root
step 2: adb shell setprop debug.hwc.fbsize XRESxYRES
step 3: adb shell stop
step 4: adb shell start

Change-Id: I82a032df87c91549c49a9cdbd981ff02f105ff2e
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
c38cdae859e0ee12ad3284a308eaeef9d2708c74 10-Oct-2013 Manoj Kumar AVM <manojavm@codeaurora.org> hwc: Add support for Macro Tile feature

Macro tile is enabled only if all the conditions are met:
1. GPU hardware should support Macro Tiling.
2. MDSS hardware should support Macro Tiling.
3. USAGE flags shouldnt contain GRALLOC_USAGE_SW_READ_OFTEN and
GRALLOC_USAGE_SW_WRITE_OFTEN.
4. RGB 16bit and 32bit formats.
5. persist.hwc.macro_tile_enable flag should be enabled.

PRIV_FLAGS_TILE_RENDERED flag is added to indicate whether the layer
is rendered/composited in Macro Tiling or Linear format.

Change-Id: Ie3139839c84d76c5d1a2300f33910a09eb7336f4
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
ac5b9f4e6b7dc80e0f91c1581f0bcb4464a48ef4 07-Dec-2013 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: Add binder interface to get the visibleRegion

- This binder interface can be used by clients to know the
active visible region for a display(pri/ext/virt)
- When external orientation is used, return the destFrame of
the FrameBuffer layer, as its the viewFrame

Change-Id: I7cfd149c76c16b9a3031103c89b1932d44bcbecd
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
23a7db0dafcbd47e976be1011a08f56361801039 05-Dec-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Use viewframe to compute display position and crop.

1. Use viewframe of external display to compute Aspect ratio position
for external.
2. Use viewframe to find the crop rectangle of the frame buffer to
configure rotator for external orientation usecase.

Change-Id: I564c70f202176c8b1f707cbafc08cbbb2abde383
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
f779b3d8113a8c82fb99d759226b835c4620a47d 08-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Reset layer-to-rotator map and fences on configuration failure"
c4aeb6a47160792212f22edecdf1ed45e5f575f3 30-Oct-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Do not use fb handle in hwc_prepare

Do not use fb handle in prepare. Use displayFrame for dimensions,
align them and hardcode format

Change-Id: I5c494a74a807d3a52a1c88257494b58c583700f5
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
b746f91fe3184bf7c3b6475d247d3cc16cc74646 26-Nov-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Reset layer-to-rotator map and fences on configuration failure

When a rotator or mdp configuration for a display fails, reset the
layer-to-rotator mappings for that display and reset the release
fences for the rotator objects used for that display.

Note: The rotator itself is offline and not tied to any mixer. It is
from the mappings that we deduce which rotator object was used for
layers of which display. Also we don't delete rotator objects held
for a specific display, since during stability runs, failures could
repeat each round and we end up allocating and deallocating memory
unnecessarily. The rotator objects will be deleted automatically
when not required anymore.

Change-Id: I9a67f02574be30be3b96b3575f60530cb1c89e10
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
8f42508dc1e3bf24da360d5fbefd8c6574f82868 17-Sep-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
(cherry picked from commit 7e5637c850bcdbe21784ca3bfa9668870306adff)
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
9f471c552b1defa982b66126690e62bbeb896461 05-Nov-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwcomposer : Fix rotator fence for FB pre rotation."
81c1cc1465b0758702b30bf7e5428a62dc8e4604 30-Oct-2013 Prabhanjan Kandula <pkandula@codeaurora.org> hwcomposer : Fix rotator fence for FB pre rotation.

Add framebuffer to rotator map data structure if
rotator is used for pre rotating framebuffer.

Change-Id: I496656c22b289b0bb0bf8c49056384a7fad3ac7d
CRs-fixed: 569696
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
0d530c8c754e9ccb1f122ee2818d9d1d47d7d4da 05-Jun-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Add support to smooth streaming feature.

update the source video width and height set by the video decoder
for secure video smooth streaming usecase from metadata.

Change-Id: I73a3804d90557034604142481a232787dbc08f23
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
f8c680dacf0a357ea1f56542fb329bbc9749b6b5 03-Sep-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add API to find if a display is split

A display could be split if its dimensions exceed 2048 or in case
of primary if we make it so via device tree property.

Add an API to find if a display is split. Use this API instead of
going through a set of conditions in various use cases.
Rename the HighRes, LowRes objects to a more appropriate Split and
NonSplit respectively

Change-Id: Id847c2bf36ea9250e1cdbc0259fdec64bd124537
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
97c10c26c62d57a3fc31197fdd37d1bbfb8d1c2a 22-Aug-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Cleanup patch for SideSync and WFD/HDMI downscale feature

Move block of code corresponds to SideSync and WFD/HDMI downscale
feature to a seperate function.

Change-Id: Ib07cec61abf3a7226bc4dd2ebb9f313519114fd4
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
5208cf1acefb3cb74ea3ba904b6bee9f800133da 29-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "display: Add BufferMirrorMode support for External"
5320999d7fe1c517ff6629b5c1165bbadf387359 29-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Perform MDP downscaling for WFD/HDMI Scenario"
ad60172f872d4827299c20b937f2b02da1a19987 24-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "Revert "hwc: Perform MDP downscaling for WFD/HDMI Scenario""
cc30f59623dfc338567c7178f6f7ef96aa89438a 24-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "Revert "display: Add BufferMirrorMode support for External""
effbd25d502916fcdebadd1d2b83988559434e79 25-Jul-2013 Arun Kumar K.R <akumarkr@codeaurora.org> display: Add BufferMirrorMode support for External

- In Buffer mirror mode, the output on the external should be rotated
based on the primary orientation.
- this is used for the side sync feature.
- buffermirrormode has higher precedence over external orientation
- Add binder interface to enable/disable buffermirror mode

Change-Id: Ibea0af9627d69b4d42453adc868b113d82613437
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
fea63d61337f1efeb2d1c7a7a4fafe472611704c 14-Mar-2013 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: Perform MDP downscaling for WFD/HDMI Scenario

On WFD/HDMI connection, if the configured resolution is less than
Primary Resolution, Display HAL does the following:

1. sends hpd notification to SF with primary resolution.
2. configures MDP pipes with configured Resolution.

This is done to improve UI quality as MDP has better downscale
filter options compared to GPU.

Change-Id: I33570c13016a35ed6c5d22d4c34dfe75b2c605a1
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
e831288603d44b7e6133efae7dac9d0d117fd0e3 22-Aug-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> Revert "hwc: Perform MDP downscaling for WFD/HDMI Scenario"

This reverts commit 1291675ee44cadc234c4403cf1b0cfe70eadaf3a.
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
b89a73f96e83ea4fb1747c6fbec81af0d958cb70 22-Aug-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> Revert "display: Add BufferMirrorMode support for External"

This reverts commit 027d96511c3c5794f200ef1e8c3ef8f264a80d33.
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
60bd7a77779badae5d2e2eabb64ba6dadd820c81 22-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Add support for plane alpha"
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/libhwcomposer/hwc_fbupdate.cpp
f9b43cd974f838c678ae4dffa4a23b516360ff97 25-Jul-2013 Arun Kumar K.R <akumarkr@codeaurora.org> display: Add BufferMirrorMode support for External

- In Buffer mirror mode, the output on the external should be rotated
based on the primary orientation.
- this is used for the side sync feature.
- buffermirrormode has higher precedence over external orientation
- Add binder interface to enable/disable buffermirror mode

Change-Id: I1768dbfac239ae663927358ca9b8e5510b683385
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
88722217d313796d01a1afde4ae456f23ed562fd 14-Mar-2013 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: Perform MDP downscaling for WFD/HDMI Scenario

On WFD/HDMI connection, if the configured resolution is less than
Primary Resolution, Display HAL does the following:

1. sends hpd notification to SF with primary resolution.
2. configures MDP pipes with configured Resolution.

This is done to improve UI quality as MDP has better downscale
filter options compared to GPU.
This works only for QCOM WFD proprietary solution.

Change-Id: Ic20e837bf02c0f7b6718946e70b936f3a469fa7c
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
23421d260e81161813b0d8a14dac30d4d89ed380 17-Jul-2013 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: fix aspect ratio calculations

- Make aspectratio calculations independent of ext dpy w/h
- pass hwc_rect_t to getAspectRatioPosition function instead of
x, y, w, h
- overload getAspectRatioPosition func to return the upscaled
or transformed position for a particular display based on the
values set by SurfaceFlinger

Change-Id: I0be9b2b4b030bdd8e69dc1493dc8cbac31918c27
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
9640e380d8f815ef7ca71c1fdf23eb6f7b30db1e 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
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
3b7a64cec207fdcf80dbf6fac68e995f650931d3 03-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc/overlay: Prevent pipes from switching mixers"
1a36c7e14d1628592e4e1cff96d977b829f8cc31 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
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
178ef1f7412eddc25bbb5d0866fafa99dec625f1 01-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Remove non-wormhole usage from FB config for split display

Remove the non-wormhole calc usage from framebuffer config, since
it was intended for 2D blit which isnt used for split config.
Also the usage leads to incorrect behavior for split displays.

Change-Id: I262b2f7b04f400727bcd97677502239e1080c979
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
9f69b91e962b59f708dac458f24b11c4c4b94348 23-Jul-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: move fbzorder initialization code to hwc_fbupdate.cpp

move fbzorder initialization for external during display animation
from landscape to portrait from hwc.cpp to hwc_fbupdate.cpp.

Change-Id: I4dbac87fe56f8262356043865b61a982244cd72a
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
2e474227e216ee37ab84a3c9a22ea1f650626231 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
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
56d570f1d7eb34ab0db968298efb8e75b849c893 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
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
65e9330208dae69762bd3fc81587b8552eaaf739 13-Jun-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: split display: Allow FB to acquire any pipe

In the high res, partial mdp comp, we may end up using all rgb pipes
before fb is configured. Let fb use TYPE_ANY, so that pipes are
searched for starting with RGB, VG, DMA.

Change-Id: Ie30992f9ad56b83b3411ab4f6bea2bb317bb0ef1
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
30ab3cfcf135223e279411681fe6bdf94f66d8f0 18-May-2013 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: Add action safe support for low res panels

Consider action safe values for UI and video while
configuring overlay for low res panels

Change-Id: Ia40c3e2bb21f808ec127df3edb10e484b82cec3f
CRs-fixed: 481442
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
42def420ce95ff338d3547d0305445a0786d37d8 20-May-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Don't permit rotator use under certain conditions"
e188278e86ebb2f7f1ed3762855f15062b7f9d03 16-May-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Don't permit rotator use under certain conditions

These include constrained targets, with external connected which could
lead to a scarcity of pipes. Furthermore owing to a scarcity of writeback
interfaces, even if pipes are available, we may not be able to still
use rotator.

Change-Id: Ie2fb4c1726f32addcace89c268a126abe0cddbe0
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
3e76f19cb2c0441315ebe54110f7b452d2932f52 14-May-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> display: Remove default arguments for setMdpFlags function.

Remove default arguments from setMDPflags function to get rid of
issues hidden from the developer.

Change-Id: Ic78645675b0aaab284fe2d0de8fffb4b26beabc7
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
a0e87cbc523323604e8fb7cb5526f410a1ed26df 16-Apr-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Do not show animation on External display.

- When primary is animating, the animation should not be
shown on the external display.
- Mark all app layers as HWC_OVERLAY on external during
animation so that SF wont compose it on FB.

Change-Id: Ic557cabfd9f2518614777c0e993541e36e090850
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
3b9570a337a3115ad05dee3c1aa2ecc6f82f6ab1 10-Apr-2013 Arun Kumar K.R <akumarkr@codeaurora.org> display: Add support orientation control on ext display

- The required orientation on External can be set using the
properyt sys.ext_orientation.
- Values can be HAL_TRANSFORM_ROT_90, HAL_TRANSFORM_ROT_270
- According to the value set, the FB_TARGET for External will
be rotated and positioned as per aspect ratio on Ext
- For YUV(video layer) it just calculates the position, as the
rotation should be the source orientation
- This feature is supported only for low resolution panel.

Change-Id: I3d532ee0cb8dca3c37869537b55cd8044fd9047e
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
eb43d2b7b681164a58e3f86bd0b0d88eea6a3591 07-Feb-2013 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: Add support for EXT_ONLY Layers

If there are any EXTERNAL_ONLY layers present in the list, mark
them as HWC_OVERLAY such that SF does not compose and in hwc_set
post that layer to Ext display, ignore other layers

Change-Id: Ic5db3bfa88295167d23d1fb2be7640c9fc772054
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
f099baf4315c82a9718e987f20f3de4b91b53311 02-May-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix left half of fb for high res.

Left half of High res panel is not 2048 wide always.
When back-calculating for left mixer, use half of panel width.

Change-Id: Ifa2acd533f00cfef92a12d402e78b3491281a323
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
af5f82d1c39754b14e9fc91eedc0d0429020c049 25-Apr-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix bugs with mixed mode MDP comp

Fix reseting on handles, they never were in most cases,
owing to wrong size.

Fix redrawing, which needs to be done also when the fb's zorder changes.

Fix mdpcount update which should happen before we assess the pipes
available versus the pipes needed.

Handle video only cases, where other UI layers could be present, but we
cannot use MDP comp for them.

Restructure MDP comp decision model and some redesign.

Change-Id: I86a2efb77edccbbb9e9d7701d06c5b2578a9d2aa
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.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/libhwcomposer/hwc_fbupdate.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/libhwcomposer/hwc_fbupdate.cpp
f9572cdbe3541d85522adea584f925671b375300 26-Feb-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Implement mixed mode composition.

With this change we are moving MDP composition from all-or-nothing
implementation to mixed mode implementation where layers can
partially be composited through MDP and while rest of the layers are
composed / cached in framebuffer.

- Mixed mode design is based on layer caching
- Mixed mode path is configured only when non-bypassing
layers are cached.
- Never allow mixed mode when FB needs to be udpated.
- If we cannot bypass all MDP comp marked layers, bail
out completely.

Change-Id: Ie08f39db07e032b537f042d0d2bfe772ebfed049
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
ac464e81612b50f76b75a28bfac8d4728fb3fe55 22-Mar-2013 Sravan Kumar D.V.N <sravank1@codeaurora.org> hwc: Configure FbUpdate only when needed

When video overlay is on and there are no UI layers to compose,
there is no need to configure for framebuffer target.

If framebuffer target is also configured in such cases, video is not
shown on display due to 0 z-order.

Change-Id: I468068fa3a273d61e3688014251043035353cec0
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
e58b83d65c0e78769e603baefbf19005de5470da 29-Mar-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Use correct z-order in video overlay"
5c937230915bced21130a3e5d129c4f470fd74d3 15-Mar-2013 Sravan Kumar D.V.N <sravank1@codeaurora.org> hwc: Use correct z-order in video overlay

Set z-order of video layer to 0 and framebuffer to 1 in case
of video overlay composition so that the blending takes effect.
Also set is_fg OFF for framebuffer.

Change-Id: I05f930074d265d690f29a1003b7c28077df89bbf
CRs-fixed: 458180
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
54a4a8e7d7b1aadb06153ee36935860cacf1e643 22-Mar-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Configure pipe for FB even if we exceed max layers

Even if we exceed max supported layers, configure pipe for FB
Because FB contents are always displayed using hwc

Also some minor code fixes

Change-Id: I740ab7e908c916373b1d87facd831e09098ce753
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
93f93515d4b36db7ddb56da15563e3ea6e7ce18c 19-Mar-2013 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: fix dst calculations for right mixer

The calculations made for the right mixer was not correct,
fixed it for both FBUpdate and video usecases

Change-Id: Iff2c296321bce14b776731528fff6f1d255d829a
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
c567a93cd9ff7079ac03024d4fdb1ddc5683e748 21-Feb-2013 Jeykumar Sankaran <jsanka@codeaurora.org> display: Remove framebuffer HAL usage

This patch removes the usage of the framebuffer HAL which is
deprecated in JB MR1 onwards. The code is left for compatibility
such as conformance tests but it is unused for normal display
usage.

Change-Id: If98133bdaa759cdc41d4503ff695b225ee43cb6f

Conflicts:

libhwcomposer/hwc_utils.cpp
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.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/libhwcomposer/hwc_fbupdate.cpp
04a2afbd65e9f8bc580a637bf44bfc4e627edce0 14-Feb-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Use intermediate buffers for copybit

The earlier copybit solution involved blitting directly into
the SurfaceFlinger's framebuffer target. That solution involved
unnecessary framework changes and caused issues when the
framebuffer was being written to both by GL and copybit.
Update hwc_copybit to use our own buffers for this purpose.
We also make sure we display only the region we're interested in
so that unnecessary artifacts from previous blits do not show up
on the display. This way, we can avoid clearing the intermediate
buffers every frame.

Change-Id: I713b3fc606e0768444c621af76853ece41964da1
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
0ae34e340382b0b3b767b844305db19e91257edd 01-Feb-2013 Arun Kumar K.R <akumarkr@codeaurora.org> display: Add support for overscan compensation for ext display

- Read scan_info sys file node to check if TV underscans
- Apply action safe parameters to avoid overscan on ext display
- Store action safe width and height ratio using system property
- Use these to calculate the destination position on the ext display
- Remove unsed ActionSafe Class

Change-Id: Id27e6fa20966fb13fc16aa7e237cacce8caeb642
CRs-fixed: 447367
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
9513fc6f6c9a7eb26a57838c6bbe95ecd29a7ca5 31-Jan-2013 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: Do not set Secure flags for UI layers

Change-Id: I5116bcd93ac2a3ab034408e64aa0cd126f734692
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.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/libhwcomposer/hwc_fbupdate.cpp
640cb9421639c13248aeb30c3496cdfaec6d894c 13-Dec-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: Support 4kx2k FB for Primary and External.

Add support for 4kx2k FB for primary and external panels.
Change class design to create appropriate version of FBUpdate on boot up based
on the panel resolution.

Change-Id: I216d815d9b81c610aa39e351f7b55736dfa48b43
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp
47377987cc4eef72ee3b0cdced8c3a15038b39eb 28-Nov-2012 Naseer Ahmed <naseer@codeaurora.org> hwc/overlay: Dynamic pipe tracking.

Remove state based pipe handling and make pipes tracked dynamically.
Add the configStart, configDone, nextPipe availablePipes APIs.
Remove setState API.

-configStart marks all pipes available.
-configDone garbage-collects unused pipe objects.
-nextPipe returns the index of next available pipe and create a corresponding
pipe object if not present
-availablePipes returns total of "unallocated" pipes. (Pipes could be allocated
but unused)

Changes in hwc adapt to the new overlay APIs.
Compile out MDP comp.
Remove unused files in overlay and hwc.
Update licenses.

Conflicts:

libhwcomposer/hwc.cpp
libhwcomposer/hwc_utils.cpp

Bug: 7626586
Change-Id: Id8e56901d34e5dc0fd088260d05e3e46f68ff090
Signed-off-by: Saurabh Shah <saurshah@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc_fbupdate.cpp