glx: deduplicate and move driverName to base glx_screen struct

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30524>
This commit is contained in:
Mike Blumenkrantz 2024-07-30 14:00:56 -04:00 committed by Marge Bot
parent d491ec1bf9
commit 3f497c1667
7 changed files with 8 additions and 13 deletions

View file

@ -589,7 +589,6 @@ dri2DestroyScreen(struct glx_screen *base)
/* Free the direct rendering per screen data */
driDestroyScreen(psc->driScreen);
driDestroyConfigs(psc->driver_configs);
free(psc->driverName);
close(psc->fd);
free(psc);
}
@ -876,9 +875,7 @@ dri2BindExtensions(struct dri2_screen *psc, struct glx_display * priv,
static char *
dri2_get_driver_name(struct glx_screen *glx_screen)
{
struct dri2_screen *psc = (struct dri2_screen *)glx_screen;
return psc->driverName;
return glx_screen->driverName;
}
static const struct glx_screen_vtable dri2_screen_vtable = {
@ -950,7 +947,7 @@ dri2CreateScreen(int screen, struct glx_display * priv, bool driver_name_is_infe
free(driverName);
driverName = loader_driverName;
}
psc->driverName = driverName;
psc->base.driverName = driverName;
extensions = driOpenDriver(driverName, driver_name_is_inferred);
if (extensions == NULL)

View file

@ -47,7 +47,6 @@ struct dri2_screen {
const __DRIconfig **driver_configs;
char *driverName;
int fd;
int show_fps_interval;

View file

@ -779,6 +779,7 @@ dri3_create_screen(int screen, struct glx_display * priv, bool driver_name_is_in
ErrorMessageF("No driver found\n");
goto handle_error;
}
psc->base.driverName = driverName;
if (!strcmp(driverName, "zink") && !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false)) {
*return_zink = true;
@ -895,8 +896,6 @@ dri3_create_screen(int screen, struct glx_display * priv, bool driver_name_is_in
}
}
free(driverName);
InfoMessageF("Using DRI3 for screen %d\n", screen);
psc->prefer_back_buffer_reuse = 1;
@ -931,7 +930,6 @@ handle_error:
if (psc->fd_render_gpu >= 0)
close(psc->fd_render_gpu);
free(driverName);
glx_screen_cleanup(&psc->base);
free(psc);

View file

@ -754,7 +754,6 @@ driswDestroyScreen(struct glx_screen *base)
driDestroyScreen(psc->driScreen);
driDestroyConfigs(psc->driver_configs);
psc->driScreen = NULL;
free(psc->name);
free(psc);
}
@ -762,7 +761,7 @@ static char *
drisw_get_driver_name(struct glx_screen *glx_screen)
{
struct drisw_screen *psc = (struct drisw_screen *) glx_screen;
return strdup(psc->name);
return strdup(psc->base.driverName);
}
static const struct glx_screen_vtable drisw_screen_vtable = {
@ -894,7 +893,7 @@ driswCreateScreen(int screen, struct glx_display *priv, enum glx_driver glx_driv
extensions = driOpenDriver(driver, driver_name_is_inferred);
if (extensions == NULL)
goto handle_error;
psc->name = strdup(driver);
psc->base.driverName = strdup(driver);
if (glx_driver)
loader_extensions_local = kopper_extensions_noshm;

View file

@ -42,7 +42,6 @@ struct drisw_screen
const __DRIconfig **driver_configs;
char *name;
bool kopper;
};

View file

@ -515,6 +515,8 @@ struct glx_screen
bool allow_invalid_glx_destroy_window;
bool keep_native_window_glx_drawable;
char *driverName;
#if defined(GLX_DIRECT_RENDERING) && (!defined(GLX_USE_APPLEGL) || defined(GLX_USE_APPLE))
/**
* Per screen direct rendering interface functions and data.

View file

@ -742,6 +742,7 @@ glx_screen_cleanup(struct glx_screen *psc)
free((char *) psc->serverGLXexts);
free((char *) psc->serverGLXvendor);
free((char *) psc->serverGLXversion);
free(psc->driverName);
}
/*