glx: Create proper server dependency for GLX_EXT_create_context_es2_profile

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@intel.com>
Acked-by: José Fonseca <jfonseca@vmware.com>
Reviewed-by: Chad Versace <chad.versace@intel.com>
Cc: Emil Velikov <emil.l.velikov@gmail.com>
This commit is contained in:
Ian Romanick
2015-04-14 09:24:06 -07:00
parent b229e6c7de
commit 8957c9e448
+1 -11
View File
@@ -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);
}