diff --git a/platform/platformmeson.cpp b/platform/platformmeson.cpp index 58ec5c0d1c29afd8653085ad670d28e2ea0e9e21..7bde5cd997ec3dc65909638b463a57bee80ca8d9 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;