diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c index 428fbc4de85..cd379025260 100644 --- a/src/glx/dri3_glx.c +++ b/src/glx/dri3_glx.c @@ -80,6 +80,7 @@ #include "loader_dri_helper.h" #include "dri2.h" #include "util/u_debug.h" +#include "dri_util.h" static struct dri3_drawable * loader_drawable_to_dri3_drawable(struct loader_dri3_drawable *draw) { @@ -287,15 +288,15 @@ dri3_create_context_attribs(struct glx_screen *base, pcp->renderType = dca.render_type; pcp->driContext = - psc->image_driver->createContextAttribs(psc->driScreenRenderGPU, - dca.api, - config ? config->driConfig - : NULL, - shared, - num_ctx_attribs / 2, - ctx_attribs, - error, - pcp); + driCreateContextAttribs(psc->driScreenRenderGPU, + dca.api, + config ? config->driConfig + : NULL, + shared, + num_ctx_attribs / 2, + ctx_attribs, + error, + pcp); *error = dri_context_error_to_glx_error(*error); @@ -706,7 +707,7 @@ dri3_bind_extensions(struct dri3_screen *psc, struct glx_display * priv, __glXEnableDirectExtension(&psc->base, "GLX_SGI_make_current_read"); __glXEnableDirectExtension(&psc->base, "GLX_INTEL_swap_event"); - mask = psc->image_driver->getAPIMask(psc->driScreenRenderGPU); + mask = driGetAPIMask(psc->driScreenRenderGPU); __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context"); __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context_profile"); @@ -843,7 +844,6 @@ dri3_create_screen(int screen, struct glx_display * priv, bool driver_name_is_in static const struct dri_extension_match exts[] = { { __DRI_CORE, 1, offsetof(struct dri3_screen, core), false }, - { __DRI_IMAGE_DRIVER, 2, offsetof(struct dri3_screen, image_driver), false }, { __DRI_MESA, 2, offsetof(struct dri3_screen, mesa), false }, }; if (!loader_bind_extensions(psc, exts, ARRAY_SIZE(exts), extensions)) @@ -859,22 +859,20 @@ dri3_create_screen(int screen, struct glx_display * priv, bool driver_name_is_in * extension pointer is shared because it keeps things simple. */ if (strcmp(driverName, driverNameDisplayGPU) == 0) { - psc->driScreenDisplayGPU = - psc->image_driver->createNewScreen3(screen, psc->fd_display_gpu, - loader_extensions, - extensions, - &driver_configs, driver_name_is_inferred, psc); + psc->driScreenDisplayGPU = driCreateNewScreen3(screen, psc->fd_display_gpu, + loader_extensions, + extensions, + &driver_configs, driver_name_is_inferred, psc); } free(driverNameDisplayGPU); } } - psc->driScreenRenderGPU = - psc->image_driver->createNewScreen3(screen, psc->fd_render_gpu, - loader_extensions, - extensions, - &driver_configs, driver_name_is_inferred, psc); + psc->driScreenRenderGPU = driCreateNewScreen3(screen, psc->fd_render_gpu, + loader_extensions, + extensions, + &driver_configs, driver_name_is_inferred, psc); if (psc->driScreenRenderGPU == NULL) { ErrorMessageF("glx: failed to create dri3 screen\n"); @@ -915,7 +913,6 @@ dri3_create_screen(int screen, struct glx_display * priv, bool driver_name_is_in } psc->loader_dri3_ext.core = psc->core; - psc->loader_dri3_ext.image_driver = psc->image_driver; psc->loader_dri3_ext.flush = psc->f; psc->loader_dri3_ext.tex_buffer = psc->texBuffer; psc->loader_dri3_ext.image = psc->image; diff --git a/src/glx/dri3_priv.h b/src/glx/dri3_priv.h index 0ad1756d88d..4ebd7004d3d 100644 --- a/src/glx/dri3_priv.h +++ b/src/glx/dri3_priv.h @@ -80,7 +80,6 @@ struct dri3_screen { __DRIscreen *driScreenRenderGPU; const __DRIimageExtension *image; - const __DRIimageDriverExtension *image_driver; const __DRIcoreExtension *core; const __DRImesaCoreExtension *mesa; const __DRI2flushExtension *f; diff --git a/src/glx/meson.build b/src/glx/meson.build index 66e18ef59a4..d2ccabac289 100644 --- a/src/glx/meson.build +++ b/src/glx/meson.build @@ -115,7 +115,8 @@ endif libglx = static_library( 'glx', [files_libglx, glx_generated], - include_directories : [inc_include, inc_src, inc_glapi, inc_loader, inc_loader_x11, inc_loader_dri3, inc_gallium], + include_directories : [inc_include, inc_src, inc_glapi, inc_loader, inc_loader_x11, + inc_loader_dri3, inc_gallium, inc_mesa, inc_st_dri], c_args : [ '-DGL_LIB_NAME="lib@0@.so.@1@"'.format(gl_lib_name, gl_lib_version.split('.')[0]), ], diff --git a/src/loader_dri3/loader_dri3_helper.c b/src/loader_dri3/loader_dri3_helper.c index 317207286d6..a78f50c894f 100644 --- a/src/loader_dri3/loader_dri3_helper.c +++ b/src/loader_dri3/loader_dri3_helper.c @@ -39,6 +39,7 @@ #include "util/macros.h" #include "util/simple_mtx.h" #include "drm-uapi/drm_fourcc.h" +#include "dri_util.h" /** * A cached blit context. @@ -441,10 +442,7 @@ loader_dri3_drawable_init(xcb_connection_t *conn, dri3_update_max_num_back(draw); /* Create a new drawable */ - draw->dri_drawable = - draw->ext->image_driver->createNewDrawable(dri_screen_render_gpu, - dri_config, - draw); + draw->dri_drawable = driCreateNewDrawable(dri_screen_render_gpu, dri_config, draw); if (!draw->dri_drawable) return 1; diff --git a/src/loader_dri3/meson.build b/src/loader_dri3/meson.build index 45dee907160..3069cf65365 100644 --- a/src/loader_dri3/meson.build +++ b/src/loader_dri3/meson.build @@ -8,7 +8,7 @@ if with_platform_x11 and with_dri3 'loader_dri3_helper', 'loader_dri3_helper.c', gnu_symbol_visibility : 'hidden', - include_directories : [inc_include, inc_src, inc_loader, inc_gallium], + include_directories : [inc_include, inc_src, inc_loader, inc_gallium, inc_mesa, inc_st_dri], dependencies : [ idep_mesautil, dep_libdrm, dep_xcb_dri3, dep_xcb_present, dep_xcb_sync, dep_xshmfence,