SDL: Fixed using the wrong format when using a render target on Vulkan

From 0aa28e26295ec36027d9d1db400942b1d2a2eb93 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
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 b14ec1fadaaf2..029fb1a20a7e9 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 ||