diff --git a/src/render/gpu/SDL_render_gpu.c b/src/render/gpu/SDL_render_gpu.c index 62184b2b31..4bee1a2436 100644 --- a/src/render/gpu/SDL_render_gpu.c +++ b/src/render/gpu/SDL_render_gpu.c @@ -24,6 +24,7 @@ #include "../../events/SDL_windowevents_c.h" #include "../../video/SDL_pixels_c.h" +#include "../../video/SDL_sysvideo.h" #include "../SDL_d3dmath.h" #include "../SDL_sysrender.h" #include "SDL_gpu_util.h" @@ -1745,6 +1746,13 @@ static bool GPU_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_P { GPU_RenderData *data = NULL; + // Clear any OpenGL properties on the window to avoid potential driver conflicts. + SDL_WindowFlags flags = SDL_GetWindowFlags(window); + if (flags & SDL_WINDOW_OPENGL) { + flags &= ~SDL_WINDOW_OPENGL; + SDL_ReconfigureWindow(window, flags); + } + SDL_SetupRendererColorspace(renderer, create_props); if (renderer->output_colorspace != SDL_COLORSPACE_SRGB && diff --git a/src/render/vulkan/SDL_render_vulkan.c b/src/render/vulkan/SDL_render_vulkan.c index 5bfce7e38f..077c476412 100644 --- a/src/render/vulkan/SDL_render_vulkan.c +++ b/src/render/vulkan/SDL_render_vulkan.c @@ -4549,6 +4549,13 @@ static bool VULKAN_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SD { VULKAN_RenderData *rendererData; + // Clear any OpenGL properties on the window to avoid potential driver conflicts. + SDL_WindowFlags flags = SDL_GetWindowFlags(window); + if (flags & SDL_WINDOW_OPENGL) { + flags &= ~SDL_WINDOW_OPENGL; + SDL_ReconfigureWindow(window, flags); + } + SDL_SetupRendererColorspace(renderer, create_props); if (renderer->output_colorspace != SDL_COLORSPACE_SRGB &&