Mesa (master): vc4: Don' t look at back stencil state unless two-sided stencil is enabled.

Eric Anholt anholt at kemper.freedesktop.org
Tue Oct 21 14:17:37 UTC 2014


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

Author: Eric Anholt <eric at anholt.net>
Date:   Mon Oct 20 22:53:07 2014 +0100

vc4: Don't look at back stencil state unless two-sided stencil is enabled.

Fixes regressions in the next bugfix, because gallium util stuff leaves
the back stencil state as 0 if !back->enabled.

---

 src/gallium/drivers/vc4/vc4_state.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/vc4/vc4_state.c b/src/gallium/drivers/vc4/vc4_state.c
index 31f2424..99b5b3c 100644
--- a/src/gallium/drivers/vc4/vc4_state.c
+++ b/src/gallium/drivers/vc4/vc4_state.c
@@ -203,12 +203,16 @@ vc4_create_depth_stencil_alpha_state(struct pipe_context *pctx,
 
                 uint8_t front_writemask_bits =
                         tlb_stencil_setup_writemask(front->writemask);
-                uint8_t back_writemask_bits =
-                        tlb_stencil_setup_writemask(back->writemask);
+                uint8_t back_writemask = front->writemask;
+                uint8_t back_writemask_bits = front_writemask_bits;
 
                 so->stencil_uniforms[0] =
                         tlb_stencil_setup_bits(front, front_writemask_bits);
                 if (back->enabled) {
+                        back_writemask = back->writemask;
+                        back_writemask_bits =
+                                tlb_stencil_setup_writemask(back->writemask);
+
                         so->stencil_uniforms[0] |= (1 << 30);
                         so->stencil_uniforms[1] =
                                 tlb_stencil_setup_bits(back, back_writemask_bits);




More information about the mesa-commit mailing list