SDL: Destroy the window surface if a software renderer couldn't be created

From 6baaa0fe871e75669ff10bd5e04551d2d21e141e Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 10 Nov 2025 16:07:17 -0800
Subject: [PATCH] Destroy the window surface if a software renderer couldn't be
 created

---
 src/render/software/SDL_render_sw.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/render/software/SDL_render_sw.c b/src/render/software/SDL_render_sw.c
index 484a6b3984d1c..424aa5f1de5e6 100644
--- a/src/render/software/SDL_render_sw.c
+++ b/src/render/software/SDL_render_sw.c
@@ -1236,7 +1236,11 @@ static bool SW_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_Pr
         return false;
     }
 
-    return SW_CreateRendererForSurface(renderer, surface, create_props);
+    if (!SW_CreateRendererForSurface(renderer, surface, create_props)) {
+        SDL_DestroyWindowSurface(window);
+        return false;
+    }
+    return true;
 }
 
 SDL_RenderDriver SW_RenderDriver = {