Mesa (master): st/mesa: make st_manager.c set have[Stencil|Depth] Buffer only if bits > 0

Luca Barbieri lb at kemper.freedesktop.org
Tue Mar 23 17:04:10 UTC 2010


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

Author: Luca Barbieri <luca at luca-barbieri.com>
Date:   Tue Mar 23 17:40:42 2010 +0100

st/mesa: make st_manager.c set have[Stencil|Depth]Buffer only if bits > 0

Fixes a segfault when clearing a non-existent stencil buffer.

---

 src/mesa/state_tracker/st_manager.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c
index ca3a29c..cac62e4 100644
--- a/src/mesa/state_tracker/st_manager.c
+++ b/src/mesa/state_tracker/st_manager.c
@@ -333,15 +333,15 @@ st_visual_to_context_mode(const struct st_visual *visual,
    }
 
    if (visual->depth_stencil_format != PIPE_FORMAT_NONE) {
-      mode->haveDepthBuffer = GL_TRUE;
-      mode->haveStencilBuffer = GL_TRUE;
-
       mode->depthBits =
          util_format_get_component_bits(visual->depth_stencil_format,
                UTIL_FORMAT_COLORSPACE_ZS, 0);
       mode->stencilBits =
          util_format_get_component_bits(visual->depth_stencil_format,
                UTIL_FORMAT_COLORSPACE_ZS, 1);
+
+      mode->haveDepthBuffer = mode->depthBits > 0;
+      mode->haveStencilBuffer = mode->stencilBits > 0;
    }
 
    if (visual->accum_format != PIPE_FORMAT_NONE) {




More information about the mesa-commit mailing list