i965: Only emit interpolation setup if there are actual FS inputs.
authorKenneth Graunke <kenneth@whitecape.org>
Sun, 20 Oct 2013 04:27:37 +0000 (21:27 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 22 Oct 2013 06:31:15 +0000 (23:31 -0700)
commit43b05b8fac68784bc8d61851125bd49783e5ebd0
tree40cdf46cdee35481e727fa5ceb74afe3393def4d
parentc4de86fd26520f1bc5650c1f08a05fa0845dd881
i965: Only emit interpolation setup if there are actual FS inputs.

Dead code elimination would get rid of the extra instructions, but
skipping this saves iterations through the optimization loop.

From shader-db:

      N     Min     Max        Median           Avg        Stddev
x 14672       3      16             3     3.1334515    0.59904168
+ 14672       1      16             3     2.8955153    0.77732963
Difference at 95.0% confidence
        -0.237936 +/- 0.0158798
        -7.59342% +/- 0.506783%
        (Student's t, pooled s = 0.693935)

Embarassingly, the classic shadow mapping shader:

   void main() { }

used to require three iterations through the optimization loop.
With this patch, it only requires one (which makes no progress).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_fs.cpp