Mesa (master): nvc0: front stencil mask and func mask methods are swapped

Christoph Bumiller chrisbmr at kemper.freedesktop.org
Wed Feb 16 14:48:35 UTC 2011


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

Author: Christoph Bumiller <e0425955 at student.tuwien.ac.at>
Date:   Mon Feb 14 02:04:58 2011 +0100

nvc0: front stencil mask and func mask methods are swapped

---

 src/gallium/drivers/nvc0/nvc0_3d.xml.h |    6 +++---
 src/gallium/drivers/nvc0/nvc0_state.c  |   12 +++++++-----
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/gallium/drivers/nvc0/nvc0_3d.xml.h b/src/gallium/drivers/nvc0/nvc0_3d.xml.h
index 4b1325a..59da15e 100644
--- a/src/gallium/drivers/nvc0/nvc0_3d.xml.h
+++ b/src/gallium/drivers/nvc0/nvc0_3d.xml.h
@@ -575,7 +575,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_BLEND_ENABLE__ESIZE				0x00000004
 #define NVC0_3D_BLEND_ENABLE__LEN				0x00000008
 
-#define NVC0_3D_STENCIL_FRONT_ENABLE				0x00001380
+#define NVC0_3D_STENCIL_ENABLE					0x00001380
 
 #define NVC0_3D_STENCIL_FRONT_OP_FAIL				0x00001384
 #define NVC0_3D_STENCIL_FRONT_OP_FAIL_ZERO			0x00000000
@@ -619,9 +619,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_STENCIL_FRONT_FUNC_REF				0x00001394
 
-#define NVC0_3D_STENCIL_FRONT_MASK				0x00001398
+#define NVC0_3D_STENCIL_FRONT_FUNC_MASK				0x00001398
 
-#define NVC0_3D_STENCIL_FRONT_FUNC_MASK				0x0000139c
+#define NVC0_3D_STENCIL_FRONT_MASK				0x0000139c
 
 #define NVC0_3D_DRAW_TFB_BASE					0x000013a4
 
diff --git a/src/gallium/drivers/nvc0/nvc0_state.c b/src/gallium/drivers/nvc0/nvc0_state.c
index 7fb91b1..7f59d40 100644
--- a/src/gallium/drivers/nvc0/nvc0_state.c
+++ b/src/gallium/drivers/nvc0/nvc0_state.c
@@ -284,20 +284,21 @@ nvc0_zsa_state_create(struct pipe_context *pipe,
    }
 
    if (cso->stencil[0].enabled) {
-      SB_BEGIN_3D(so, STENCIL_FRONT_ENABLE, 5);
+      SB_BEGIN_3D(so, STENCIL_ENABLE, 5);
       SB_DATA    (so, 1);
       SB_DATA    (so, nvgl_stencil_op(cso->stencil[0].fail_op));
       SB_DATA    (so, nvgl_stencil_op(cso->stencil[0].zfail_op));
       SB_DATA    (so, nvgl_stencil_op(cso->stencil[0].zpass_op));
       SB_DATA    (so, nvgl_comparison_op(cso->stencil[0].func));
-      SB_BEGIN_3D(so, STENCIL_FRONT_MASK, 2);
-      SB_DATA    (so, cso->stencil[0].writemask);
+      SB_BEGIN_3D(so, STENCIL_FRONT_FUNC_MASK, 2);
       SB_DATA    (so, cso->stencil[0].valuemask);
+      SB_DATA    (so, cso->stencil[0].writemask);
    } else {
-      SB_IMMED_3D(so, STENCIL_FRONT_ENABLE, 0);
+      SB_IMMED_3D(so, STENCIL_ENABLE, 0);
    }
 
    if (cso->stencil[1].enabled) {
+      assert(cso->stencil[0].enabled);
       SB_BEGIN_3D(so, STENCIL_TWO_SIDE_ENABLE, 5);
       SB_DATA    (so, 1);
       SB_DATA    (so, nvgl_stencil_op(cso->stencil[1].fail_op));
@@ -307,7 +308,8 @@ nvc0_zsa_state_create(struct pipe_context *pipe,
       SB_BEGIN_3D(so, STENCIL_BACK_MASK, 2);
       SB_DATA    (so, cso->stencil[1].writemask);
       SB_DATA    (so, cso->stencil[1].valuemask);
-   } else {
+   } else
+   if (cso->stencil[0].enabled) {
       SB_IMMED_3D(so, STENCIL_TWO_SIDE_ENABLE, 0);
    }
     




More information about the mesa-commit mailing list