diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index b61f05064d5..e3e11cf27d6 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -657,14 +657,6 @@ static const struct glx_context_vtable dri2_context_vtable = { .wait_x = dri2_wait_x, }; -static const struct glx_screen_vtable dri2_screen_vtable = { - .create_context = dri_common_create_context, - .create_context_attribs = dri_create_context_attribs, - .query_renderer_integer = glx_dri_query_renderer_integer, - .query_renderer_string = glx_dri_query_renderer_string, - .get_driver_name = dri_get_driver_name, -}; - static const __DRIextension *loader_extensions[] = { &dri2LoaderExtension.base, &dri2UseInvalidate.base, @@ -751,7 +743,7 @@ dri2CreateScreen(int screen, struct glx_display * priv, bool driver_name_is_infe psc->driver_configs = driver_configs; - psc->base.vtable = &dri2_screen_vtable; + psc->base.vtable = &dri_screen_vtable; psc->base.context_vtable = &dri2_context_vtable; psp = &psc->vtable; psc->base.driScreen = psp; diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c index 8c9e512c2f0..f7b40a2bc97 100644 --- a/src/glx/dri3_glx.c +++ b/src/glx/dri3_glx.c @@ -496,14 +496,6 @@ static const struct glx_context_vtable dri3_context_vtable = { .wait_x = dri3_wait_x, }; -static const struct glx_screen_vtable dri3_screen_vtable = { - .create_context = dri_common_create_context, - .create_context_attribs = dri_create_context_attribs, - .query_renderer_integer = glx_dri_query_renderer_integer, - .query_renderer_string = glx_dri_query_renderer_string, - .get_driver_name = dri_get_driver_name, -}; - /** dri3_create_screen * * Initialize DRI3 on the specified screen. @@ -617,7 +609,7 @@ dri3_create_screen(int screen, struct glx_display * priv, bool driver_name_is_in psc->driver_configs = driver_configs; - psc->base.vtable = &dri3_screen_vtable; + psc->base.vtable = &dri_screen_vtable; psc->base.context_vtable = &dri3_context_vtable; psp = &psc->vtable; psc->base.driScreen = psp; diff --git a/src/glx/dri_common.c b/src/glx/dri_common.c index 3739003b11d..9840ee6e30b 100644 --- a/src/glx/dri_common.c +++ b/src/glx/dri_common.c @@ -939,4 +939,11 @@ dri_get_driver_name(struct glx_screen *glx_screen) return strdup(glx_screen->driverName); } +const struct glx_screen_vtable dri_screen_vtable = { + .create_context = dri_common_create_context, + .create_context_attribs = dri_create_context_attribs, + .query_renderer_integer = glx_dri_query_renderer_integer, + .query_renderer_string = glx_dri_query_renderer_string, + .get_driver_name = dri_get_driver_name, +}; #endif /* GLX_DIRECT_RENDERING */ diff --git a/src/glx/dri_common.h b/src/glx/dri_common.h index 68ff6b137c4..92433c49866 100644 --- a/src/glx/dri_common.h +++ b/src/glx/dri_common.h @@ -73,6 +73,8 @@ struct dri_ctx_attribs { int no_error; }; +extern const struct glx_screen_vtable dri_screen_vtable; + extern unsigned dri_context_error_to_glx_error(unsigned error); diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index 1d48ca65314..68c331aa776 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -589,14 +589,6 @@ driswDestroyScreen(struct glx_screen *base) free(psc); } -static const struct glx_screen_vtable drisw_screen_vtable = { - .create_context = dri_common_create_context, - .create_context_attribs = dri_create_context_attribs, - .query_renderer_integer = glx_dri_query_renderer_integer, - .query_renderer_string = glx_dri_query_renderer_string, - .get_driver_name = dri_get_driver_name, -}; - static int check_xshm(Display *dpy) { @@ -711,7 +703,7 @@ driswCreateScreen(int screen, struct glx_display *priv, enum glx_driver glx_driv psc->driver_configs = driver_configs; - psc->base.vtable = &drisw_screen_vtable; + psc->base.vtable = &dri_screen_vtable; psc->base.context_vtable = &drisw_context_vtable; psp = &psc->vtable; psc->base.driScreen = psp;