summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gallium/winsys/r600/drm/r600_hw_context.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/winsys/r600/drm/r600_hw_context.c b/src/gallium/winsys/r600/drm/r600_hw_context.c
index b8a8108fb12..ff99143485b 100644
--- a/src/gallium/winsys/r600/drm/r600_hw_context.c
+++ b/src/gallium/winsys/r600/drm/r600_hw_context.c
@@ -812,6 +812,10 @@ void r600_context_bo_flush(struct r600_context *ctx, unsigned flush_flags,
use_event_flush = TRUE;
if (use_event_flush && (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)
+ r600_context_flush_all(ctx, S_0085F0_CB1_DEST_BASE_ENA(1));
+
ctx->pm4[ctx->pm4_cdwords++] = PKT3(PKT3_EVENT_WRITE, 0, ctx->predicate_drawing);
ctx->pm4[ctx->pm4_cdwords++] = EVENT_TYPE(EVENT_TYPE_CACHE_FLUSH_AND_INV_EVENT) | EVENT_INDEX(0);
ctx->flags &= ~R600_CONTEXT_CHECK_EVENT_FLUSH;