From 2f6eb3afb725112b2a0b110493f5062f80a78a3f Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Sun, 26 Aug 2012 23:02:37 +0200 Subject: r600g: disable MSAA depth decompression on r6xx --- src/gallium/drivers/r600/r600_blit.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/gallium/drivers/r600/r600_blit.c') diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c index e9ed0740e65..5f39e0d54e1 100644 --- a/src/gallium/drivers/r600/r600_blit.c +++ b/src/gallium/drivers/r600/r600_blit.c @@ -145,6 +145,16 @@ void r600_blit_decompress_depth(struct pipe_context *ctx, if (!staging && !texture->dirty_level_mask) return; + max_sample = u_max_sample(&texture->resource.b.b); + + /* XXX Decompressing MSAA depth textures is broken on R6xx. + * There is also a hardlock if CMASK and FMASK are not present. + * Just skip this until we find out how to fix it. */ + if (rctx->chip_class == R600 && max_sample > 0) { + texture->dirty_level_mask = 0; + return; + } + if (rctx->family == CHIP_RV610 || rctx->family == CHIP_RV630 || rctx->family == CHIP_RV620 || rctx->family == CHIP_RV635) depth = 0.0f; @@ -158,7 +168,6 @@ void r600_blit_decompress_depth(struct pipe_context *ctx, rctx->db_misc_state.copy_sample = first_sample; r600_atom_dirty(rctx, &rctx->db_misc_state.atom); - max_sample = u_max_sample(&texture->resource.b.b); for (level = first_level; level <= last_level; level++) { if (!staging && !(texture->dirty_level_mask & (1 << level))) -- cgit v1.2.3