From febe5dd3bc8520ebebfb0e23e0ebce07261b8c09 Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Fri, 13 Feb 2026 14:22:22 -0500
Subject: [PATCH] render: opengl and opengles2 renderers try to disable
GL_FRAMEBUFFER_SRGB.
Reference Issue #14898.
(cherry picked from commit fc570a1a1c12dcc484ad72c35ae2c585c63e7c72)
---
src/render/opengl/SDL_render_gl.c | 9 +++++++++
src/render/opengles2/SDL_render_gles2.c | 9 +++++++++
2 files changed, 18 insertions(+)
diff --git a/src/render/opengl/SDL_render_gl.c b/src/render/opengl/SDL_render_gl.c
index 3f6daf9efb3ce..64402dae8514c 100644
--- a/src/render/opengl/SDL_render_gl.c
+++ b/src/render/opengl/SDL_render_gl.c
@@ -43,6 +43,11 @@
#define RENDERER_CONTEXT_MAJOR 2
#define RENDERER_CONTEXT_MINOR 1
+// This is always the same number between the various EXT/ARB/GLES extensions.
+#ifndef GL_FRAMEBUFFER_SRGB
+#define GL_FRAMEBUFFER_SRGB 0x8DB9
+#endif
+
// OpenGL renderer implementation
/* Details on optimizing the texture path on macOS:
@@ -2009,6 +2014,10 @@ static bool GL_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_Pr
goto error;
}
+ if ((real_major >= 3) || SDL_GL_ExtensionSupported("GL_EXT_framebuffer_sRGB") || SDL_GL_ExtensionSupported("GL_ARB_framebuffer_sRGB")) {
+ data->glDisable(GL_FRAMEBUFFER_SRGB);
+ }
+
// Set up parameters for rendering
data->glMatrixMode(GL_MODELVIEW);
data->glLoadIdentity();
diff --git a/src/render/opengles2/SDL_render_gles2.c b/src/render/opengles2/SDL_render_gles2.c
index 2914a655a2ffa..52423884dc679 100644
--- a/src/render/opengles2/SDL_render_gles2.c
+++ b/src/render/opengles2/SDL_render_gles2.c
@@ -45,6 +45,11 @@
#define RENDERER_CONTEXT_MAJOR 2
#define RENDERER_CONTEXT_MINOR 0
+// This is always the same number between the various EXT/ARB/GLES extensions.
+#ifndef GL_FRAMEBUFFER_SRGB
+#define GL_FRAMEBUFFER_SRGB 0x8DB9
+#endif
+
/*************************************************************************************************
* Context structures *
*************************************************************************************************/
@@ -2463,6 +2468,10 @@ static bool GLES2_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL
renderer->npot_texture_wrap_unsupported = true;
}
+ if (SDL_GL_ExtensionSupported("GL_EXT_sRGB_write_control")) {
+ data->glDisable(GL_FRAMEBUFFER_SRGB);
+ }
+
// Set up parameters for rendering
data->glDisable(GL_DEPTH_TEST);
data->glDisable(GL_CULL_FACE);