Filter both visuals and fbconfigs against driver supported configs.
authorKristian Høgsberg <krh@redhat.com>
Mon, 5 Nov 2007 20:42:55 +0000 (15:42 -0500)
committerKristian Høgsberg <krh@redhat.com>
Mon, 5 Nov 2007 22:02:29 +0000 (17:02 -0500)
src/glx/x11/glxext.c

index 4fcf6e5df077d01d6ae5489831b0c0e92ba3ee0f..3572a70a10073fee6bc7a2d429b3296544ccc26d 100644 (file)
@@ -635,14 +635,13 @@ __glXInitializeVisualConfigFromTags( __GLcontextModes *config, int count,
 
 
 #ifdef GLX_DIRECT_RENDERING
-static unsigned
+static void
 filter_modes( __GLcontextModes ** server_modes,
              const __GLcontextModes * driver_modes )
 {
     __GLcontextModes * m;
     __GLcontextModes ** prev_next;
     const __GLcontextModes * check;
-    unsigned modes_count = 0;
 
     if ( driver_modes == NULL ) {
        fprintf(stderr, "libGL warning: 3D driver returned no fbconfigs.\n");
@@ -684,12 +683,9 @@ filter_modes( __GLcontextModes ** server_modes,
            _gl_context_modes_destroy( m );
        }
        else {
-           modes_count++;
            prev_next = & m->next;
        }
     }
-
-    return modes_count;
 }
 
 #ifdef XDAMAGE_1_1_INTERFACE
@@ -954,7 +950,8 @@ CallCreateNewScreen(Display *dpy, int scrn, __GLXscreenConfigs *psc,
                                                             & driver_modes );
 
                                    filter_modes(&psc->configs, driver_modes);
-                                   _gl_context_modes_destroy( driver_modes );
+                                   filter_modes(&psc->visuals, driver_modes);
+                                   _gl_context_modes_destroy(driver_modes);
                                }
                            }
                        }