From 0c162269c3a294821f73bc3004e990e67b9d2f31 Mon Sep 17 00:00:00 2001 From: Marc Alcala Prieto Date: Wed, 22 Apr 2026 09:29:48 +0200 Subject: [PATCH] pan/afbc: Add v14+ AFBC YUV compression mappings On v14+, many AFBC YUV modes map to generic RGB compression modes. Reviewed-by: Lars-Ivar Hesselberg Simonsen --- src/panfrost/lib/pan_afbc.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/panfrost/lib/pan_afbc.h b/src/panfrost/lib/pan_afbc.h index 035b77011b5..f0328a0ba44 100644 --- a/src/panfrost/lib/pan_afbc.h +++ b/src/panfrost/lib/pan_afbc.h @@ -3,6 +3,7 @@ * Copyright (C) 2014 Broadcom * Copyright (C) 2018-2019 Alyssa Rosenzweig * Copyright (C) 2019-2020 Collabora, Ltd. + * Copyright (C) 2026 Arm Ltd. * SPDX-License-Identifier: MIT */ @@ -711,6 +712,32 @@ pan_afbc_compression_mode(enum pan_afbc_mode mode) case PAN_AFBC_MODE_R16G16B16A16: return MALI_AFBC_COMPRESSION_MODE_R16G16B16A16; #endif +#if PAN_ARCH >= 14 + case PAN_AFBC_MODE_YUV420_6C8: + return MALI_AFBC_COMPRESSION_MODE_Y8U8V8_420; + case PAN_AFBC_MODE_YUV420_2C8: + return MALI_AFBC_COMPRESSION_MODE_R8G8; + case PAN_AFBC_MODE_YUV420_1C8: + return MALI_AFBC_COMPRESSION_MODE_R8; + case PAN_AFBC_MODE_YUV420_6C10: + return MALI_AFBC_COMPRESSION_MODE_Y10U10V10_420; + case PAN_AFBC_MODE_YUV420_2C10: + return MALI_AFBC_COMPRESSION_MODE_R10G10; + case PAN_AFBC_MODE_YUV420_1C10: + return MALI_AFBC_COMPRESSION_MODE_R10; + case PAN_AFBC_MODE_YUV422_4C8: + return MALI_AFBC_COMPRESSION_MODE_Y8U8Y8V8_422; + case PAN_AFBC_MODE_YUV422_2C8: + return MALI_AFBC_COMPRESSION_MODE_R8G8; + case PAN_AFBC_MODE_YUV422_1C8: + return MALI_AFBC_COMPRESSION_MODE_R8; + case PAN_AFBC_MODE_YUV422_4C10: + return MALI_AFBC_COMPRESSION_MODE_Y10U10Y10V10_422; + case PAN_AFBC_MODE_YUV422_2C10: + return MALI_AFBC_COMPRESSION_MODE_R10G10; + case PAN_AFBC_MODE_YUV422_1C10: + return MALI_AFBC_COMPRESSION_MODE_R10; +#else case PAN_AFBC_MODE_YUV420_6C8: return MALI_AFBC_COMPRESSION_MODE_YUV420_6C8; case PAN_AFBC_MODE_YUV420_2C8: @@ -735,6 +762,7 @@ pan_afbc_compression_mode(enum pan_afbc_mode mode) return MALI_AFBC_COMPRESSION_MODE_YUV422_2C10; case PAN_AFBC_MODE_YUV422_1C10: return MALI_AFBC_COMPRESSION_MODE_YUV422_1C10; +#endif /* PAN_ARCH >= 14 */ #if PAN_ARCH == 9 case PAN_AFBC_MODE_R16: case PAN_AFBC_MODE_R16G16: