From 5a8a98f56e3806f6ea941dab2b8cbc419556a44d Mon Sep 17 00:00:00 2001 From: Axel Davy Date: Sat, 10 Apr 2021 21:58:59 +0200 Subject: [PATCH] st/nine: Add fallback for YUV formats Adds alternative format to store YUV textures/surfaces. These will be converted on upload to the alternative format. Fixes: https://github.com/iXit/wine-nine-standalone/issues/39 Signed-off-by: Axel Davy --- src/gallium/frontends/nine/nine_pipe.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gallium/frontends/nine/nine_pipe.h b/src/gallium/frontends/nine/nine_pipe.h index bf741f1be5f..1701c671349 100644 --- a/src/gallium/frontends/nine/nine_pipe.h +++ b/src/gallium/frontends/nine/nine_pipe.h @@ -366,6 +366,14 @@ d3d9_to_pipe_format_checked(struct pipe_screen *screen, if (format_check_internal(PIPE_FORMAT_R32G32B32X32_FLOAT)) return PIPE_FORMAT_R32G32B32X32_FLOAT; break; + /* Fallback for YUV formats */ + case D3DFMT_UYVY: + case D3DFMT_YUY2: + case D3DFMT_NV12: + if (bindings & PIPE_BIND_RENDER_TARGET) + return PIPE_FORMAT_NONE; + if (format_check_internal(PIPE_FORMAT_R8G8B8X8_UNORM)) + return PIPE_FORMAT_R8G8B8X8_UNORM; default: break; }