From a76fb7b2fb707b6abf4f7c281b0ba4ae0d5aeb64 Mon Sep 17 00:00:00 2001
From: Kirill Andriiashin <[EMAIL REDACTED]>
Date: Wed, 29 Oct 2025 20:39:58 +0300
Subject: [PATCH] Add support for GPU RGB565 (B5G6R5_UNORM) textures with DX11
(#14358)
---
src/render/direct3d11/SDL_render_d3d11.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/render/direct3d11/SDL_render_d3d11.c b/src/render/direct3d11/SDL_render_d3d11.c
index dd46fcf0b33d0..1cfafe545334c 100644
--- a/src/render/direct3d11/SDL_render_d3d11.c
+++ b/src/render/direct3d11/SDL_render_d3d11.c
@@ -292,6 +292,8 @@ static DXGI_FORMAT SDLPixelFormatToDXGITextureFormat(Uint32 format, Uint32 outpu
return DXGI_FORMAT_NV12;
case SDL_PIXELFORMAT_P010:
return DXGI_FORMAT_P010;
+ case SDL_PIXELFORMAT_RGB565:
+ return DXGI_FORMAT_B5G6R5_UNORM;
default:
return DXGI_FORMAT_UNKNOWN;
}
@@ -2915,6 +2917,11 @@ static bool D3D11_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL
return false;
}
+ // DXGI_FORMAT_B5G6R5_UNORM is supported since Direct3D 11.1 on Windows 8 and later
+ if (data->featureLevel >= D3D_FEATURE_LEVEL_11_1 && WIN_IsWindows8OrGreater()) {
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGB565);
+ }
+
return true;
}