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: 826a10255f ("st/mesa: Add NV12 lowering to PIPE_FORMAT_R8_G8B8_420_UNORM")
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tested-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9490>
(cherry picked from commit 9b7814779b)
This commit is contained in:
Drew Davenport 2021-03-09 16:49:47 -07:00 committed by Eric Engestrom
parent af0926bac0
commit 0514031a0f
2 changed files with 4 additions and 1 deletions

View file

@ -769,7 +769,7 @@
"description": "radeonsi: Report multi-plane formats as unsupported",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "826a10255f5f8d444f0318f3e36ff616b41b5d15"
},

View file

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