i965/fs: Fix broken math on values loaded from uniform buffers on gen6.
authorEric Anholt <eric@anholt.net>
Thu, 21 Feb 2013 02:00:47 +0000 (18:00 -0800)
committerEric Anholt <eric@anholt.net>
Fri, 22 Feb 2013 18:50:50 +0000 (10:50 -0800)
In a debug build this led to assertion failures, but on a non-debug
build the hardware would just reference the whole vec8 instead of the
same channel 8 times.

Fixes the new piglit glsl-1.40/uniform-buffer/fs-exp2.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57121
Note: This is a candidate for the stable branches
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_fs.cpp

index f3232b292719dc6b80edc2da0d9f13af24f77433..e53de663cbeab1a579b344954d53129e336cba11 100644 (file)
@@ -1929,6 +1929,7 @@ fs_visitor::register_coalesce()
 
       bool has_source_modifiers = (inst->src[0].abs ||
                                    inst->src[0].negate ||
+                                   inst->src[0].smear != -1 ||
                                    inst->src[0].file == UNIFORM);
 
       /* Found a move of a GRF to a GRF.  Let's see if we can coalesce