diff options
author | Emma Anholt <emma@anholt.net> | 2022-11-28 11:27:09 -0800 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2022-12-01 09:17:31 +0000 |
commit | d09848d84de3a221db25d1514702f1faf34c0675 (patch) | |
tree | 880f6c2124263f405e858fef86abf3ad30a70962 /src/glx | |
parent | 7d364230321d9a0f53dc39afaa561aba73b58221 (diff) |
glx: Require __DRI_SWRAST >= 4 for doing swrast.
The only implementer in tree is v4.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20044>
Diffstat (limited to 'src/glx')
-rw-r--r-- | src/glx/drisw_glx.c | 45 |
1 files changed, 14 insertions, 31 deletions
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index 393ea7174e1..775d52b83b7 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -569,9 +569,6 @@ drisw_create_context_attribs(struct glx_screen *base, if (!psc->base.driScreen) return NULL; - if (psc->swrast->base.version < 3) - return NULL; - *error = dri_convert_glx_attribs(num_attribs, attribs, &dca); if (*error != __DRI_CTX_ERROR_SUCCESS) return NULL; @@ -812,19 +809,15 @@ driswBindExtensions(struct drisw_screen *psc, const __DRIextension **extensions) int i; __glXEnableDirectExtension(&psc->base, "GLX_SGI_make_current_read"); + __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context"); + __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context_profile"); + __glXEnableDirectExtension(&psc->base, "GLX_EXT_no_config_context"); - if (psc->swrast->base.version >= 3) { - __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context"); - __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context_profile"); - __glXEnableDirectExtension(&psc->base, "GLX_EXT_no_config_context"); - - /* DRISW version >= 2 implies support for OpenGL ES. - */ - __glXEnableDirectExtension(&psc->base, - "GLX_EXT_create_context_es_profile"); - __glXEnableDirectExtension(&psc->base, - "GLX_EXT_create_context_es2_profile"); - } + /* DRISW version >= 2 implies support for OpenGL ES. */ + __glXEnableDirectExtension(&psc->base, + "GLX_EXT_create_context_es_profile"); + __glXEnableDirectExtension(&psc->base, + "GLX_EXT_create_context_es2_profile"); if (psc->copySubBuffer) __glXEnableDirectExtension(&psc->base, "GLX_MESA_copy_sub_buffer"); @@ -835,11 +828,7 @@ driswBindExtensions(struct drisw_screen *psc, const __DRIextension **extensions) psc->texBuffer = (__DRItexBufferExtension *) extensions[i]; __glXEnableDirectExtension(&psc->base, "GLX_EXT_texture_from_pixmap"); } - /* DRISW version 3 is also required because GLX_MESA_query_renderer - * requires GLX_ARB_create_context_profile. - */ - if (psc->swrast->base.version >= 3 - && strcmp(extensions[i]->name, __DRI2_RENDERER_QUERY) == 0) { + if (strcmp(extensions[i]->name, __DRI2_RENDERER_QUERY) == 0) { psc->rendererQuery = (__DRI2rendererQueryExtension *) extensions[i]; __glXEnableDirectExtension(&psc->base, "GLX_MESA_query_renderer"); unsigned int no_error = 0; @@ -975,21 +964,15 @@ driswCreateScreenDriver(int screen, struct glx_display *priv, psc->copySubBuffer = (__DRIcopySubBufferExtension *) extensions[i]; } - if (psc->core == NULL || psc->swrast == NULL) { + if (psc->core == NULL || psc->swrast == NULL || psc->swrast->base.version < 4) { ErrorMessageF("core dri extension not found\n"); goto handle_error; } - if (psc->swrast->base.version >= 4) { - psc->driScreen = - psc->swrast->createNewScreen2(screen, loader_extensions_local, - extensions, - &driver_configs, psc); - } else { - psc->driScreen = - psc->swrast->createNewScreen(screen, loader_extensions_local, - &driver_configs, psc); - } + psc->driScreen = + psc->swrast->createNewScreen2(screen, loader_extensions_local, + extensions, + &driver_configs, psc); if (psc->driScreen == NULL) { ErrorMessageF("glx: failed to create drisw screen\n"); goto handle_error; |