From 9b7814779b2d3226ee8c3ed145e30f301ff4b2e5 Mon Sep 17 00:00:00 2001 From: Drew Davenport Date: Tue, 9 Mar 2021 16:49:47 -0700 Subject: [PATCH] radeonsi: Report multi-plane formats as unsupported https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6693 added NV12 lowering to PIPE_FORMAT_R8_G8B8_420_UNORM, which regressed some video decode use cases in radeonsi, for example CtsDecodeTestCases in android CTS. There are also discolored frames in video playback use cases (i.e. youtube). https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3632 previously fixed similar issues in radeonsi. This change takes that a step further to report any multi-plane format as unsupported. Fixes: 826a10255f5 ("st/mesa: Add NV12 lowering to PIPE_FORMAT_R8_G8B8_420_UNORM") Reviewed-by: Bas Nieuwenhuizen Tested-by: Simon Ser Part-of: --- src/gallium/drivers/radeonsi/si_state.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index e10a3e83b03..2653fa9b9ff 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -2169,6 +2169,9 @@ static bool si_is_format_supported(struct pipe_screen *screen, enum pipe_format !sscreen->info.has_3d_cube_border_color_mipmap) return false; + if (util_format_get_num_planes(format) >= 2) + return false; + if (MAX2(1, sample_count) < MAX2(1, storage_sample_count)) return false;