vc4: Don't bother lowering uniforms when the same value is used twice.
authorEric Anholt <eric@anholt.net>
Thu, 12 Nov 2015 01:09:40 +0000 (17:09 -0800)
committerEric Anholt <eric@anholt.net>
Wed, 18 Nov 2015 01:45:23 +0000 (17:45 -0800)
commitdd05ffebfcb5d2e7ca44def1907aa2fbadd5e19d
treec8f2b98de60ee51131fefe80b3f2581929a8cdc2
parentdffe7260cd5f9c70df4b817c26a4268ddad2475c
vc4: Don't bother lowering uniforms when the same value is used twice.

DEQP likes to do math on uniforms, and the "fmaxabs dst, uni, uni" to get
the absolute value would get lowered.  The lowering doesn't bother to try
to restrict the lifetime of the lowered uniforms, so we'd end up register
allocation failng due to this on 5 of the tests (More tests still fail in
RA, which look like we'll need to reduce lowered uniform lifetimes to
fix).

No changes on shader-db, though fewer extra MOVs are generated on even
glxgears (MOVs pair well enough that it ends up being the same instruction
count).
src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c