glx: Stop force-enabling extensions "implied" by GLX 1.3

1.3 has been ubiquitous since xserver 1.2 in early 2007, and has always
been supported with DRI2.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10418>
This commit is contained in:
Adam Jackson 2021-04-22 14:44:26 -04:00 committed by Marge Bot
parent e716088c24
commit 416e6b174c
3 changed files with 5 additions and 33 deletions

View file

@ -1329,6 +1329,7 @@ glXQueryExtensionsString(Display * dpy, int screen)
{
struct glx_screen *psc;
struct glx_display *priv;
int is_direct_capable = GL_FALSE;
if (GetGLXPrivScreenConfig(dpy, screen, &priv, &psc) != Success) {
return NULL;
@ -1341,13 +1342,10 @@ glXQueryExtensionsString(Display * dpy, int screen)
GLX_EXTENSIONS);
}
__glXCalculateUsableExtensions(psc,
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
(psc->driScreen != NULL),
#else
GL_FALSE,
is_direct_capable = (psc->driScreen != NULL);
#endif
priv->minorVersion);
__glXCalculateUsableExtensions(psc, is_direct_capable);
}
return psc->effectiveGLXexts;

View file

@ -644,13 +644,11 @@ __glXGetClientExtensions(Display *dpy)
* \param psc Pointer to GLX per-screen record.
* \param display_is_direct_capable True if the display is capable of
* direct rendering.
* \param minor_version GLX minor version from the server.
*/
void
__glXCalculateUsableExtensions(struct glx_screen * psc,
GLboolean display_is_direct_capable,
int minor_version)
GLboolean display_is_direct_capable)
{
unsigned char server_support[__GLX_EXT_BYTES];
unsigned char usable[__GLX_EXT_BYTES];
@ -664,29 +662,6 @@ __glXCalculateUsableExtensions(struct glx_screen * psc,
psc->serverGLXexts, server_support);
/* This is a hack. Some servers support GLX 1.3 but don't export
* all of the extensions implied by GLX 1.3. If the server claims
* support for GLX 1.3, enable support for the extensions that can be
* "emulated" as well.
*/
#ifndef GLX_USE_APPLEGL
if (minor_version >= 3) {
SET_BIT(server_support, EXT_visual_info_bit);
SET_BIT(server_support, EXT_visual_rating_bit);
SET_BIT(server_support, SGI_make_current_read_bit);
SET_BIT(server_support, SGIX_fbconfig_bit);
SET_BIT(server_support, SGIX_pbuffer_bit);
/* This one is a little iffy. GLX 1.3 doesn't incorporate all of this
* extension. However, the only part that is not strictly client-side
* is shared. That's the glXQueryContext / glXQueryContextInfoEXT
* function.
*/
SET_BIT(server_support, EXT_import_context_bit);
}
#endif
/* An extension is supported if the client-side (i.e., libGL) supports
* it and the "server" supports it. In this case that means that either
* the true server supports it or it is only for direct-rendering and

View file

@ -263,8 +263,7 @@ extern GLboolean __glXExtensionBitIsEnabled(struct glx_screen *psc,
extern const char *__glXGetClientExtensions(Display *dpy);
extern void __glXCalculateUsableExtensions(struct glx_screen *psc,
GLboolean
display_is_direct_capable,
int server_minor_version);
display_is_direct_capable);
extern void __glXParseExtensionOverride(struct glx_screen *psc,
const char *override);