From 2b4e56ca273680775fc82819c0224e23ff7123d3 Mon Sep 17 00:00:00 2001 From: Lucas Fryzek Date: Fri, 1 Mar 2024 14:30:54 -0500 Subject: [PATCH] llvmpipe: explicitly reject (most) yuv formats use gallium fallbacks here Co-authored-by: Mike Blumenkrantz Reviewed-By: Mike Blumenkrantz Part-of: --- src/gallium/drivers/llvmpipe/lp_screen.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c index 85b417dc90d..be71c47fb38 100644 --- a/src/gallium/drivers/llvmpipe/lp_screen.c +++ b/src/gallium/drivers/llvmpipe/lp_screen.c @@ -836,12 +836,21 @@ llvmpipe_is_format_supported(struct pipe_screen *_screen, format != PIPE_FORMAT_ETC1_RGB8) return false; + /* planar not supported natively */ if ((format_desc->layout == UTIL_FORMAT_LAYOUT_SUBSAMPLED || format_desc->layout == UTIL_FORMAT_LAYOUT_PLANAR2 || format_desc->layout == UTIL_FORMAT_LAYOUT_PLANAR3) && target == PIPE_BUFFER) return false; + if (format_desc->colorspace == UTIL_FORMAT_COLORSPACE_YUV) { + if (format == PIPE_FORMAT_UYVY || + format == PIPE_FORMAT_YUYV || + format == PIPE_FORMAT_NV12) + return true; + return false; + } + /* * Everything can be supported by u_format * (those without fetch_rgba_float might be not but shouldn't hit that)