From: Marek Olšák <marek.ol...@amd.com>

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

diff --git a/src/gallium/drivers/radeon/r600_buffer_common.c 
b/src/gallium/drivers/radeon/r600_buffer_common.c
index fc5f6c2..d5ee188 100644
--- a/src/gallium/drivers/radeon/r600_buffer_common.c
+++ b/src/gallium/drivers/radeon/r600_buffer_common.c
@@ -111,7 +111,8 @@ bool r600_init_resource(struct r600_common_screen *rscreen,
 
        switch (res->b.b.usage) {
        case PIPE_USAGE_STREAM:
-               flags = RADEON_FLAG_GTT_WC;
+               if (!(rscreen->debug_flags & DBG_NO_WC))
+                       flags = RADEON_FLAG_GTT_WC;
                /* fall through */
        case PIPE_USAGE_STAGING:
                /* Transfers are likely to occur more often with these 
resources. */
@@ -133,7 +134,8 @@ bool r600_init_resource(struct r600_common_screen *rscreen,
        default:
                /* Not listing GTT here improves performance in some apps. */
                res->domains = RADEON_DOMAIN_VRAM;
-               flags |= RADEON_FLAG_GTT_WC;
+               if (!(rscreen->debug_flags & DBG_NO_WC))
+                       flags |= RADEON_FLAG_GTT_WC;
                break;
        }
 
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c 
b/src/gallium/drivers/radeon/r600_pipe_common.c
index 79b4b54..b12992d 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -351,6 +351,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 fbd2a21..01c4bd3 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -95,6 +95,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
 
-- 
2.1.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to