Mesa (master): glx: Stop force-enabling extensions "implied" by GLX 1.3

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Apr 29 22:33:32 UTC 2021


Module: Mesa
Branch: master
Commit: 416e6b174cbf674d5b7cde2a0a2c32d3a7205cb8
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=416e6b174cbf674d5b7cde2a0a2c32d3a7205cb8

Author: Adam Jackson <ajax at redhat.com>
Date:   Thu Apr 22 14:44:26 2021 -0400

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>

---

 src/glx/glxcmds.c       |  8 +++-----
 src/glx/glxextensions.c | 27 +--------------------------
 src/glx/glxextensions.h |  3 +--
 3 files changed, 5 insertions(+), 33 deletions(-)

diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c
index e39521503fd..d4348a9d17c 100644
--- a/src/glx/glxcmds.c
+++ b/src/glx/glxcmds.c
@@ -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;
diff --git a/src/glx/glxextensions.c b/src/glx/glxextensions.c
index e649a70c55a..71f84936a70 100644
--- a/src/glx/glxextensions.c
+++ b/src/glx/glxextensions.c
@@ -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
diff --git a/src/glx/glxextensions.h b/src/glx/glxextensions.h
index 18e834d196c..999db335717 100644
--- a/src/glx/glxextensions.h
+++ b/src/glx/glxextensions.h
@@ -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);



More information about the mesa-commit mailing list