glx: only advertise GLX_INTEL_swap_event if it's supported
authorZack Rusin <zackr@vmware.com>
Fri, 25 Jan 2013 01:48:12 +0000 (17:48 -0800)
committerZack Rusin <zackr@vmware.com>
Fri, 25 Jan 2013 03:13:05 +0000 (19:13 -0800)
Only drivers supporting DRI2 version >=4 support GLX_INTEL_swap_event.
So lets mark it as such otherwise applications which use this extension
(i.e. everything based on Clutter, e.g. gnome-shell) break horribly on
drivers supporting DRI2 versions only up to 3.

Note: This is a candidate for the 9.0 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
src/glx/dri2_glx.c

index 1b3cf2bfc4f42024bef475fea3c6cdb49123bc99..a51716fedb9663daf0581c1d40738389b94f3eed 100644 (file)
@@ -1062,8 +1062,9 @@ dri2BindExtensions(struct dri2_screen *psc, const __DRIextension **extensions)
    __glXEnableDirectExtension(&psc->base, "GLX_MESA_swap_control");
    __glXEnableDirectExtension(&psc->base, "GLX_SGI_make_current_read");
 
-   /* FIXME: if DRI2 version supports it... */
-   __glXEnableDirectExtension(&psc->base, "GLX_INTEL_swap_event");
+   if (psc->dri2->base.version >= 4) {
+      __glXEnableDirectExtension(&psc->base, "GLX_INTEL_swap_event");
+   }
 
    if (psc->dri2->base.version >= 3) {
       const unsigned mask = psc->dri2->getAPIMask(psc->driScreen);