Mesa (master): r600g: don't use the CB/DB CP COHER logic on r6xx

Alex Deucher agd5f at kemper.freedesktop.org
Fri Jul 12 22:08:24 UTC 2013


Module: Mesa
Branch: master
Commit: e0a7565832b567a2ffc65b08d21500ba5d914415
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e0a7565832b567a2ffc65b08d21500ba5d914415

Author: Alex Deucher <alexander.deucher at amd.com>
Date:   Fri Jul 12 09:31:28 2013 -0400

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 <alexander.deucher at amd.com>

---

 src/gallium/drivers/r600/r600_hw_context.c |   12 ++++++++++--
 1 files 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 652329b..7bb4825 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) |




More information about the mesa-commit mailing list