From 3022258de5419a37c74a224258a614cba5563477 Mon Sep 17 00:00:00 2001 From: "Eric R. Smith" Date: Tue, 12 Nov 2024 19:13:42 -0400 Subject: [PATCH] panfrost: add panfrost support for NV15, NV16 and NV20 Update panfrost to add support for NV16 and for the 10 bit NV15 and NV20 formats. Signed-off-by: Eric R. Smith Reviewed-by: Erik Faye-Lund Part-of: --- src/panfrost/lib/pan_format.c | 6 ++++++ src/panfrost/lib/pan_layout.c | 6 ++++++ src/panfrost/lib/pan_texture.c | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/src/panfrost/lib/pan_format.c b/src/panfrost/lib/pan_format.c index 28fac18fda1..eefbeca3dc4 100644 --- a/src/panfrost/lib/pan_format.c +++ b/src/panfrost/lib/pan_format.c @@ -177,6 +177,12 @@ const struct panfrost_format GENX(panfrost_pipe_format)[PIPE_FORMAT_COUNT] = { FMT_YUV(R8_B8G8_420_UNORM, Y8_UV8_420, YVUA, NO_SWAP, CENTER, _T__), FMT_YUV(R8_G8_B8_420_UNORM, Y8_U8_V8_420, YUVA, NO_SWAP, CENTER, _T__), FMT_YUV(R8_B8_G8_420_UNORM, Y8_U8_V8_420, YVUA, NO_SWAP, CENTER, _T__), + + FMT_YUV(R8_G8B8_422_UNORM, Y8_UV8_422, YUVA, NO_SWAP, CENTER, _T__), + FMT_YUV(R8_B8G8_422_UNORM, Y8_UV8_422, YVUA, NO_SWAP, CENTER, _T__), + + FMT_YUV(R10_G10B10_420_UNORM, Y10_UV10_420, YUVA, NO_SWAP, CENTER, _T__), + FMT_YUV(R10_G10B10_422_UNORM, Y10_UV10_422, YUVA, NO_SWAP, CENTER, _T__), #endif FMTC(ETC1_RGB8, ETC2_RGB8, RGBA8_UNORM, RGB1, L), diff --git a/src/panfrost/lib/pan_layout.c b/src/panfrost/lib/pan_layout.c index 858aa2fc87e..3a97b30b721 100644 --- a/src/panfrost/lib/pan_layout.c +++ b/src/panfrost/lib/pan_layout.c @@ -380,7 +380,13 @@ format_minimum_alignment(unsigned arch, enum pipe_format format, uint64_t mod) case PIPE_FORMAT_G8_B8R8_420_UNORM: case PIPE_FORMAT_R8_G8_B8_420_UNORM: case PIPE_FORMAT_R8_B8_G8_420_UNORM: + case PIPE_FORMAT_R8_G8B8_422_UNORM: + case PIPE_FORMAT_R8_B8G8_422_UNORM: return 16; + /* the 10 bit formats have even looser alignment */ + case PIPE_FORMAT_R10_G10B10_420_UNORM: + case PIPE_FORMAT_R10_G10B10_422_UNORM: + return 1; default: return 64; } diff --git a/src/panfrost/lib/pan_texture.c b/src/panfrost/lib/pan_texture.c index edb9470d56a..77d9157f063 100644 --- a/src/panfrost/lib/pan_texture.c +++ b/src/panfrost/lib/pan_texture.c @@ -314,6 +314,10 @@ panfrost_clump_format(enum pipe_format format) case PIPE_FORMAT_R8_G8_B8_420_UNORM: case PIPE_FORMAT_R8_B8_G8_420_UNORM: return MALI_CLUMP_FORMAT_Y8_UV8_420; + case PIPE_FORMAT_R10_G10B10_420_UNORM: + return MALI_CLUMP_FORMAT_Y10_UV10_420; + case PIPE_FORMAT_R10_G10B10_422_UNORM: + return MALI_CLUMP_FORMAT_Y10_UV10_422; default: unreachable("unhandled clump format"); }