radeonsi: Check all supported formats in si_vid_is_target_buffer_supported

Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32089>
This commit is contained in:
David Rosca
2024-11-12 11:29:51 +01:00
committed by Marge Bot
parent ba5c65f10b
commit f70ecba49a
+12 -9
View File
@@ -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)