From ae48cf76f929f242400cc9882e9b4f1b78e678b6 Mon Sep 17 00:00:00 2001 From: Bilal Elmoussaoui Date: Sun, 22 Dec 2024 17:20:21 +0100 Subject: [PATCH] cogl/glx: Stop loading opengl module twice As the Renderer takes care of doing that already as we enforce that the DriverId is GL3 inside the glx winsys connection phase. Part-of: --- cogl/cogl/winsys/cogl-glx-renderer-private.h | 3 -- cogl/cogl/winsys/cogl-winsys-glx.c | 32 +++++--------------- 2 files changed, 7 insertions(+), 28 deletions(-) diff --git a/cogl/cogl/winsys/cogl-glx-renderer-private.h b/cogl/cogl/winsys/cogl-glx-renderer-private.h index 321bad821..db82d2f58 100644 --- a/cogl/cogl/winsys/cogl-glx-renderer-private.h +++ b/cogl/cogl/winsys/cogl-glx-renderer-private.h @@ -55,9 +55,6 @@ typedef struct _CoglGLXRenderer COGL_GLX_UST_IS_OTHER } ust_type; - /* GModule pointing to libGL which we use to get glX functions out of */ - GModule *libgl_module; - CoglClosure *flush_notifications_idle; /* Copy of the winsys features that are based purely on the diff --git a/cogl/cogl/winsys/cogl-winsys-glx.c b/cogl/cogl/winsys/cogl-winsys-glx.c index 595cdca70..8b02604ac 100644 --- a/cogl/cogl/winsys/cogl-winsys-glx.c +++ b/cogl/cogl/winsys/cogl-winsys-glx.c @@ -244,13 +244,8 @@ glx_event_filter_cb (XEvent *xevent, void *data) static void _cogl_winsys_renderer_disconnect (CoglRenderer *renderer) { - CoglGLXRenderer *glx_renderer = renderer->winsys; - _cogl_xlib_renderer_disconnect (renderer); - if (glx_renderer->libgl_module) - g_module_close (glx_renderer->libgl_module); - g_free (renderer->winsys); } @@ -294,21 +289,19 @@ static gboolean resolve_core_glx_functions (CoglRenderer *renderer, GError **error) { - CoglGLXRenderer *glx_renderer; + CoglGLXRenderer *glx_renderer = renderer->winsys; - glx_renderer = renderer->winsys; - - if (!g_module_symbol (glx_renderer->libgl_module, "glXQueryExtension", + if (!g_module_symbol (renderer->libgl_module, "glXQueryExtension", (void **) &glx_renderer->glXQueryExtension) || - !g_module_symbol (glx_renderer->libgl_module, "glXQueryVersion", + !g_module_symbol (renderer->libgl_module, "glXQueryVersion", (void **) &glx_renderer->glXQueryVersion) || - !g_module_symbol (glx_renderer->libgl_module, "glXQueryExtensionsString", + !g_module_symbol (renderer->libgl_module, "glXQueryExtensionsString", (void **) &glx_renderer->glXQueryExtensionsString) || - (!g_module_symbol (glx_renderer->libgl_module, "glXGetProcAddress", + (!g_module_symbol (renderer->libgl_module, "glXGetProcAddress", (void **) &glx_renderer->glXGetProcAddress) && - !g_module_symbol (glx_renderer->libgl_module, "glXGetProcAddressARB", + !g_module_symbol (renderer->libgl_module, "glXGetProcAddressARB", (void **) &glx_renderer->glXGetProcAddress)) || - !g_module_symbol (glx_renderer->libgl_module, "glXQueryDrawable", + !g_module_symbol (renderer->libgl_module, "glXQueryDrawable", (void **) &glx_renderer->glXQueryDrawable)) { g_set_error_literal (error, COGL_WINSYS_ERROR, @@ -399,17 +392,6 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer, goto error; } - glx_renderer->libgl_module = g_module_open (COGL_GL_LIBNAME, - G_MODULE_BIND_LAZY); - - if (glx_renderer->libgl_module == NULL) - { - g_set_error_literal (error, COGL_WINSYS_ERROR, - COGL_WINSYS_ERROR_INIT, - "Failed to dynamically open the OpenGL library"); - goto error; - } - if (!resolve_core_glx_functions (renderer, error)) goto error;