From febe5dd3bc8520ebebfb0e23e0ebce07261b8c09 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" 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 3f6daf9efb..64402dae85 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 2914a655a2..52423884dc 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);