From 39fe5a5dac7b6de950f89a0ea84a897f2394cd0c Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 1 Aug 2024 12:35:28 -0400 Subject: [PATCH] glx: move driver_configs to base glx_screen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Marek Olšák Part-of: --- src/glx/dri2_glx.c | 3 +-- src/glx/dri3_glx.c | 3 +-- src/glx/dri3_priv.h | 2 -- src/glx/drisw_glx.c | 3 +-- src/glx/drisw_priv.h | 2 -- src/glx/glxclient.h | 1 + src/glx/glxext.c | 3 +++ 7 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index 519ff2ef7d4..0c31d1a1339 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -426,7 +426,6 @@ dri2DestroyScreen(struct glx_screen *base) /* Free the direct rendering per screen data */ driDestroyScreen(psc->base.frontend_screen); - driDestroyConfigs(psc->driver_configs); close(psc->fd); free(psc); } @@ -727,7 +726,7 @@ dri2CreateScreen(int screen, struct glx_display * priv, bool driver_name_is_infe glx_config_destroy_list(psc->base.visuals); psc->base.visuals = visuals; - psc->driver_configs = driver_configs; + psc->base.driver_configs = driver_configs; psc->base.vtable = &dri_screen_vtable; psc->base.context_vtable = &dri2_context_vtable; diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c index 635b2413899..44e5ee78a61 100644 --- a/src/glx/dri3_glx.c +++ b/src/glx/dri3_glx.c @@ -431,7 +431,6 @@ dri3_destroy_screen(struct glx_screen *base) close(psc->fd_display_gpu); loader_dri3_close_screen(psc->driScreenRenderGPU); driDestroyScreen(psc->driScreenRenderGPU); - driDestroyConfigs(psc->driver_configs); close(psc->fd_render_gpu); free(psc); } @@ -589,7 +588,7 @@ dri3_create_screen(int screen, struct glx_display * priv, bool driver_name_is_in glx_config_destroy_list(psc->base.visuals); psc->base.visuals = visuals; - psc->driver_configs = driver_configs; + psc->base.driver_configs = driver_configs; psc->base.vtable = &dri_screen_vtable; psc->base.context_vtable = &dri3_context_vtable; diff --git a/src/glx/dri3_priv.h b/src/glx/dri3_priv.h index ee4f7feabc3..e67b3be3954 100644 --- a/src/glx/dri3_priv.h +++ b/src/glx/dri3_priv.h @@ -79,8 +79,6 @@ struct dri3_screen { __DRIscreen *driScreenDisplayGPU; __DRIscreen *driScreenRenderGPU; - const __DRIconfig **driver_configs; - /* fd of the GPU used for rendering. */ int fd_render_gpu; /* fd of the GPU used for display. If the same GPU is used for display diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index d142ef2de8c..a471e4a83ae 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -570,7 +570,6 @@ driswDestroyScreen(struct glx_screen *base) /* Free the direct rendering per screen data */ driDestroyScreen(psc->base.frontend_screen); - driDestroyConfigs(psc->driver_configs); free(psc); } @@ -686,7 +685,7 @@ driswCreateScreen(int screen, struct glx_display *priv, enum glx_driver glx_driv glx_config_destroy_list(psc->base.visuals); psc->base.visuals = visuals; - psc->driver_configs = driver_configs; + psc->base.driver_configs = driver_configs; psc->base.vtable = &dri_screen_vtable; psc->base.context_vtable = &drisw_context_vtable; diff --git a/src/glx/drisw_priv.h b/src/glx/drisw_priv.h index 3581c29482d..5e55807011d 100644 --- a/src/glx/drisw_priv.h +++ b/src/glx/drisw_priv.h @@ -39,8 +39,6 @@ struct drisw_screen __GLXDRIscreen vtable; - const __DRIconfig **driver_configs; - bool kopper; }; diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h index f7ae57043ea..5ad91ca9599 100644 --- a/src/glx/glxclient.h +++ b/src/glx/glxclient.h @@ -525,6 +525,7 @@ struct glx_screen */ __GLXDRIscreen *driScreen; __DRIscreen *frontend_screen; + const __DRIconfig **driver_configs; #endif /** diff --git a/src/glx/glxext.c b/src/glx/glxext.c index cd7a25ba5b1..baf31c6bf52 100644 --- a/src/glx/glxext.c +++ b/src/glx/glxext.c @@ -743,6 +743,9 @@ glx_screen_cleanup(struct glx_screen *psc) glx_config_destroy_list(psc->visuals); psc->visuals = NULL; /* NOTE: just for paranoia */ } +#if defined(GLX_DIRECT_RENDERING) && (!defined(GLX_USE_APPLEGL) || defined(GLX_USE_APPLE)) + driDestroyConfigs(psc->driver_configs); +#endif free((char *) psc->serverGLXexts); free((char *) psc->serverGLXvendor); free((char *) psc->serverGLXversion);