diff --git a/src/gallium/drivers/r600/r600_hw_context.c b/src/gallium/drivers/r600/r600_hw_context.c index f6dc418..3c0f226 100644 --- a/src/gallium/drivers/r600/r600_hw_context.c +++ b/src/gallium/drivers/r600/r600_hw_context.c @@ -649,7 +649,7 @@ void r600_flush_emit(struct r600_context *rctx) if (rctx->flags & R600_CONTEXT_FLUSH_AND_INV) { cs->buf[cs->cdw++] = PKT3(PKT3_EVENT_WRITE, 0, 0); cs->buf[cs->cdw++] = EVENT_TYPE(EVENT_TYPE_CACHE_FLUSH_AND_INV_EVENT) | EVENT_INDEX(0); - if (rctx->chip_class >= EVERGREEN) { + if (1/*rctx->chip_class >= EVERGREEN*/) { cp_coher_cntl = S_0085F0_CB0_DEST_BASE_ENA(1) | S_0085F0_CB1_DEST_BASE_ENA(1) | S_0085F0_CB2_DEST_BASE_ENA(1) | @@ -676,6 +676,7 @@ void r600_flush_emit(struct r600_context *rctx) S_0085F0_TC_ACTION_ENA(1) | S_0085F0_FULL_CACHE_ENA(1); } + emit_flush = 1; } if (rctx->flags & R600_CONTEXT_INVAL_READ_CACHES) { @@ -1161,7 +1162,7 @@ void r600_cp_dma_copy_buffer(struct r600_context *rctx, } /* Invalidate the read caches. */ - rctx->flags |= R600_CONTEXT_INVAL_READ_CACHES; + rctx->flags |= R600_CONTEXT_FLUSH_AND_INV; } void r600_need_dma_space(struct r600_context *ctx, unsigned num_dw)