Mesa (master): st/dri: respect driver's request to avoid mixed color/ depth bit configs

Ilia Mirkin imirkin at kemper.freedesktop.org
Tue Aug 23 22:32:40 UTC 2016


Module: Mesa
Branch: master
Commit: 361678edd776ca3012cbe231167e740f7af9c0b0
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=361678edd776ca3012cbe231167e740f7af9c0b0

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Sat Aug 20 22:42:45 2016 -0400

st/dri: respect driver's request to avoid mixed color/depth bit configs

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/gallium/state_trackers/dri/dri_screen.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/gallium/state_trackers/dri/dri_screen.c b/src/gallium/state_trackers/dri/dri_screen.c
index 5f4fb8a..79bcb5a 100644
--- a/src/gallium/state_trackers/dri/dri_screen.c
+++ b/src/gallium/state_trackers/dri/dri_screen.c
@@ -128,6 +128,7 @@ dri_fill_in_modes(struct dri_screen *screen)
    unsigned i;
    struct pipe_screen *p_screen = screen->base.screen;
    boolean pf_z16, pf_x8z24, pf_z24x8, pf_s8z24, pf_z24s8, pf_z32;
+   boolean mixed_color_depth;
 
    static const GLenum back_buffer_modes[] = {
       GLX_NONE, GLX_SWAP_UNDEFINED_OML, GLX_SWAP_COPY_OML
@@ -184,6 +185,9 @@ dri_fill_in_modes(struct dri_screen *screen)
       stencil_bits_array[depth_buffer_factor++] = 0;
    }
 
+   mixed_color_depth =
+      p_screen->get_param(p_screen, PIPE_CAP_MIXED_COLOR_DEPTH_BITS);
+
    assert(ARRAY_SIZE(mesa_formats) == ARRAY_SIZE(pipe_formats));
 
    /* Add configs. */
@@ -214,7 +218,7 @@ dri_fill_in_modes(struct dri_screen *screen)
                                         depth_buffer_factor, back_buffer_modes,
                                         ARRAY_SIZE(back_buffer_modes),
                                         msaa_modes, 1,
-                                        GL_TRUE, GL_FALSE);
+                                        GL_TRUE, !mixed_color_depth);
          configs = driConcatConfigs(configs, new_configs);
 
          /* Multi-sample configs without an accumulation buffer. */
@@ -224,7 +228,7 @@ dri_fill_in_modes(struct dri_screen *screen)
                                            depth_buffer_factor, back_buffer_modes,
                                            ARRAY_SIZE(back_buffer_modes),
                                            msaa_modes+1, num_msaa_modes-1,
-                                           GL_FALSE, GL_FALSE);
+                                           GL_FALSE, !mixed_color_depth);
             configs = driConcatConfigs(configs, new_configs);
          }
       }




More information about the mesa-commit mailing list