nvc0: front stencil mask and func mask methods are swapped

This commit is contained in:
Christoph Bumiller
2011-02-14 02:04:58 +01:00
parent a24e9bd497
commit 293a8d1b60
2 changed files with 10 additions and 8 deletions
+3 -3
View File
@@ -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
+7 -5
View File
@@ -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);
}