Mesa (master): r600g: fix constant buffer cache flushing

Marek Olšák mareko at kemper.freedesktop.org
Wed Sep 25 18:50:33 UTC 2013


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Wed Sep 18 22:46:25 2013 +0200

r600g: fix constant buffer cache flushing

Cc: "9.2" <mesa-stable at lists.freedesktop.org>

---

 src/gallium/drivers/r600/r600_hw_context.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_hw_context.c b/src/gallium/drivers/r600/r600_hw_context.c
index 9c0a78e..18e17bb 100644
--- a/src/gallium/drivers/r600/r600_hw_context.c
+++ b/src/gallium/drivers/r600/r600_hw_context.c
@@ -236,7 +236,11 @@ void r600_flush_emit(struct r600_context *rctx)
 	}
 
 	if (rctx->b.flags & R600_CONTEXT_INV_CONST_CACHE) {
-		cp_coher_cntl |= S_0085F0_SH_ACTION_ENA(1);
+		/* Direct constant addressing uses the shader cache.
+		 * Indirect contant addressing uses the vertex cache. */
+		cp_coher_cntl |= S_0085F0_SH_ACTION_ENA(1) |
+				 (rctx->has_vertex_cache ? S_0085F0_VC_ACTION_ENA(1)
+							 : S_0085F0_TC_ACTION_ENA(1));
 	}
 	if (rctx->b.flags & R600_CONTEXT_INV_VERTEX_CACHE) {
 		cp_coher_cntl |= rctx->has_vertex_cache ? S_0085F0_VC_ACTION_ENA(1)




More information about the mesa-commit mailing list