From f70ecba49a87f1a689cb1e4991c5b5277ba73f57 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Tue, 12 Nov 2024 11:29:51 +0100 Subject: [PATCH] radeonsi: Check all supported formats in si_vid_is_target_buffer_supported Reviewed-by: Leo Liu Part-of: --- src/gallium/drivers/radeonsi/si_get.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_get.c b/src/gallium/drivers/radeonsi/si_get.c index 34c7db41fea..e48ef6767e4 100644 --- a/src/gallium/drivers/radeonsi/si_get.c +++ b/src/gallium/drivers/radeonsi/si_get.c @@ -1158,7 +1158,9 @@ static bool si_vid_is_target_buffer_supported(struct pipe_screen *screen, switch (entrypoint) { case PIPE_VIDEO_ENTRYPOINT_BITSTREAM: - return !is_dcc && !is_format_conversion; + if (is_dcc || is_format_conversion) + return false; + break; case PIPE_VIDEO_ENTRYPOINT_ENCODE: if (is_dcc) @@ -1183,19 +1185,20 @@ static bool si_vid_is_target_buffer_supported(struct pipe_screen *screen, sscreen->debug_flags & DBG(NO_EFC)) return false; - if (input_8bit) - return format == PIPE_FORMAT_NV12; - else if (input_10bit) - return format == PIPE_FORMAT_NV12 || format == PIPE_FORMAT_P010; - else + if (input_8bit && format != PIPE_FORMAT_NV12) + return false; + if (input_10bit && format != PIPE_FORMAT_NV12 && format != PIPE_FORMAT_P010) return false; } - - return true; + break; default: - return !is_format_conversion; + if (is_format_conversion) + return false; + break; } + + return si_vid_is_format_supported(screen, format, profile, entrypoint); } static unsigned get_max_threads_per_block(struct si_screen *screen, enum pipe_shader_ir ir_type)