From be4b1c2639aefabac29089e6b9a2657147c67cea Mon Sep 17 00:00:00 2001 From: Max R Date: Mon, 29 Jan 2024 12:49:17 +0300 Subject: [PATCH] winsys/gdi: Handle R8G8B8 formats R8G8B8 is often used by d3d11 applications. Reviewed-by: Jesse Natalie Reviewed-by: Feng Jiang Part-of: --- src/gallium/winsys/sw/gdi/gdi_sw_winsys.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gallium/winsys/sw/gdi/gdi_sw_winsys.c b/src/gallium/winsys/sw/gdi/gdi_sw_winsys.c index 723dd68f996..1f0d0086f81 100644 --- a/src/gallium/winsys/sw/gdi/gdi_sw_winsys.c +++ b/src/gallium/winsys/sw/gdi/gdi_sw_winsys.c @@ -82,6 +82,8 @@ gdi_sw_is_displaytarget_format_supported( struct sw_winsys *ws, case PIPE_FORMAT_B5G5R5A1_UNORM: case PIPE_FORMAT_B4G4R4A4_UNORM: case PIPE_FORMAT_R10G10B10A2_UNORM: + case PIPE_FORMAT_R8G8B8X8_UNORM: + case PIPE_FORMAT_R8G8B8A8_UNORM: return true; /* TODO: Support other formats possible with BMPs, as described in @@ -181,6 +183,11 @@ gdi_sw_displaytarget_create(struct sw_winsys *winsys, gdt->bmi.bV5RedMask = 0x000003FF; gdt->bmi.bV5GreenMask = 0x000FFC00; gdt->bmi.bV5BlueMask = 0x3FF00000; + } else if (format == PIPE_FORMAT_R8G8B8X8_UNORM || format == PIPE_FORMAT_R8G8B8A8_UNORM) { + gdt->bmi.bV5Compression = BI_BITFIELDS; + gdt->bmi.bV5RedMask = 0x0000ff; + gdt->bmi.bV5GreenMask = 0x00ff00; + gdt->bmi.bV5BlueMask = 0xff0000; } *stride = gdt->stride;