[Mesa-dev] [PATCH 08/10] st/dri: don't expose MSAA configs with accumulation buffer

Marek Olšák maraeo at gmail.com
Mon Dec 3 16:07:17 PST 2012


---
 src/gallium/state_trackers/dri/common/dri_screen.c |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/gallium/state_trackers/dri/common/dri_screen.c b/src/gallium/state_trackers/dri/common/dri_screen.c
index 96efa1f..df2cd3f 100644
--- a/src/gallium/state_trackers/dri/common/dri_screen.c
+++ b/src/gallium/state_trackers/dri/common/dri_screen.c
@@ -164,13 +164,25 @@ dri_fill_in_modes(struct dri_screen *screen)
       }
 
       if (num_msaa_modes) {
+         /* Single-sample configs with an accumulation buffer. */
          new_configs = driCreateConfigs(mesa_formats[format],
                                         depth_bits_array, stencil_bits_array,
                                         depth_buffer_factor, back_buffer_modes,
                                         Elements(back_buffer_modes),
-                                        msaa_modes, num_msaa_modes,
+                                        msaa_modes, 1,
                                         GL_TRUE);
          configs = driConcatConfigs(configs, new_configs);
+
+         /* Multi-sample configs without an accumulation buffer. */
+         if (num_msaa_modes > 1) {
+            new_configs = driCreateConfigs(mesa_formats[format],
+                                           depth_bits_array, stencil_bits_array,
+                                           depth_buffer_factor, back_buffer_modes,
+                                           Elements(back_buffer_modes),
+                                           msaa_modes+1, num_msaa_modes-1,
+                                           GL_FALSE);
+            configs = driConcatConfigs(configs, new_configs);
+         }
       }
    }
 
-- 
1.7.10.4



More information about the mesa-dev mailing list