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 <narmstrong@baylibre.com>
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 @@
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;