diff options
author | Ian Romanick <[email protected]> | 2011-02-10 15:48:27 -0800 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2011-08-16 14:38:39 -0700 |
commit | 54c48a95e6e0573886433f94ac83293876ffe03d (patch) | |
tree | cfac8d58d943e3d72a97b0df8f0afc2cf01a39e8 /src/mesa/program/prog_optimize.c | |
parent | ff2cfb8989cd79218dfe2cd8c3de20f1ca7418e6 (diff) |
mesa: Add partial constant propagation pass for Mesa IR
This cleans up some code generated by the IR-to-Mesa pass for i915.
In particular, some shaders involving arrays of constant matrices
result in really bad code.
v2: Silence several warnings from merging the gl_constant_value work.
Fix DP[23] folding. Add support for a bunch more opcodes that appear
in piglit runs on i915.
Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/mesa/program/prog_optimize.c')
-rw-r--r-- | src/mesa/program/prog_optimize.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mesa/program/prog_optimize.c b/src/mesa/program/prog_optimize.c index 3340ce0498b..25d9684b137 100644 --- a/src/mesa/program/prog_optimize.c +++ b/src/mesa/program/prog_optimize.c @@ -1358,6 +1358,8 @@ _mesa_optimize_program(struct gl_context *ctx, struct gl_program *program) any_change = GL_TRUE; if (_mesa_remove_dead_code_local(program)) any_change = GL_TRUE; + + any_change = _mesa_constant_fold(program) || any_change; _mesa_reallocate_registers(program); } while (any_change); } |