From 9fd2901454e600e60fe4253de568d611c7fa34bf Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Mon, 28 Nov 2022 11:20:57 -0800 Subject: [PATCH] egl: Require __DRI_DRI2 v4 if we're to do DRI2. The only in-tree implementers are v4. Reviewed-by: Adam Jackson Part-of: --- src/egl/drivers/dri2/egl_dri2.c | 50 +++++++++++---------------------- 1 file changed, 17 insertions(+), 33 deletions(-) diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 01047605807..1fdddf809b5 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -715,7 +715,7 @@ static const struct dri2_extension_match dri3_driver_extensions[] = { static const struct dri2_extension_match dri2_driver_extensions[] = { { __DRI_CORE, 1, offsetof(struct dri2_egl_display, core) }, - { __DRI_DRI2, 2, offsetof(struct dri2_egl_display, dri2) }, + { __DRI_DRI2, 4, offsetof(struct dri2_egl_display, dri2) }, { NULL, 0, 0 } }; @@ -946,7 +946,7 @@ dri2_setup_screen(_EGLDisplay *disp) disp->Extensions.KHR_gl_colorspace = EGL_TRUE; if (dri2_dpy->image_driver || - (dri2_dpy->dri2 && dri2_dpy->dri2->base.version >= 3) || + dri2_dpy->dri2 || (dri2_dpy->swrast && dri2_dpy->swrast->base.version >= 3)) { disp->Extensions.KHR_create_context = EGL_TRUE; @@ -1072,18 +1072,11 @@ dri2_create_screen(_EGLDisplay *disp) &dri2_dpy->driver_configs, disp); } else if (dri2_dpy->dri2) { - if (dri2_dpy->dri2->base.version >= 4) { - dri2_dpy->dri_screen = - dri2_dpy->dri2->createNewScreen2(0, dri2_dpy->fd, - dri2_dpy->loader_extensions, - dri2_dpy->driver_extensions, - &dri2_dpy->driver_configs, disp); - } else { - dri2_dpy->dri_screen = - dri2_dpy->dri2->createNewScreen(0, dri2_dpy->fd, - dri2_dpy->loader_extensions, - &dri2_dpy->driver_configs, disp); - } + dri2_dpy->dri_screen = + dri2_dpy->dri2->createNewScreen2(0, dri2_dpy->fd, + dri2_dpy->loader_extensions, + dri2_dpy->driver_extensions, + &dri2_dpy->driver_configs, disp); } else { assert(dri2_dpy->swrast); if (dri2_dpy->swrast->base.version >= 4) { @@ -1601,25 +1594,16 @@ dri2_create_context(_EGLDisplay *disp, _EGLConfig *conf, dri2_ctx); dri2_create_context_attribs_error(error); } else if (dri2_dpy->dri2) { - if (dri2_dpy->dri2->base.version >= 3) { - dri2_ctx->dri_context = - dri2_dpy->dri2->createContextAttribs(dri2_dpy->dri_screen, - api, - dri_config, - shared, - num_attribs / 2, - ctx_attribs, - & error, - dri2_ctx); - dri2_create_context_attribs_error(error); - } else { - dri2_ctx->dri_context = - dri2_dpy->dri2->createNewContextForAPI(dri2_dpy->dri_screen, - api, - dri_config, - shared, - dri2_ctx); - } + dri2_ctx->dri_context = + dri2_dpy->dri2->createContextAttribs(dri2_dpy->dri_screen, + api, + dri_config, + shared, + num_attribs / 2, + ctx_attribs, + & error, + dri2_ctx); + dri2_create_context_attribs_error(error); } else { assert(dri2_dpy->swrast); if (dri2_dpy->swrast->base.version >= 3) {