History log of /hardware/ti/omap4-aah/hwc/rgz_2d.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
284005c3a0e0b21f28febca5ad1dd647f912d9fe 23-Oct-2012 Jason Simmons <jsimmons@google.com> Fix warnings due to updated definitions of hwc_* types in the HWC HAL interface

Change-Id: I8954125e75c1f0ee469ec035ebe0376139aef1e9
/hardware/ti/omap4-aah/hwc/rgz_2d.c
54712e460cc3b292e5cacb7ce9dd9bd96321e5f9 03-Oct-2012 Gustavo Diaz Prado <a0273371@ti.com> hwc: rgz: Fix using an invalid array index when there are no blits

When the regionizer decides there are no blits as a result of a given
hwc geometry a -1 array index was being used to set the last blit
async, this needs to be avoided if there are no blits.

Change-Id: I3ce2f60a46096559c2ba308cf1d617a79731751e
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit 8d486cd705ffc33d6048880189e16fed387338fd)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
42428ff2ee69e996b145a3b6c9d5791e0cef45e7 22-Sep-2012 Gustavo Diaz Prado <a0273371@ti.com> hwc: rgz: Fix incorrect src rectangle calculation for scaled layers

When scaling a layer, the blit is programmed in a way where the src
rectangle uses the whole cropping rectangle coordinates and
dimensions. However if the layer has a transform, the width and the
height need to be swapped not only in the geometry but also in the
src rectangle to match the new dimensions.

This patch adds the missing width and height swapping for the
src rectangle if the transformation is 90 or 270 degrees.

Change-Id: Ia9d822b6698210573fff662f2fcb129dfc048bf7
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit a80084da8fb2c63a2e44ef9d4ce7598b7cad853f)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
2e285518874217f7e04bd79cb5090c780c5c34ad 20-Sep-2012 Gustavo Diaz Prado <a0273371@ti.com> hwc: rgz: Allow scaling and rotation on the same blit

Allow blitting layers that have scaling and a transformation now that
the GC driver supports it.

Change-Id: Iee5a34dc888656c47b3b514597b75868ccdc008a
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit c195634f79fb5a49b0caa33a4f9605a3aa40efe2)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
935e618471b2ab77c8809354ed6838c067667fe4 26-Jul-2012 Gustavo Diaz Prado <a0273371@ti.com> hwc: rgz: Introduce scaling support

Adds scaling support to the regionizer code.

Limitations:

+ When blending two layers with scaling two blits are issued
instead of one. This is due to a Bltsville API limitation
which prevents specifying two different scale modes for each
source.
+ Support for scaling and rotation on the same blit is not
possible yet due to a GC driver bug.

Change-Id: Ie53157e527dacf639e42a72e371ef962f888131c
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit ad4ba4604f3f9bafed27c83b3c0a49d8731dddd7)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
970ce449573871c863744391a3909187ee0c128c 23-Jul-2012 Gustavo Diaz Prado <a0273371@ti.com> hwc: rgz: Refactor how the blit parameters are set

This patch basically refactors the way the blit parameters are set
per subregion. The intention is to make the code ready to introduce
the scaling support easier and reduce greatly redundant code as well

Change-Id: I2b32056bf2fec1b636fda1c8df9964d90d51192c
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit d8cd439184093184b21291c37702b3eb7c9c836b)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
ee551a5488c74639359303d978673405f3522f43 25-Aug-2012 Gustavo Diaz Prado <a0273371@ti.com> hwc: rgz: Workaround, do not blit if there is a video layer

This is a workaround for a performance degradation found while
a video is playing and the GC320 is used at the same time.
Avoid blitting if there is a NV12 layer in the hwc layer list.

Change-Id: I12e789b9dd95e8b0d435aac1ae67ff65d4511396
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit 52aa03dd27808e773f2133910ae233a1e4d42106)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
e563de0e326074ab07d98384b35ecf7477b5d3df 03-Aug-2012 Gustavo Diaz Prado <a0273371@ti.com> hwc: rgz: Remove workaround, Avoid parsing region data if it's not needed

This patch removes the workaround introduced by the patch:

2cb90b8 hwc: rgz: Workaround for hdmi hotplug crash with 2D blitter enabled

Basically when the number of layers differ from the ones handled in the
previous frame, we don't trust anymore the region data and we need to
calculate it again. If the layers are the same in number and there has
not been a geometry change the region data can be reused for the same
frame

Change-Id: I4421ca5c7bc1b556cd54de888865ed83e957b919
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit 3789ed446d031fbec5fd52ddc0dcde759129ce19)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
ec3c877e686bc277a2ba425c2a5e7a73790eb328 03-Aug-2012 Gustavo Diaz Prado <a0273371@ti.com> hwc: rgz: Fix invalid dirty region state when HDMI is connected

It is possible when the HDMI cable is plugged in a geometry change
doesn't happen, hence the layers handled by the DSS and the
regionizer differ, since the dirty region counters are only reset
when a geometry change happens, this causes them to enter into
an invalid state leading to visual artifacts.

This fix compares if at any given time, the layers handled in the
regionizer differ in number from the previous frame, if that happens,
the dirty region counters are reset for all the layers.

Change-Id: If756b526cf52d66612729d7367c26d131c8a1ac0
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit f683df8b15dcc60d497ca1ef9e0bad2bf280fb5b)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
362d76501749eaa6221ebbb63fcf58542449a391 26-Jul-2012 Tony Lofthouse <a0741364@ti.com> hwc: rgz: Fix for pixel wide regions returning no ops

A region that is pixel wide is in the top-left corner of the screen
(0,0,1,1) makes the empty_rect function to return true, which
is wrong since the region is not an empty rectangle.

Since this function is being used in the moment the blits are
generated, the regionizer thinks the region is empty with no
intersections leading to error messages.

Change-Id: I5f838008a39dcd469e325cb3fdd834408aa91291
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit 7863b0c86de6bae53e2afb4294b32f2f9840f2b8)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
2c96270e021fa6c5e16dc0f42d81fa231ea40293 20-Jul-2012 Tony Lofthouse <a0741364@ti.com> hwc: rgz: Fix dirty region not working when blitting only one layer

The dirty region handling doesn't work properly when only one
layer is being blitted. The problem was the screen dirty state was
only set to zero when one layer reaches the dirty count to zero. In
case only one layer was being blitted the dirty region handling
is never triggered making the empty areas to be cleared on every
frame even if it was not needed.

This patch removes the screen dirty flag and instead introduces
a dirty count for the background and layers with the clear fb hint
as well, since we don't care about the handle, the dirty count
is decreased on every frame, in this way the dirty region handling
sees the background and layers with the clear fb hint as any other
layer.

Rebased from p-ics-mr1:
11e5f7e hwc: rgz: Fix dirty region not working when blitting only one layer

Change-Id: Ifbb111ce7738cd097e74ac01e2c48f3994857416
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>

Conflicts:

hwc/rgz_2d.c

Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit a79d46bbd0438140fb6500d6243b5e3aa392068b)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
ad1bb2394c720bb4b9e794ceffb7e8d271bf3b25 16-Jul-2012 Gustavo Diaz Prado <a0273371@ti.com> hwc: rgz: Workaround for hdmi hotplug crash with 2D blitter enabled

When the hdmi cable is connected a hotplug event is triggered, this
forces the DSS to exhaust the pipes available in most situations
so the 2D blitter is used to handle some layers.

When the cable is connected/disconnected it's highly possible a
geometry change doesn't happen right away (or it may not happen)
leading the region data to be invalid and not recalculated for an
instant, this ends up in sending to the blitter incorrect src
rectangle origins and sizes, most of the time this leads to L3
errors making the system unstable and unable to recover.

Rebased from p-ics-mr1:
104249c hwc: rgz: Workaround for hdmi hotplug crash with 2D blitter enabled

Change-Id: Ie1675d0a0dd03e69fac80dd51cee006fcd6f8791
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit d5907246f792b70e82db195b1c5fb5c1c5be9d5d)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
7a24cc1dc70da3dc57a98895010974746dafe78e 13-Jul-2012 Gustavo Diaz Prado <a0273371@ti.com> hwc: rgz: Disable NV12 rotation support for the regionizer

There is a bug when rotating NV12 buffers with the GC driver,
disable this for now until it is fixed.

Rebased from p-ics-mr1:
7c46d80 hwc: rgz: Disable NV12 rotation support for the regionizer

Change-Id: Ia3add3266bd308fec34cb2b9140146d1da07f7ec
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit 86e65069ed99621c0b9d6c46096bb0bf2fbe97ef)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
db987b5b5c7421a5f3de3ba284e1efa015351712 13-Jun-2012 Gustavo Diaz Prado <a0273371@ti.com> hwc: regionizer: Give support for rotation with Bltsville

Enables the regionizer to support rotation with Bltsville.
This patch doesn't enable horizontal/vertical flips yet.

Rebased from p-ics-mr1:
bd6d0b5 hwc: regionizer: Give support for rotation with Bltsville

Change-Id: I595debea076727ef2c442d7544c1e355aef04808
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit eb5940af48a3b9bd029a5c70d7838d89a03c302b)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
e90714f1863dc151fb2bb7374c0c7ed0b7d75a14 12-Jun-2012 Gustavo Diaz Prado <a0273371@ti.com> hwc: regionizer: Add asynchronous blits support

Regionizer adds the BVFLAG_ASYNC to all the blits, except for the
last one which is made synchronous. The last blit acts like a
fence to let the previous asynchronous blits to finish first.

Support in the GC driver must be present for this feature to work
properly.

Rebased from p-ics-mr1:
822ec12 hwc: regionizer: Add asynchronous blits support

Change-Id: Iec32de51e7d0b95d1b780e60ed4848e8daf7977f
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit 75bcf14b2937c1edbe83834ae93371995dd64b0f)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
8438ab1da64c136916ecf1dfe07869cfa688c8be 19-Jun-2012 Gustavo Diaz Prado <a0273371@ti.com> hwc: regionizer: Batch flags fixes

+ Removed BVBATCH_DST since the destination parameters (buffdesc
and geometry) are not changing while performing blending within
a batch.
+ Removed BVBATCH_SRC2RECT_SIZE, the rectangle size never changes
while constructing blits within a horizontal subregion.
+ Added BVBATCH_SRC1RECT_ORIGIN, it's highly possible the src1 origin
changes from a previous blit within the batch, a good example is the
volume pop blended on top of the widget and wallpaper layers in the
Android homescreen.

This change doesn't address batch flags while scaling, those will
be revisited later when the GC driver supports it.

Rebased from p-ics-mr1 (also cleaned up commit msg):
93b69ce hwc: regionizer: Batch flags fixes

Change-Id: I9b85dce832b391e347aab93800e0b22e67072227
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit 29136475929f69250818d96cf106d28ed4e1cd80)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
cec3d5b8ffff42c2dc5746575172e976feca3450 13-Jul-2012 Gustavo Diaz Prado <a0273371@ti.com> hwc: rgz: support layers with the HWC_HINT_CLEAR_FB hint

Allow the regionizer to ignore (and clear if needed) a region
with a layer requesting to clear the framebuffer with a hint.
This mimics what SurfaceFlinger does when the HWC requests to
clear a layer area with transparent pixels.

Rebased from p-ics-mr1:
3c9a753 hwc: rgz: support layers with the HWC_HINT_CLEAR_FB hint

Change-Id: If61a4f50d0315eb23119d7b97b0f2cb5f994806f
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit 60d9c93b53b7133aca51d7a125f5d14666a772fe)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
7cc2b1a368426ac79eac71d625e08324d83a933f 11-Jun-2012 Craig Stout <craig.stout@ti.com> hwc: pass nv12 surfaces to gc320

Rebased from p-ics-mr1:
e2479b9 hwc: pass nv12 surfaces to gc320

Change-Id: I3f161273aa40da2ced869b7b60f2e9fe76cac3bf
Signed-off-by: Craig Stout <craig.stout@ti.com>
(cherry picked from commit ca5f8d664221423dd005f9333adf530aac51bc75)
/hardware/ti/omap4-aah/hwc/rgz_2d.c
876331fc77f6763c8c390d1289ead00f89f8d9fe 17-Oct-2012 Mike J. Chen <mjchen@google.com> Merged hwc with TI mainline version

Change-Id: I8390a3422c6ff8fa4bc4c0e6a11c51a884aba3cb
Signed-off-by: Mike J. Chen <mjchen@google.com>
/hardware/ti/omap4-aah/hwc/rgz_2d.c