From 4f17e026bb99c173444ff5ca7d0b782ed89ee604 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Sun, 19 Oct 2014 14:55:32 -0400 Subject: [PATCH] freedreno/ir3: add debug flag to disable cp FD_MESA_DEBUG=nocp will disable copy propagation pass. Signed-off-by: Rob Clark --- src/gallium/drivers/freedreno/freedreno_screen.c | 1 + src/gallium/drivers/freedreno/freedreno_util.h | 1 + src/gallium/drivers/freedreno/ir3/ir3_cmdline.c | 7 +++++++ src/gallium/drivers/freedreno/ir3/ir3_compiler.c | 2 +- 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c index bc6ff78aa73..ddc7302c5c8 100644 --- a/src/gallium/drivers/freedreno/freedreno_screen.c +++ b/src/gallium/drivers/freedreno/freedreno_screen.c @@ -70,6 +70,7 @@ static const struct debug_named_value debug_options[] = { {"optmsgs", FD_DBG_OPTMSGS,"Enable optimizater debug messages"}, {"optdump", FD_DBG_OPTDUMP,"Dump shader DAG to .dot files"}, {"glsl130", FD_DBG_GLSL130,"Temporary flag to enable GLSL 130 on a3xx+"}, + {"nocp", FD_DBG_NOCP, "Disable copy-propagation"}, DEBUG_NAMED_VALUE_END }; diff --git a/src/gallium/drivers/freedreno/freedreno_util.h b/src/gallium/drivers/freedreno/freedreno_util.h index f1a1e6e7c55..36a5995c43d 100644 --- a/src/gallium/drivers/freedreno/freedreno_util.h +++ b/src/gallium/drivers/freedreno/freedreno_util.h @@ -66,6 +66,7 @@ enum adreno_stencil_op fd_stencil_op(unsigned op); #define FD_DBG_OPTMSGS 0x0400 #define FD_DBG_OPTDUMP 0x0800 #define FD_DBG_GLSL130 0x1000 +#define FD_DBG_NOCP 0x2000 extern int fd_mesa_debug; extern bool fd_binning_enabled; diff --git a/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c b/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c index 86239b45465..652ec163f80 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c +++ b/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c @@ -133,6 +133,7 @@ static void print_usage(void) printf(" --saturate-s MASK - bitmask of samplers to saturate S coord\n"); printf(" --saturate-t MASK - bitmask of samplers to saturate T coord\n"); printf(" --saturate-r MASK - bitmask of samplers to saturate R coord\n"); + printf(" --nocp - disable copy propagation\n"); printf(" --help - show this message\n"); } @@ -199,6 +200,12 @@ int main(int argc, char **argv) continue; } + if (!strcmp(argv[n], "--nocp")) { + fd_mesa_debug |= FD_DBG_NOCP; + n++; + continue; + } + if (!strcmp(argv[n], "--help")) { print_usage(); return 0; diff --git a/src/gallium/drivers/freedreno/ir3/ir3_compiler.c b/src/gallium/drivers/freedreno/ir3/ir3_compiler.c index dc4f985f4b7..233f1748b05 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3_compiler.c +++ b/src/gallium/drivers/freedreno/ir3/ir3_compiler.c @@ -3175,7 +3175,7 @@ ir3_compile_shader(struct ir3_shader_variant *so, ir3_dump_instr_list(block->head); } - if (cp) + if (cp && !(fd_mesa_debug & FD_DBG_NOCP)) ir3_block_cp(block); if (fd_mesa_debug & FD_DBG_OPTDUMP) -- 2.30.2