Fix a problem with 24-bit screens. Modes with 0 stencil bits were
authorIan Romanick <idr@us.ibm.com>
Fri, 27 Feb 2004 19:11:08 +0000 (19:11 +0000)
committerIan Romanick <idr@us.ibm.com>
Fri, 27 Feb 2004 19:11:08 +0000 (19:11 +0000)
erroneously marked as GLX_SLOW_CONFIG.

src/mesa/drivers/dri/r200/r200_screen.c

index 45d7c1699e0ac5e784d662eb05e5fa4ee2509572..c3fa252a72db000e80289f58a85ddced649e5493 100644 (file)
@@ -200,10 +200,8 @@ r200FillInModes( unsigned pixel_bits, unsigned depth_bits,
        GLX_NONE, GLX_SWAP_UNDEFINED_OML /*, GLX_SWAP_COPY_OML */
     };
 
-    int depth_buffer_modes[2][2] = {
-       { 0, 0 },
-       { 0, 0 }
-    };
+    int depth_buffer_modes[2][2];
+
 
     depth_buffer_modes[0][0] = depth_bits;
     depth_buffer_modes[1][0] = depth_bits;
@@ -212,6 +210,7 @@ r200FillInModes( unsigned pixel_bits, unsigned depth_bits,
      * with a stencil buffer.  It will be a sw fallback, but some apps won't
      * care about that.
      */
+    depth_buffer_modes[0][1] = 0;
     depth_buffer_modes[1][1] = (stencil_bits == 0) ? 8 : stencil_bits;
 
     depth_buffer_factor = ((depth_bits != 0) || (stencil_bits != 0)) ? 2 : 1;
@@ -238,8 +237,8 @@ r200FillInModes( unsigned pixel_bits, unsigned depth_bits,
     /* Mark the visual as slow if there are "fake" stencil bits.
      */
     for ( m = modes ; m != NULL ; m = m->next ) {
-       if ( m->stencilBits != stencil_bits ) {
-               m->visualRating = GLX_SLOW_CONFIG;
+       if ( (m->stencilBits != 0) && (m->stencilBits != stencil_bits) ) {
+           m->visualRating = GLX_SLOW_CONFIG;
        }
     }