projects
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7835401
)
r600g: disable MSAA depth decompression on r6xx
author
Marek Olšák
<maraeo@gmail.com>
Sun, 26 Aug 2012 21:02:37 +0000
(23:02 +0200)
committer
Marek Olšák
<maraeo@gmail.com>
Thu, 30 Aug 2012 17:43:56 +0000
(19:43 +0200)
src/gallium/drivers/r600/r600_blit.c
patch
|
blob
|
history
diff --git
a/src/gallium/drivers/r600/r600_blit.c
b/src/gallium/drivers/r600/r600_blit.c
index e9ed0740e659bb0c5d79b94d5e12289996f48847..5f39e0d54e1f736eda0bd0628cc7ca328be09402 100644
(file)
--- 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;
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;
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);
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)))
for (level = first_level; level <= last_level; level++) {
if (!staging && !(texture->dirty_level_mask & (1 << level)))