OSDN Git Service

r600g: fix flushes on rs780/rs880
authorAlex Deucher <alexdeucher@gmail.com>
Wed, 11 May 2011 12:09:35 +0000 (08:09 -0400)
committerAlex Deucher <alexdeucher@gmail.com>
Wed, 11 May 2011 16:10:01 +0000 (12:10 -0400)
They need the same hack as rv670.

Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=35312

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
src/gallium/winsys/r600/drm/r600_hw_context.c

index 0514bbe..5eafece 100644 (file)
@@ -810,7 +810,9 @@ void r600_context_bo_flush(struct r600_context *ctx, unsigned flush_flags,
             G_0085F0_DB_ACTION_ENA(flush_flags))) {
                if (ctx->flags & R600_CONTEXT_CHECK_EVENT_FLUSH) {
                        /* the rv670 seems to fail fbo-generatemipmap unless we flush the CB1 dest base ena */
-                       if (ctx->radeon->family == CHIP_RV670) {
+                       if ((ctx->radeon->family == CHIP_RV670) ||
+                           (ctx->radeon->family == CHIP_RS780) ||
+                           (ctx->radeon->family == CHIP_RS880)) {
                                ctx->pm4[ctx->pm4_cdwords++] = PKT3(PKT3_SURFACE_SYNC, 3, ctx->predicate_drawing);
                                ctx->pm4[ctx->pm4_cdwords++] = S_0085F0_CB1_DEST_BASE_ENA(1);     /* CP_COHER_CNTL */
                                ctx->pm4[ctx->pm4_cdwords++] = 0xffffffff;      /* CP_COHER_SIZE */