diff options
author | Marek Olšák <[email protected]> | 2014-08-06 03:18:06 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2014-08-09 23:41:15 +0200 |
commit | 0e229b8c5aa5eb758cbc9e1176001e0f4d985a6a (patch) | |
tree | dc448e783eed592996cad5ec5ca3d1fdf392de25 /src/gallium/drivers/radeon | |
parent | 515269b3a73cd64ac9c017e8b3c698be9a5383f6 (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.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.h | 1 |
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 |