From 6a1c38d734899641821ebab935a1b15dd0117e5f Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Thu, 10 Oct 2019 09:35:57 +0000 Subject: [PATCH] drm_hwcomposer: platformmeson: fix AFBC 32x8 feature support Since MALI_GRALLOC_INTFMT_AFBC_BASIC is mandatory even to enable 32x8 block size, do not OR 32x8 and 16x16 overwise the final modifier will be invalid. Change-Id: Ifa20a29e9c012b8ce0ec598d76e26514a61b52c8 Signed-off-by: Neil Armstrong --- platform/platformmeson.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/platform/platformmeson.cpp b/platform/platformmeson.cpp index 58ec5c0..7bde5cd 100644 --- a/platform/platformmeson.cpp +++ b/platform/platformmeson.cpp @@ -51,15 +51,16 @@ Importer *Importer::CreateInstance(DrmDevice *drm) { uint64_t MesonImporter::ConvertGrallocFormatToDrmModifiers(uint64_t flags) { uint64_t features = 0UL; - if (flags & MALI_GRALLOC_INTFMT_AFBC_BASIC) - features |= AFBC_FORMAT_MOD_BLOCK_SIZE_16x16; + if (flags & MALI_GRALLOC_INTFMT_AFBC_BASIC) { + if (flags & MALI_GRALLOC_INTFMT_AFBC_WIDEBLK) + features |= AFBC_FORMAT_MOD_BLOCK_SIZE_32x8; + else + features |= AFBC_FORMAT_MOD_BLOCK_SIZE_16x16; + } if (flags & MALI_GRALLOC_INTFMT_AFBC_SPLITBLK) features |= (AFBC_FORMAT_MOD_SPLIT | AFBC_FORMAT_MOD_SPARSE); - if (flags & MALI_GRALLOC_INTFMT_AFBC_WIDEBLK) - features |= AFBC_FORMAT_MOD_BLOCK_SIZE_32x8; - if (flags & MALI_GRALLOC_INTFMT_AFBC_TILED_HEADERS) features |= AFBC_FORMAT_MOD_TILED; -- GitLab