mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-22 11:50:36 +02:00
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:
parent
e716088c24
commit
416e6b174c
3 changed files with 5 additions and 33 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue