From 490a3e1867f025c68fa13db766b5c8da16c6eca4 Mon Sep 17 00:00:00 2001 From: Ryan Zhang Date: Fri, 15 May 2026 19:21:55 +0800 Subject: [PATCH] ui/sdl2: Set GL ES profile before creating initial GL context MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the user selects GLES via '-display sdl,gl=es', we need to set SDL_GL_CONTEXT_PROFILE_MASK to SDL_GL_CONTEXT_PROFILE_ES before calling SDL_GL_CreateContext(). This ensures SDL_GL_LoadLibrary() loads the correct GLES driver instead of the desktop OpenGL driver. Fix the below issue: qemu-system-aarch64: /usr/src/debug/libepoxy /1.5.10/src/dispatch_common.c:872: epoxy_get_proc_address: Assertion `0 && "Couldn't find current GLX or EGL context.\n"' failed. sdl2_gl_create_context() already sets the profile mask correctly for ES mode, but the initial context created in sdl2_window_create() is missing the same treatment. Fixes:da3f7a3ab9ea0091955b58f8909dfcee01f4043e ("ui/sdl: try to instantiate the matching opengl renderer") Signed-off-by: ryan.zhang@nxp.com Reviewed-by: Marc-André Lureau Message-ID: --- ui/sdl2.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ui/sdl2.c b/ui/sdl2.c index ce14bd1f4e..c75f750e00 100644 --- a/ui/sdl2.c +++ b/ui/sdl2.c @@ -113,6 +113,8 @@ void sdl2_window_create(struct sdl2_console *scon) if (scon->opts->gl == DISPLAY_GL_MODE_ES) { driver = "opengles2"; + SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, + SDL_GL_CONTEXT_PROFILE_ES); } SDL_SetHint(SDL_HINT_RENDER_DRIVER, driver);