From e0a7565832b567a2ffc65b08d21500ba5d914415 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Fri, 12 Jul 2013 09:31:28 -0400 Subject: r600g: don't use the CB/DB CP COHER logic on r6xx There are hw bugs. Flush and inv event is sufficient. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=66837 Signed-off-by: Alex Deucher --- src/gallium/drivers/r600/r600_hw_context.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/r600/r600_hw_context.c b/src/gallium/drivers/r600/r600_hw_context.c index 652329bfa3c..7bb4825ba96 100644 --- a/src/gallium/drivers/r600/r600_hw_context.c +++ b/src/gallium/drivers/r600/r600_hw_context.c @@ -246,13 +246,21 @@ void r600_flush_emit(struct r600_context *rctx) cp_coher_cntl |= S_0085F0_TC_ACTION_ENA(1); } - if (rctx->flags & R600_CONTEXT_FLUSH_AND_INV_DB) { + /* Don't use the DB CP COHER logic on r6xx. + * There are hw bugs. + */ + if (rctx->chip_class >= R700 && + (rctx->flags & R600_CONTEXT_FLUSH_AND_INV_DB)) { cp_coher_cntl |= S_0085F0_DB_ACTION_ENA(1) | S_0085F0_DB_DEST_BASE_ENA(1) | S_0085F0_SMX_ACTION_ENA(1); } - if (rctx->flags & R600_CONTEXT_FLUSH_AND_INV_CB) { + /* Don't use the CB CP COHER logic on r6xx. + * There are hw bugs. + */ + if (rctx->chip_class >= R700 && + (rctx->flags & R600_CONTEXT_FLUSH_AND_INV_CB)) { cp_coher_cntl |= S_0085F0_CB_ACTION_ENA(1) | S_0085F0_CB0_DEST_BASE_ENA(1) | S_0085F0_CB1_DEST_BASE_ENA(1) | -- cgit v1.2.3