Commit Graph

195 Commits

Author SHA1 Message Date
Shilin Victor 2ebf93df9d exynos: libEGL_mali: don't force BGRA8888 format when it's unneeded
Change-Id: I9cc318b7bb00c2efaf386bb2e75e99c275aaca7e
2019-03-06 00:07:41 +03:00
Shilin Victor f54ba67557 exynos4: only build libEGL_mali if board flag is set
Change-Id: I04ec85e24be6af5497d49844626a2651e22084be
2019-03-02 22:31:56 +03:00
Shilin Victor fb016d5b6e exynos4: EGL_mali: allow to skip EGL context detach
This should prevent Mali blob freaking on context detach.
Not sure if this is a good idea just skipping context detach,
but let's see how it goes...

Change-Id: I62121b17b74276a687818531187ba444fedc32bf
2019-03-02 21:52:38 +03:00
Shilin Victor c1b4b30ccc exynos4: build libEGL_mali from sources
* used a handcrafted assembly to replicate original functions
* fix invalid window format passed to libMali (RGBA vs BGRA fix)

Change-Id: Idc88c255e3280e11a35e552c40098ae967947108
2019-03-02 18:45:07 +03:00
Shilin Victor 8b1d6eb487 exynos4: gralloc: actually disable ION allocations
This reverts commit 6cec77e050.

Change-Id: I87ea925c33ecfe7f2728b84cc5a316530d7d8765
2019-03-02 00:10:19 +03:00
Shilin Victor 9c4bb20ab5 exynos4: fix inclusion of LiveDisplay
Change-Id: I6d0884f741066cbdef441d59b6b7b1cff023eb62
2019-03-01 21:45:49 +03:00
Dominggoes Isakh 07865c0821 gralloc: Update freed buffermask at alloc
This fixes screen tearing because of the change of HIDL behavior.
The buffer is freed before the next allocation causing the
bufferslots always be unused at allocation. Only the first buffer
in the framebuffer /dev/graphics/fb0 was used.

Thanks to @Chronomonochrome for pointing out the issue in gralloc.

Change-Id: If1f6eb667506743cca828fbf87a45e7c2ee849a9
2019-02-26 20:59:03 +03:00
Shilin Victor ca4cd7f5c3 Revert "exynos4: gralloc: allow skipping bufferMask change on free"
This reverts commit 9e1e7fe726.

Change-Id: I839928cdaf79486b74b87d999d3b0508520799c0
2019-02-26 20:58:54 +03:00
Dominggoes Isakh 8af7c99f0d gralloc: Disable ION allocation for HWC
We got screen tearing issues because only one buffer was used
in /dev/graphics/fb0.

Credits goes to @Chronomonochome for his original commit.

Change-Id: I321bb19ce586a74319941046800f0db07ce7bf98
2019-02-26 20:58:46 +03:00
Shilin Victor 6cec77e050 Revert "gralloc: switch to UMP-only allocations"
This reverts commit 33b21658f3.

Change-Id: I17953c198b97404df00a285c053d5713e9fe022f
2019-02-26 20:58:38 +03:00
Shilin Victor 727b2b1a82 exynos4: gralloc: remove some methods implementation
Change-Id: I57c571fb3c0226e979a6b74c7fef05ac8cf85d8d
2019-02-21 15:21:09 +03:00
Shilin Victor e7eab5f906 exynos4: gralloc: allow skipping bufferMask change on free
an addition of Gralloc HIDL caused Exynos4 gralloc
to use only one framebuffer slot of the available two.
This happens because the buffer is freed by HIDL immediately
after it's allocated, thus making gralloc HAL think that
first buffer is free and allocate a second one at the
same vaddr (effectively using just one buffer).

By skipping bufferMask change on the buffer free,
we will make use of two framebuffer slots and fix Vsync issue.

Change-Id: I0c3e7f517a67ad9d554111f91ef2f5190c6522c8
2019-02-12 20:31:12 +03:00
Shilin Victor f0a77e61e0 exynos4: Set native color format for the Native window
based on and avoids need of commit 19ab8af47c

Change-Id: I2048689459359c54f98223b762f3fea803c81a8b
2019-02-08 21:25:58 +03:00
Dominggoes Isakh 48e12ec57f Exynos4: Initial implementation of LiveDisplay 1.0
Change-Id: Ic42ac877b5bbd437b07616c0bcaedd7d846d07c2
2019-02-06 16:48:04 +03:00
Shilin Victor 39922dd5bc gralloc: switch to UMP-only allocations
Change-Id: I824855ce742f44669472f6d6176beea674137f64
2019-02-06 16:16:18 +03:00
Dominggoes Isakh 19a7c12ce1 gralloc: Clone handle when unregistering buffer in separate thread
Change-Id: I113158592e29867246cdfd1daa96a3960d6851d6
2019-02-06 16:14:01 +03:00
Dominggoes Isakh e19a67af25 gralloc: Implement FIFO in partial flush's rect_list
Change-Id: I275f41de4b55065b1644e7dfc11def81bf86eff6
2019-02-06 16:14:01 +03:00
Dominggoes Isakh af9f15adb6 gralloc: Unregister graphicbuffer in separate thread
Change-Id: Iea08c633f6e0adffacb03b05ee041ff99f776787
2019-02-06 16:14:01 +03:00
Dominggoes Isakh 3c913bf8c8 gralloc: Move unregister_buffer to seperate method
Change-Id: I4b53996be77c874cb7475104c58e428118a133a6
2019-02-06 16:14:01 +03:00
Dominggoes Isakh 41bfeb9370 gralloc: Fix GraphicBuffer screenshot issues in Pie
Buffer allocation for GraphicBuffer fails because it is released
to early. Use ION buffer and add an ump-reference to stall.
Change-Id: I077bd7176fff4aa08a46362d80e64ad9b740773a
2019-02-06 16:14:01 +03:00
Dominggoes Isakh 3c86d5e6eb hwcomposer: smdk4120: Add composition-decision of our old hwc
Change-Id: I2e1919e7abeb78310358ac315f7de2a9223f6fe2
2019-02-06 16:13:27 +03:00
Dominggoes Isakh 3cacced179 exynos4: android.hardware.graphics.allocator@2.0 for Exynos4
* Buffer got corrupt because of the mNumFlexPlanes member.
  Use fixed value of 4 instead and exclude the member.
* Usage bits were not filtered properly

Change-Id: I7ee9fa73f896c505403447ae118a76d9f53e00a8
2019-02-06 16:12:44 +03:00
Dominggoes Isakh 79932c733a hwcomposer: Don't set state to S3C_FB_WIN_STATE_DISABLED
This fixes rendering statusbar icons in Pie when high resolution
display setting is set. The height of the statusbar is less than
32 pixels and was therefore not rendered.

Change-Id: Ie6283de2cb429f0c0d3ca66bf5d3638639a66f79
2019-02-06 16:12:40 +03:00
Shilin Victor a416ce3378 Revert "hwc: verbose layer debugging"
This reverts commit e0674a62cd6d817b15920d7df9ef6a05dd6ffa7b.

Change-Id: I9bb6ab964f2dba3d68a34c9737a7a56401e79b1f
2019-02-06 16:12:36 +03:00
Shilin Victor aa2cfeb6f6 hwc: release fence in perform_fimc
Change-Id: I2039939c42a76567874ec0e1100ab1cbff95ed39
2019-02-06 16:12:36 +03:00
Shilin Victor e24564745e hwc: disable FIMG
Change-Id: I61f764973d4b3bb350a99a69804b96995addee70
2019-02-06 16:12:36 +03:00
Shilin Victor f3b1c86f77 hwc: verbose layer debugging
Change-Id: I5f21254c0a3965b2d1629b6f1a3ccbd7aed285a1
2019-02-06 16:12:36 +03:00
Shilin Victor 2aa170fa95 exynos4: HWC: move as vendor module
Change-Id: Ic746a4170a60f3c79a0df5b1e0a5bed8a5838e24
2019-02-06 16:12:23 +03:00
Shilin Victor 00b6ad969c hwc: Set ioprio for vsync thread
This reverts commit e334ed34ddf504921195161d2230a3b4156d9a43.

Change-Id: Iceba230b667c0a4c480301bf5d662a9cf82b6df3
2019-02-06 16:12:23 +03:00
Shilin Victor c85f6a008e hwc: RGB_565 pixel format is not supported
thanks @acroreiser

Change-Id: I114fae3f6ebce32bbf0c07296a54b4fb4a599c08
2019-02-06 16:12:23 +03:00
Dominggoes Isakh 426683a8eb Fix build errors
Change-Id: I4d4997e25d15b42180a1f41a01daf127bf27ca3c
2019-02-06 16:12:23 +03:00
Dominggoes Isakh 6cd6fedd47 exynos4: gralloc: Ignore PRIV_FLAGS_FRAMEBUFFER 2019-02-06 16:12:23 +03:00
Dominggoes Isakh 48d3ff42e8 Fix build errors 2019-02-06 16:12:23 +03:00
Dominggoes Isakh db01d7418e Revert "hwc: Set ioprio for vsync thread"
Depends on libcutils support, which was removed in
https://review.lineageos.org/#/c/189293/.
2019-02-06 16:12:23 +03:00
Simon Shields 2dc726f442 exynos4: hwc: add missing checks in is_overlay_supported
make sure that if something is transformed/scaled we don't try drawing
directly to FIMD

Change-Id: I69be0d296c11496c5b380b7135dad10cb6c66fc8
2019-02-06 16:12:23 +03:00
Simon Shields dfa35134f6 exynos4: hwc: disable FIMG for now
adds significant amounts of touch latency, and also causes the LCD to
die :(

Change-Id: Ie777d249d02def3863049528ab8437dcacc3faa1
2019-02-06 16:12:23 +03:00
Simon Shields 60d6c48cca exynos4: hwc: remove GRALLOC_USAGE_HW_ION usage
HW_COMPOSER means the same thing and doesn't require modifying AOSP
headers

Change-Id: I29d9f6348a19b5cf778a4819a3dfd511ae789e0d
2019-02-06 16:12:23 +03:00
Simon Shields 6c9141f69d exynos4: hwc: disable FIMC scaled layers for now
seems to cause the panel to die

Change-Id: I9005a1ee1fba6ef13e15572ffe5094e8fc5c6687
2019-02-06 16:12:23 +03:00
Simon Shields 70f13df35c exynos4: gralloc: improve allocation logic
A buffer that needs to be allocated in ION will either have
GRALLOC_USAGE_HW_COMPOSER, or GRALLOC_USAGE_HW_ION. See
https://android.googlesource.com/platform/hardware/libhardware/+/android-7.1.2_r33/include/hardware/hwcomposer.h#136
for more information.

Change-Id: Ie75d369e40ce1758920d194dd1f0dafcaeb4d140
2019-02-06 16:12:23 +03:00
Simon Shields 1535f0a3dc exynos4: libhwc: HWC 1.4
Change-Id: Ib446df60d59ddc304125d4887ac5adea8d72f9e6
2019-02-06 16:12:23 +03:00
Simon Shields 1e5c745f10 exynos4: hwc: include plane_alpha in output
Change-Id: Ic7cae63f4fe8ef48c7e16838c2dbdbcbf88da7b3
2019-02-06 16:12:23 +03:00
Simon Shields d3e5b2f802 exynos4: hwc: fix FIMC colour format selection
Change-Id: I67bc79f57cc85f428dea7d16ffccb70a1ae646ac
2019-02-06 16:12:23 +03:00
Simon Shields 5a7136339c exynos4: hwc: debug improvements
Change-Id: If19d10308dfe2578018a5f5cdf6c14d40561d777
2019-02-06 16:12:23 +03:00
Simon Shields 188028e3ca exynos4: hwc: fix stride when using G2D
Change-Id: I52677b41d1753fad405124c90477fa71c9dd255b
2019-02-06 16:12:23 +03:00
Simon Shields a2b4252873 exynos4: hwc: fix FIMC transform with cropped buffer
s_fmt_pix_out wants the width/height of the original buffer, not the
width/height of the cropped area.

Change-Id: Iff2b4b2b89af6a68aac23b5766cf76cdf822af99
2019-02-06 16:12:23 +03:00
Simon Shields 3a77385a70 exynos4: hwc: try FIMG if FIMC composition is already used
Change-Id: I08f6241388e9a8e7436b2bf68869f523eb969c48
2019-02-06 16:12:23 +03:00
Simon Shields 418331950b exynos4: hwc: fix typo
Change-Id: I7dcbccfa1d5911e3935b6525d277efc831655d79
2019-02-06 16:12:23 +03:00
Simon Shields 20802225e8 exynos4: hwc: prefer FIMC in transformed contiguous cases
FIMC seems to be more reliable than FIMG.
TODO: use all four FIMCs

Change-Id: I1d34f8b3daae6dac609d141e78d3629433097cdb
2019-02-06 16:12:23 +03:00
Simon Shields 5edee1cbfc exynos4: hwc: refill fimg_cmd struct on each perform_fimg
Change-Id: Ic47bf13dabab841149d3fe9566687b30ec3be2af
2019-02-06 16:12:23 +03:00
Simon Shields e86377015e exynos4: hwc: ignore alpha on window 0
Change-Id: I9bbeb8b2ec06f08b070a8eda02c0322ede1c62f7
2019-02-06 16:12:23 +03:00