diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c index 71604bc4a..c9b195a4e 100644 --- a/src/render/SDL_render.c +++ b/src/render/SDL_render.c @@ -1879,12 +1879,6 @@ SDL_SetRenderTarget(SDL_Renderer *renderer, SDL_Texture *texture) if (!SDL_RenderTargetSupported(renderer)) { return SDL_Unsupported(); } - if (texture == renderer->target) { - /* Nothing to do! */ - return 0; - } - - FlushRenderCommands(renderer); /* time to send everything to the GPU! */ /* texture == NULL is valid and means reset the target to the window */ if (texture) { @@ -1901,6 +1895,13 @@ SDL_SetRenderTarget(SDL_Renderer *renderer, SDL_Texture *texture) } } + if (texture == renderer->target) { + /* Nothing to do! */ + return 0; + } + + FlushRenderCommands(renderer); /* time to send everything to the GPU! */ + SDL_LockMutex(renderer->target_mutex); if (texture && !renderer->target) {