llvmpipe: explicitly reject (most) yuv formats

use gallium fallbacks here

Co-authored-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27805>
This commit is contained in:
Lucas Fryzek 2024-03-01 14:30:54 -05:00 committed by Marge Bot
parent 0f97c2ec51
commit 2b4e56ca27
1 changed files with 9 additions and 0 deletions

View File

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