summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeon
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2014-08-06 03:18:06 +0200
committerMarek Olšák <[email protected]>2014-08-09 23:41:15 +0200
commit0e229b8c5aa5eb758cbc9e1176001e0f4d985a6a (patch)
treedc448e783eed592996cad5ec5ca3d1fdf392de25 /src/gallium/drivers/radeon
parent515269b3a73cd64ac9c017e8b3c698be9a5383f6 (diff)
radeonsi: always prefer SWITCH_ON_EOP(0) on CIK
The code is rewritten to take known constraints into account, while always using 0 by default. This should improve performance for multi-SE parts in theory. A debug option is also added for easier debugging. (If there are hangs, use the option. If the hangs go away, you have found the problem.) Reviewed-by: Alex Deucher <[email protected]> v2: fix a typo, set max_se for evergreen GPUs according to the kernel driver
Diffstat (limited to 'src/gallium/drivers/radeon')
-rw-r--r--src/gallium/drivers/radeon/r600_pipe_common.c2
-rw-r--r--src/gallium/drivers/radeon/r600_pipe_common.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c
index 3476021138a..eb44d7255ba 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -239,7 +239,6 @@ static const struct debug_named_value common_debug_options[] = {
{ "vm", DBG_VM, "Print virtual addresses when creating resources" },
{ "trace_cs", DBG_TRACE_CS, "Trace cs and write rlockup_<csid>.c file with faulty cs" },
-
/* shaders */
{ "fs", DBG_FS, "Print fetch shaders" },
{ "vs", DBG_VS, "Print vertex shaders" },
@@ -254,6 +253,7 @@ static const struct debug_named_value common_debug_options[] = {
{ "noinvalrange", DBG_NO_DISCARD_RANGE, "Disable handling of INVALIDATE_RANGE map flags" },
{ "no2d", DBG_NO_2D_TILING, "Disable 2D tiling" },
{ "notiling", DBG_NO_TILING, "Disable tiling" },
+ { "switch_on_eop", DBG_SWITCH_ON_EOP, "Program WD/IA to switch on end-of-packet." },
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 dcec2bb3b4b..ac69d5b8746 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -93,6 +93,7 @@
#define DBG_NO_DISCARD_RANGE (1 << 12)
#define DBG_NO_2D_TILING (1 << 13)
#define DBG_NO_TILING (1 << 14)
+#define DBG_SWITCH_ON_EOP (1 << 15)
/* The maximum allowed bit is 15. */
#define R600_MAP_BUFFER_ALIGNMENT 64