Mesa (master): gallium/radeon: add a debug flag not to use write combining (v2)

Marek Olšák mareko at kemper.freedesktop.org
Mon Aug 10 16:29:50 UTC 2015


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Sun Aug  2 16:22:43 2015 +0200

gallium/radeon: add a debug flag not to use write combining (v2)

v2: just clear the flag before the allocation

Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>

---

 src/gallium/drivers/radeon/r600_buffer_common.c |    3 +++
 src/gallium/drivers/radeon/r600_pipe_common.c   |    1 +
 src/gallium/drivers/radeon/r600_pipe_common.h   |    1 +
 3 files changed, 5 insertions(+)

diff --git a/src/gallium/drivers/radeon/r600_buffer_common.c b/src/gallium/drivers/radeon/r600_buffer_common.c
index 5b5c063..0f788b7 100644
--- a/src/gallium/drivers/radeon/r600_buffer_common.c
+++ b/src/gallium/drivers/radeon/r600_buffer_common.c
@@ -161,6 +161,9 @@ bool r600_init_resource(struct r600_common_screen *rscreen,
 		flags |= RADEON_FLAG_NO_CPU_ACCESS;
 	}
 
+	if (rscreen->debug_flags & DBG_NO_WC)
+		flags &= ~RADEON_FLAG_GTT_WC;
+
 	/* Allocate a new resource. */
 	new_buf = rscreen->ws->buffer_create(rscreen->ws, size, alignment,
 					     use_reusable_pool,
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c
index 3f1c0f0..c9b8929 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -355,6 +355,7 @@ static const struct debug_named_value common_debug_options[] = {
 	{ "switch_on_eop", DBG_SWITCH_ON_EOP, "Program WD/IA to switch on end-of-packet." },
 	{ "forcedma", DBG_FORCE_DMA, "Use asynchronous DMA for all operations when possible." },
 	{ "precompile", DBG_PRECOMPILE, "Compile one shader variant at shader creation." },
+	{ "nowc", DBG_NO_WC, "Disable GTT write combining" },
 
 	DEBUG_NAMED_VALUE_END /* must be last */
 };
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h
index ce3f396..85ac22f 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -97,6 +97,7 @@
 #define DBG_FORCE_DMA		(1llu << 38)
 #define DBG_PRECOMPILE		(1llu << 39)
 #define DBG_INFO		(1llu << 40)
+#define DBG_NO_WC		(1llu << 41)
 
 #define R600_MAP_BUFFER_ALIGNMENT 64
 




More information about the mesa-commit mailing list