KMS-based HWComposer implementation.

  • Ayan Kumar Halder's avatar
    drm_hwcomposer: Add support for Arm Framebuffer Compression (AFBC) modifiers. · cc5fca4f
    Ayan Kumar Halder authored
    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's avatarAyan Kumar Halder <ayan.halder@arm.com>
    Reviewed-by: Sean Paul's avatarSean 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
    cc5fca4f
Name
Last commit
Last update
tests Loading commit data...
.clang-format Loading commit data...
.gitlab-ci-checkcommit.sh Loading commit data...
.gitlab-ci.yml Loading commit data...
Android.mk Loading commit data...
MODULE_LICENSE_APACHE2 Loading commit data...
NOTICE Loading commit data...
README.md Loading commit data...
autofd.h Loading commit data...
autolock.cpp Loading commit data...
autolock.h Loading commit data...
drmconnector.cpp Loading commit data...
drmconnector.h Loading commit data...
drmcrtc.cpp Loading commit data...
drmcrtc.h Loading commit data...
drmdevice.cpp Loading commit data...
drmdevice.h Loading commit data...
drmdisplaycomposition.cpp Loading commit data...
drmdisplaycomposition.h Loading commit data...
drmdisplaycompositor.cpp Loading commit data...
drmdisplaycompositor.h Loading commit data...
drmencoder.cpp Loading commit data...
drmencoder.h Loading commit data...
drmeventlistener.cpp Loading commit data...
drmeventlistener.h Loading commit data...
drmframebuffer.h Loading commit data...
drmhwcgralloc.h Loading commit data...
drmhwcomposer.h Loading commit data...
drmhwctwo.cpp Loading commit data...
drmhwctwo.h Loading commit data...
drmmode.cpp Loading commit data...
drmmode.h Loading commit data...
drmplane.cpp Loading commit data...
drmplane.h Loading commit data...
drmproperty.cpp Loading commit data...
drmproperty.h Loading commit data...
hwcutils.cpp Loading commit data...
platform.cpp Loading commit data...
platform.h Loading commit data...
platformdrmgeneric.cpp Loading commit data...
platformdrmgeneric.h Loading commit data...
platformhisi.cpp Loading commit data...
platformhisi.h Loading commit data...
platformminigbm.cpp Loading commit data...
platformminigbm.h Loading commit data...
resourcemanager.cpp Loading commit data...
resourcemanager.h Loading commit data...
vsyncworker.cpp Loading commit data...
vsyncworker.h Loading commit data...
worker.cpp Loading commit data...
worker.h Loading commit data...