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