diff options
author | Ilia Mirkin <[email protected]> | 2016-05-22 14:34:28 -0400 |
---|---|---|
committer | Ilia Mirkin <[email protected]> | 2016-05-22 14:48:56 -0400 |
commit | cb9a51d1f6db4c5a3baa2aed309875bf2e8746bd (patch) | |
tree | a880809b0bc6142b9964d500b141e433750c539b /src/gallium/drivers | |
parent | f57a8440d53b8cdffb78d16bfed0c15e6e8abd5d (diff) |
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 <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/nouveau/nv30/nv30_clear.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_clear.c b/src/gallium/drivers/nouveau/nv30/nv30_clear.c index 118cac77277..c8fa38e20c7 100644 --- a/src/gallium/drivers/nouveau/nv30/nv30_clear.c +++ b/src/gallium/drivers/nouveau/nv30/nv30_clear.c @@ -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... */ |