From ea74d3b0181415400b0559a6ae87f131ef6504b2 Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Fri, 4 Sep 2026 15:50:05 -0400
Subject: [PATCH] metal: Clear bogus pointer if we fail to get a new drawable.
Reference Issue #16232.
---
src/render/metal/SDL_render_metal.m | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/render/metal/SDL_render_metal.m b/src/render/metal/SDL_render_metal.m
index 6978562c1240e..0f6389d45b640 100644
--- a/src/render/metal/SDL_render_metal.m
+++ b/src/render/metal/SDL_render_metal.m
@@ -483,6 +483,8 @@ static bool METAL_ActivateRenderCommandEncoder(SDL_Renderer *renderer, MTLLoadAc
}
}
+ data.mtlpassdesc.colorAttachments[0].texture = mtltexture;
+
/* mtltexture can be nil here if macOS refused to give us a drawable,
which apparently can happen for minimized windows, etc. */
if (mtltexture == nil) {
@@ -495,7 +497,6 @@ static bool METAL_ActivateRenderCommandEncoder(SDL_Renderer *renderer, MTLLoadAc
}
data.mtlpassdesc.colorAttachments[0].loadAction = load;
- data.mtlpassdesc.colorAttachments[0].texture = mtltexture;
data.mtlcmdbuffer = [data.mtlcmdqueue commandBuffer];
data.mtlcmdencoder = [data.mtlcmdbuffer renderCommandEncoderWithDescriptor:data.mtlpassdesc];