[Mesa-dev] [PATCH] glx: Create proper server dependency for GLX_EXT_create_context_es2_profile
Jose Fonseca
jfonseca at vmware.com
Wed Apr 15 12:57:26 PDT 2015
On 14/04/15 17:35, Ian Romanick wrote:
> From: Ian Romanick <ian.d.romanick at intel.com>
>
> Previously GLX_EXT_create_context_es2_profile was marked as "direct
> only" so that it would not depend on server support. Since the
> extension required functions that are part of
> GLX_ARB_create_context_profile, support for the EXT was disabled if the
> ARB was not supported.
>
> This was complete rubbish. If the server supported the ARB but not the
> EXT, sending a request with GLX_CONTEXT_ES2_PROFILE_BIT_EXT would result
> in GLXBadProfileARB.
>
> Instead of the misguided hack, make GLX_EXT_create_context_es2_profile
> properly depend on server support by not marking it as "direct only."
>
> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
> Cc: José Fonseca <jfonseca at vmware.com>
> Cc: Chad Versace <chad.versace at intel.com>
> Cc: Emil Velikov <emil.l.velikov at gmail.com>
> ---
> src/glx/glxextensions.c | 12 +-----------
> 1 file changed, 1 insertion(+), 11 deletions(-)
>
> diff --git a/src/glx/glxextensions.c b/src/glx/glxextensions.c
> index ce5d66d..a326f0d 100644
> --- a/src/glx/glxextensions.c
> +++ b/src/glx/glxextensions.c
> @@ -84,7 +84,7 @@ static const struct extension_info known_glx_extensions[] = {
> { GLX(EXT_visual_rating), VER(0,0), Y, Y, N, N },
> { GLX(EXT_fbconfig_packed_float), VER(0,0), Y, Y, N, N },
> { GLX(EXT_framebuffer_sRGB), VER(0,0), Y, Y, N, N },
> - { GLX(EXT_create_context_es2_profile), VER(0,0), Y, N, N, Y },
> + { GLX(EXT_create_context_es2_profile), VER(0,0), Y, N, N, N },
> { GLX(MESA_copy_sub_buffer), VER(0,0), Y, N, N, N },
> { GLX(MESA_multithread_makecurrent),VER(0,0), Y, N, Y, N },
> { GLX(MESA_query_renderer), VER(0,0), Y, N, N, Y },
> @@ -627,16 +627,6 @@ __glXCalculateUsableExtensions(struct glx_screen * psc,
> }
> }
>
> - /* This hack is necessary because GLX_ARB_create_context_profile depends on
> - * server support, but GLX_EXT_create_context_es2_profile is direct-only.
> - * Without this hack, it would be possible to advertise
> - * GLX_EXT_create_context_es2_profile without
> - * GLX_ARB_create_context_profile. That would be a problem.
> - */
> - if (!IS_SET(server_support, ARB_create_context_profile_bit)) {
> - CLR_BIT(usable, EXT_create_context_es2_profile_bit);
> - }
> -
> psc->effectiveGLXexts = __glXGetStringFromTable(known_glx_extensions,
> usable);
> }
>
Makes sense AFAICT. But I confess I'm not very familiar with these
subtle interactions between GLX and X server.
Acked-by: Jose Fonseca <jfonseca at vmware.com>
More information about the mesa-dev
mailing list