diff options
author | Eric Anholt <[email protected]> | 2014-09-29 09:39:46 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2014-09-29 10:07:24 -0700 |
commit | 7a85ebf6e211423c98bb045ad21026c5ffeaa9bb (patch) | |
tree | 5fec8f15cf8446ab6a98833e9d185c9e3c25670b /src/gallium/drivers/vc4/vc4_program.c | |
parent | 3386e95994ec77248f71dedf49f996e2078f8cea (diff) |
vc4: Stop trying to reuse temporaries that store uniform values.
Almost always, the MOV will get copy propagated out. Even if it doesn't,
it's probably better to just reload the uniform at next use (to reduce
register pressure) rather than try to save instruction count.
I was looking at this because in the presence of texturing (which calls
add_uniform() directly to get the uniform load forced into the
instruction) the c->uniform_contents indices don't match 1:1 with the
temporary qregs.
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_program.c')
-rw-r--r-- | src/gallium/drivers/vc4/vc4_program.c | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c index 8d243374dae..a5011039be2 100644 --- a/src/gallium/drivers/vc4/vc4_program.c +++ b/src/gallium/drivers/vc4/vc4_program.c @@ -111,19 +111,8 @@ static struct qreg get_temp_for_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 c->uniforms[i]; - } - struct qreg u = add_uniform(c, contents, data); struct qreg t = qir_MOV(c, u); - - resize_qreg_array(c, &c->uniforms, &c->uniforms_array_size, - u.index + 1); - - c->uniforms[u.index] = t; return t; } |