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