From 0aa28e26295ec36027d9d1db400942b1d2a2eb93 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 11 Sep 2026 13:59:19 -0700 Subject: [PATCH] Fixed using the wrong format when using a render target on Vulkan --- src/render/vulkan/SDL_render_vulkan.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/render/vulkan/SDL_render_vulkan.c b/src/render/vulkan/SDL_render_vulkan.c index b14ec1fada..029fb1a20a 100644 --- a/src/render/vulkan/SDL_render_vulkan.c +++ b/src/render/vulkan/SDL_render_vulkan.c @@ -4204,7 +4204,7 @@ static bool VULKAN_SetDrawState(SDL_Renderer *renderer, const SDL_RenderCommand { VULKAN_RenderData *rendererData = (VULKAN_RenderData *)renderer->internal; const SDL_BlendMode blendMode = cmd->data.draw.blend; - VkFormat format = rendererData->surfaceFormat.format; + VkFormat format; const Float4X4 *newmatrix = matrix ? matrix : &rendererData->identity; bool updateConstants = false; VULKAN_Shader shader = SelectShader(renderer, shader_constants, yuv); @@ -4218,6 +4218,12 @@ static bool VULKAN_SetDrawState(SDL_Renderer *renderer, const SDL_RenderCommand return false; } + if (rendererData->textureRenderTarget) { + format = rendererData->textureRenderTarget->mainImage.format; + } else { + format = rendererData->surfaceFormat.format; + } + // See if we need to change the pipeline state if (!rendererData->currentPipelineState || rendererData->currentPipelineState->shader != shader ||