OSDN Git Service

drm_hwcomposer: Add support for Arm Framebuffer Compression (AFBC) modifiers.
authorAyan Kumar Halder <ayan.halder@arm.com>
Mon, 14 Jan 2019 12:47:12 +0000 (12:47 +0000)
committerAyan kumar halder <ayan.halder@arm.com>
Thu, 31 Jan 2019 19:36:14 +0000 (19:36 +0000)
commitcc5fca4f9410b39c64900ea627841dfd9ea0dedb
tree2ee8dfb7ebc6baf91b2ba84d0fc7fc190e4c3f6f
parentdafaabd0509a501632d7bc2e5dc5412e52818281
drm_hwcomposer: Add support for Arm Framebuffer Compression (AFBC) modifiers.

One needs to translate the Gralloc buffer flags for AFBC (eg
MALI_GRALLOC_INTFMT_AFBC_BASIC) to the corresponding linux kernel drm modifiers.
This gets passed to libdrm via drmModeAddFB2WithModifiers.

Changes from v1:-
- Moved ConvertGrallocFormatToDrmModifiers() and IsDrmFormatRgb() from 'DrmGenericImporter'
to 'HisiImporter' as suggested by Sean paul
- Check if the format is rgb and set AFBC_FORMAT_MOD_YTR only if any of the AFBC related
Gralloc flags are set.

Changes from v2:-
- Changed ConvertGrallocFormatToDrmModifiers() and IsDrmFormatRgb() from 'public' to 'private'
(suggested by Sean Paul)

Changes from v3:-
- Reordered the members of 'class HisiImporter'. Functions should go above member variables.
(suggested by Sean Paul)

Changes from v4:-
- Rebased and some style changes (as suggested by gitlab-ci-checkcommit.sh)

Signed-off-by: Ayan Kumar Halder <ayan.halder@arm.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
/-- Note for reviewer
I was able to get this working for hikey960 with aosp/master for kernel 4.14. The libdrm
headers need to be updated as the AFBC modifiers are missing in the aosp/master's external/libdrm.
--/

Change-Id: I66abaa08d19ce88169cc40522b167dfe5efc7036
platformhisi.cpp
platformhisi.h