egl+glx: Always support no_error contexts.
Since we know we're loading this Mesa build, we know that no_error is always supported (the renderer query always returned true). Reviewed-by: Adam Jackson <ajax@redhat.com> Acked-by: Eric Engestrom <eric@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>
This commit is contained in:
@@ -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 {
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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 *
|
||||
|
@@ -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 *
|
||||
|
@@ -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) {
|
||||
|
Reference in New Issue
Block a user