diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h index fa0f7432342..8c64c99562e 100644 --- a/include/GL/internal/dri_interface.h +++ b/include/GL/internal/dri_interface.h @@ -1847,8 +1847,8 @@ struct __DRIrobustnessExtensionRec { * Existence of this extension means the driver can accept the * __DRI_CTX_FLAG_NO_ERROR flag. * - * This extension is deprecated, and modern loaders will not use it. Please - * use __DRI2_RENDERER_HAS_NO_ERROR_CONTEXT instead. + * This extension is deprecated, and modern Mesa knows that it's always + * supported. * * Not used by the X server. */ @@ -1932,7 +1932,6 @@ typedef struct __DRIconfigOptionsExtensionRec { #define __DRI2_RENDERER_HAS_FRAMEBUFFER_SRGB 0x000c #define __DRI2_RENDERER_PREFER_BACK_BUFFER_REUSE 0x000f -#define __DRI2_RENDERER_HAS_NO_ERROR_CONTEXT 0x0010 typedef struct __DRI2rendererQueryExtensionRec __DRI2rendererQueryExtension; struct __DRI2rendererQueryExtensionRec { diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 55e0642ef5c..de29d03940f 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -875,6 +875,7 @@ dri2_setup_screen(_EGLDisplay *disp) assert(dri2_dpy->image_driver || dri2_dpy->dri2 || dri2_dpy->swrast); disp->Extensions.KHR_create_context = EGL_TRUE; + disp->Extensions.KHR_create_context_no_error = EGL_TRUE; disp->Extensions.KHR_no_config_context = EGL_TRUE; disp->Extensions.KHR_surfaceless_context = EGL_TRUE; @@ -894,10 +895,6 @@ dri2_setup_screen(_EGLDisplay *disp) if (dri2_dpy->robustness) disp->Extensions.EXT_create_context_robustness = EGL_TRUE; - if (dri2_renderer_query_integer(dri2_dpy, - __DRI2_RENDERER_HAS_NO_ERROR_CONTEXT)) - disp->Extensions.KHR_create_context_no_error = EGL_TRUE; - if (dri2_dpy->fence) { disp->Extensions.KHR_fence_sync = EGL_TRUE; disp->Extensions.KHR_wait_sync = EGL_TRUE; diff --git a/src/gallium/frontends/dri/dri_query_renderer.c b/src/gallium/frontends/dri/dri_query_renderer.c index 7a9bce33a91..20a3504845c 100644 --- a/src/gallium/frontends/dri/dri_query_renderer.c +++ b/src/gallium/frontends/dri/dri_query_renderer.c @@ -18,7 +18,6 @@ * - \c __DRI2_RENDERER_OPENGL_COMPATIBLITY_PROFILE_VERSION * - \c __DRI2_RENDERER_ES_PROFILE_VERSION * - \c __DRI2_RENDERER_ES2_PROFILE_VERSION - * - \c __DRI2_RENDERER_HAS_NO_ERROR_CONTEXT * * \returns * Zero if a recognized value of \c param is supplied, -1 otherwise. @@ -69,9 +68,6 @@ driQueryRendererIntegerCommon(struct dri_screen *screen, int param, unsigned int value[0] = screen->max_gl_es2_version / 10; value[1] = screen->max_gl_es2_version % 10; return 0; - case __DRI2_RENDERER_HAS_NO_ERROR_CONTEXT: - value[0] = GL_TRUE; - return 0; default: break; } diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index 943c953d0fe..9a47f40ca9c 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -965,6 +965,7 @@ dri2BindExtensions(struct dri2_screen *psc, struct glx_display * priv, __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context"); __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context_profile"); + __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context_no_error"); __glXEnableDirectExtension(&psc->base, "GLX_EXT_no_config_context"); if ((mask & ((1 << __DRI_API_GLES) | @@ -1000,15 +1001,8 @@ dri2BindExtensions(struct dri2_screen *psc, struct glx_display * priv, if (psc->texBuffer) __glXEnableDirectExtension(&psc->base, "GLX_EXT_texture_from_pixmap"); - if (psc->rendererQuery) { + if (psc->rendererQuery) __glXEnableDirectExtension(&psc->base, "GLX_MESA_query_renderer"); - unsigned int no_error = 0; - if (psc->rendererQuery->queryInteger(psc->driScreen, - __DRI2_RENDERER_HAS_NO_ERROR_CONTEXT, - &no_error) == 0 && no_error) - __glXEnableDirectExtension(&psc->base, - "GLX_ARB_create_context_no_error"); - } } static char * diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c index ecbefddc36c..9407879e1cc 100644 --- a/src/glx/dri3_glx.c +++ b/src/glx/dri3_glx.c @@ -739,6 +739,7 @@ dri3_bind_extensions(struct dri3_screen *psc, struct glx_display * priv, __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context"); __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context_profile"); + __glXEnableDirectExtension(&psc->base, "GLX_ARB_create_context_no_error"); __glXEnableDirectExtension(&psc->base, "GLX_EXT_no_config_context"); if ((mask & ((1 << __DRI_API_GLES) | @@ -779,16 +780,8 @@ dri3_bind_extensions(struct dri3_screen *psc, struct glx_display * priv, "GLX_ARB_context_flush_control"); } - if (psc->rendererQuery) { + if (psc->rendererQuery) __glXEnableDirectExtension(&psc->base, "GLX_MESA_query_renderer"); - unsigned int no_error = 0; - if (psc->rendererQuery->queryInteger(psc->driScreen, - __DRI2_RENDERER_HAS_NO_ERROR_CONTEXT, - &no_error) == 0 && no_error) { - __glXEnableDirectExtension(&psc->base, - "GLX_ARB_create_context_no_error"); - } - } } static char * diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index d934e4eb79c..c0d1e85fdc4 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -811,6 +811,7 @@ driswBindExtensions(struct drisw_screen *psc, const __DRIextension **extensions) __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_ARB_create_context_no_error"); __glXEnableDirectExtension(&psc->base, "GLX_EXT_no_config_context"); /* DRISW version >= 2 implies support for OpenGL ES. */ @@ -848,13 +849,6 @@ driswBindExtensions(struct drisw_screen *psc, const __DRIextension **extensions) if (psc->rendererQuery) { __glXEnableDirectExtension(&psc->base, "GLX_MESA_query_renderer"); - unsigned int no_error = 0; - if (psc->rendererQuery->queryInteger(psc->driScreen, - __DRI2_RENDERER_HAS_NO_ERROR_CONTEXT, - &no_error) == 0 && no_error) { - __glXEnableDirectExtension(&psc->base, - "GLX_ARB_create_context_no_error"); - } } if (psc->kopper) {