From e89eba0796b3469f1d2cdbb600309f6231a8169d Mon Sep 17 00:00:00 2001 From: "duncan.hopkins" Date: Tue, 26 Nov 2024 10:18:28 +0000 Subject: [PATCH] glx: change `#if` guard around `dri_common.h` to stop missing 'driDestroyConfigs' symbol on MacOS builds. Reviewed-By: Adam Jackson Part-of: --- src/glx/glxext.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/glx/glxext.c b/src/glx/glxext.c index b03554487c36b..433230a62664a 100644 --- src/glx/glxext.c +++ src/glx/glxext.c @@ -28,7 +28,7 @@ #include "glxextensions.h" #include "util/u_debug.h" -#ifndef GLX_USE_APPLEGL +#if defined(GLX_DIRECT_RENDERING) && (!defined(GLX_USE_APPLEGL) || defined(GLX_USE_APPLE)) #include "dri_common.h" #endif -- GitLab From 1468907afa65f635c113a226b50e3a93cbe6d2f6 Mon Sep 17 00:00:00 2001 From: "duncan.hopkins" Date: Mon, 16 Dec 2024 11:42:33 +0000 Subject: [PATCH 1/2] glx: Guard some of the bind_extensions() code with the same conditions as `glx_screen`s `frontend_screen` member. Configution like simple MacOS builds do not have `frontend_screen` and fail to build. Fixes: 34dea2b38eb336e0414d60b168b9209e029a8cad ("glx: unify extension binding") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12317 --- src/glx/glxext.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/glx/glxext.c b/src/glx/glxext.c index 8d7518e1f4786..1ed850cac89d8 100644 --- src/glx/glxext.c +++ src/glx/glxext.c @@ -790,6 +790,7 @@ bind_extensions(struct glx_screen *psc, const char *driverName) __glXEnableDirectExtension(psc, "GLX_INTEL_swap_event"); } +#if defined(GLX_DIRECT_RENDERING) && (!defined(GLX_USE_APPLEGL) || defined(GLX_USE_APPLE)) mask = driGetAPIMask(psc->frontend_screen); __glXEnableDirectExtension(psc, "GLX_ARB_create_context"); @@ -846,6 +847,7 @@ bind_extensions(struct glx_screen *psc, const char *driverName) psc->keep_native_window_glx_drawable = keep_native_window_glx_drawable; } } +#endif } -- GitLab From 924c41a1734fd47ef03e5bc730cc2fd2bc97d6b6 Mon Sep 17 00:00:00 2001 From: "duncan.hopkins" Date: Mon, 16 Dec 2024 11:49:33 +0000 Subject: [PATCH 2/2] glx: Add back in `applegl_create_display()` so the OpenGL.framework, on MacOS, pointer get setup. Fixes: 4e8740370adaad5f8992c13262e1dfc66274d838 ("glx: rework __glXInitialize") --- src/glx/glxext.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/glx/glxext.c b/src/glx/glxext.c index 1ed850cac89d8..98e21a21b4362 100644 --- src/glx/glxext.c +++ src/glx/glxext.c @@ -1080,6 +1080,13 @@ __glXInitialize(Display * dpy) glx_driver |= GLX_DRIVER_SW; #endif +#if defined(GLX_USE_APPLEGL) && !defined(GLX_USE_APPLE) + if (!applegl_create_display(dpyPriv)) { + free(dpyPriv); + return NULL; + } +#endif + if (!AllocAndFetchScreenConfigs(dpy, dpyPriv, glx_driver, !env)) { Bool fail = True; #if defined(GLX_DIRECT_RENDERING) && (!defined(GLX_USE_APPLEGL) || defined(GLX_USE_APPLE)) -- GitLab