r600g: some DB bug workarounds for R6xx DB flushing
authorMarek Olšák <marek.olsak@amd.com>
Wed, 20 Aug 2014 15:22:41 +0000 (17:22 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 1 Sep 2014 19:18:40 +0000 (21:18 +0200)
Acked-by: Michel Dänzer <michel.daenzer@amd.com>
src/gallium/drivers/r600/r600_state.c

index 2dc9ec82971cfe98d68917bda0fe506f3969b31c..3d1700f5300a4bce6fe70f0fef00b3df5cc12920 100644 (file)
@@ -1610,6 +1610,13 @@ static void r600_emit_db_misc_state(struct r600_context *rctx, struct r600_atom
                                     S_028D0C_STENCIL_COPY_ENABLE(a->copy_stencil) |
                                     S_028D0C_COPY_CENTROID(1) |
                                     S_028D0C_COPY_SAMPLE(a->copy_sample);
+
+               if (rctx->b.chip_class == R600)
+                       db_render_override |= S_028D10_NOOP_CULL_DISABLE(1);
+
+               if (rctx->b.family == CHIP_RV610 || rctx->b.family == CHIP_RV630 ||
+                   rctx->b.family == CHIP_RV620 || rctx->b.family == CHIP_RV635)
+                       db_render_override |= S_028D10_FORCE_HIZ_ENABLE(V_028D10_FORCE_DISABLE);
        } else if (a->flush_depthstencil_in_place) {
                db_render_control |= S_028D0C_DEPTH_COMPRESS_DISABLE(1) |
                                     S_028D0C_STENCIL_COMPRESS_DISABLE(1);