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 ||