Module: Mesa Branch: master Commit: 8c7ac377b7a859705479a0b421d1dacc53ca240a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c7ac377b7a859705479a0b421d1dacc53ca240a
Author: Eric Anholt <e...@anholt.net> Date: Fri Oct 24 17:16:59 2014 +0100 vc4: Reuse uniform_data/contents indices when making uniforms. This allows vc4_opt_cse.c to CSE-away operations involving the same uniform values. total instructions in shared programs: 37341 -> 36906 (-1.16%) instructions in affected programs: 10233 -> 9798 (-4.25%) total uniforms in shared programs: 10523 -> 10320 (-1.93%) uniforms in affected programs: 2467 -> 2264 (-8.23%) --- src/gallium/drivers/vc4/vc4_program.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c index 0674e4f..c6b7edb 100644 --- a/src/gallium/drivers/vc4/vc4_program.c +++ b/src/gallium/drivers/vc4/vc4_program.c @@ -114,6 +114,13 @@ add_uniform(struct vc4_compile *c, enum quniform_contents contents, uint32_t data) { + for (int i = 0; i < c->num_uniforms; i++) { + if (c->uniform_contents[i] == contents && + c->uniform_data[i] == data) { + return (struct qreg) { QFILE_UNIF, i }; + } + } + uint32_t uniform = c->num_uniforms++; struct qreg u = { QFILE_UNIF, uniform }; _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit