[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