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 <eric.smith@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31854>
This commit is contained in:
Eric R. Smith 2024-11-12 19:13:42 -04:00 committed by Marge Bot
parent f539763cfc
commit 3022258de5
3 changed files with 16 additions and 0 deletions

View file

@ -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),

View file

@ -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;
}

View file

@ -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");
}