diff options
author | Marek Olšák <[email protected]> | 2010-01-12 23:23:05 +0100 |
---|---|---|
committer | Corbin Simpson <[email protected]> | 2010-01-12 18:08:57 -0800 |
commit | a2926a2a8bbd72b6b78adf88478aa02c9624b289 (patch) | |
tree | b42fb416b6e89f0ca3b78b77df4b8a22ef251b7e /src | |
parent | 66334847744f2547a6891cbcf2191306a72f04ab (diff) |
Revert "r300g: Placate kernel checker by explicitly disabling depth test."
This reverts commit e920ee23b32f6031a7b8527b540566e7ada6af8a.
Assuming the FB state is not dirty and the DSA state is, then the depth test
will be re-enabled, making the kernel checker angry. Reverting the commit
fixes piglit/glsl-bug-22603.
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/r300/r300_emit.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c index 2f5df6a00a5..559651de646 100644 --- a/src/gallium/drivers/r300/r300_emit.c +++ b/src/gallium/drivers/r300/r300_emit.c @@ -122,8 +122,15 @@ void r300_emit_dsa_state(struct r300_context* r300, void* state) }*/ OUT_CS_REG_SEQ(R300_ZB_CNTL, 3); - OUT_CS(dsa->z_buffer_control); - OUT_CS(dsa->z_stencil_control); + + if (r300->framebuffer_state.zsbuf) { + OUT_CS(dsa->z_buffer_control); + OUT_CS(dsa->z_stencil_control); + } else { + OUT_CS(0); + OUT_CS(0); + } + OUT_CS(dsa->stencil_ref_mask); /* XXX it seems r3xx doesn't support STENCILREFMASK_BF */ @@ -388,7 +395,7 @@ void r300_emit_fb_state(struct r300_context* r300, assert(fb->nr_cbufs <= 4); BEGIN_CS((10 * fb->nr_cbufs) + (2 * (4 - fb->nr_cbufs)) + - (fb->zsbuf ? 10 : 3) + 6); + (fb->zsbuf ? 10 : 0) + 6); /* Flush and free renderbuffer caches. */ OUT_CS_REG(R300_RB3D_DSTCACHE_CTLSTAT, @@ -424,7 +431,7 @@ void r300_emit_fb_state(struct r300_context* r300, OUT_CS_REG(R300_US_OUT_FMT_0 + (4 * i), R300_US_OUT_FMT_UNUSED); } - /* Set up the Z/stencil buffer, or disable it. */ + /* Set up a zbuffer. */ if (fb->zsbuf) { surf = fb->zsbuf; tex = (struct r300_texture*)surf->texture; @@ -438,10 +445,6 @@ void r300_emit_fb_state(struct r300_context* r300, OUT_CS_REG_SEQ(R300_ZB_DEPTHPITCH, 1); OUT_CS_RELOC(tex->buffer, tex->pitch[surf->level], 0, RADEON_GEM_DOMAIN_VRAM, 0); - } else { - OUT_CS_REG_SEQ(R300_ZB_CNTL, 2); - OUT_CS(0x0); - OUT_CS(0x0); } END_CS; |