diff options
author | Rob Clark <[email protected]> | 2014-09-06 12:45:17 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2014-09-09 19:42:18 -0400 |
commit | fd4884e9291cd941c31e9ed7858a42bec2f1eca8 (patch) | |
tree | 85e8b300e6642a2386ceb16bbf253ff8431f386c /src/gallium/drivers/freedreno/ir3/ir3_compiler.c | |
parent | e387fdd2351b87f1614cebdc87a4b2aa3af8c3f6 (diff) |
freedreno/ir3: add no-copy-propagate fallback step
Most of the things the new compiler still has trouble with basically
amount to cp stage removing too many copies. But without the cp stage,
the shaders the new compiler produces are still better (perf and
correctness) than the old compiler. So a simple thing to do until I
have more time to work on it is first trying falling back to new
compiler without cp, before finally falling back to old compiler.
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/ir3/ir3_compiler.c')
-rw-r--r-- | src/gallium/drivers/freedreno/ir3/ir3_compiler.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_compiler.c b/src/gallium/drivers/freedreno/ir3/ir3_compiler.c index aa3773e9e98..affb775f75b 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3_compiler.c +++ b/src/gallium/drivers/freedreno/ir3/ir3_compiler.c @@ -2552,7 +2552,8 @@ compile_dump(struct ir3_compile_context *ctx) int ir3_compile_shader(struct ir3_shader_variant *so, - const struct tgsi_token *tokens, struct ir3_shader_key key) + const struct tgsi_token *tokens, struct ir3_shader_key key, + bool cp) { struct ir3_compile_context ctx; struct ir3_block *block; @@ -2631,7 +2632,8 @@ ir3_compile_shader(struct ir3_shader_variant *so, ir3_dump_instr_list(block->head); } - ir3_block_cp(block); + if (cp) + ir3_block_cp(block); if (fd_mesa_debug & FD_DBG_OPTDUMP) compile_dump(&ctx); |