nv30: reset the stencil mask when fast-clearing

Apparently the stencil mask applies to clears on nv30/nv40. Reset it to
0xff before doing a stencil clear. This fixes gl-1.0-readpixsanity and
a number of other piglit tests.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
Ilia Mirkin 2016-05-22 14:34:28 -04:00
parent f57a8440d5
commit cb9a51d1f6
1 changed files with 6 additions and 1 deletions

View File

@ -73,8 +73,13 @@ nv30_clear(struct pipe_context *pipe, unsigned buffers,
zeta = pack_zeta(fb->zsbuf->format, depth, stencil);
if (buffers & PIPE_CLEAR_DEPTH)
mode |= NV30_3D_CLEAR_BUFFERS_DEPTH;
if (buffers & PIPE_CLEAR_STENCIL)
if (buffers & PIPE_CLEAR_STENCIL) {
mode |= NV30_3D_CLEAR_BUFFERS_STENCIL;
BEGIN_NV04(push, NV30_3D(STENCIL_ENABLE(0)), 2);
PUSH_DATA (push, 0);
PUSH_DATA (push, 0x000000ff);
nv30->dirty |= NV30_NEW_ZSA;
}
}
/*XXX: wtf? fixes clears sometimes not clearing on nv3x... */