diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c index 33cc29fa5f..47470d1cff 100644 --- a/src/render/SDL_render.c +++ b/src/render/SDL_render.c @@ -5214,7 +5214,12 @@ void SDL_DestroyRendererWithoutFreeing(SDL_Renderer *renderer) SDL_RemoveWindowRenderer(renderer->window, renderer); } - SDL_DiscardAllCommands(renderer); + if (renderer->software) { + // Make sure all drawing to a surface is complete + FlushRenderCommands(renderer); + } else { + SDL_DiscardAllCommands(renderer); + } if (renderer->debug_char_texture_atlas) { SDL_DestroyTexture(renderer->debug_char_texture_atlas);