summaryrefslogtreecommitdiff
path: root/src/glx
diff options
context:
space:
mode:
authorEmma Anholt <emma@anholt.net>2022-11-28 11:27:09 -0800
committerMarge Bot <emma+marge@anholt.net>2022-12-01 09:17:31 +0000
commitd09848d84de3a221db25d1514702f1faf34c0675 (patch)
tree880f6c2124263f405e858fef86abf3ad30a70962 /src/glx
parent7d364230321d9a0f53dc39afaa561aba73b58221 (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.c45
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;