i965: Fix computation of abs(-x) in FS
authorPaul Berry <stereotype441@gmail.com>
Fri, 7 Oct 2011 03:58:18 +0000 (20:58 -0700)
committerPaul Berry <stereotype441@gmail.com>
Tue, 11 Oct 2011 18:08:13 +0000 (11:08 -0700)
commitd06cc42c3c85382600176d118d8bf492b4de6a55
tree79ba7d98a3ae6fae438555c594749dc63a0a71c3
parent7f3de70c3c8e9ec9dfc34ddd3a08c4b73c007541
i965: Fix computation of abs(-x) in FS

When updating a register reference to reflect the fact that we were
taking its absolute value, the fragment shader back-end failed to
clear the negate flag, resulting in abs(-x) getting computed as
-abs(x).

I also found (and fixed) a similar problem in brw_eu.h, but I'm not
aware of an actual manifestation of that problem.

Fixes piglit test glsl-fs-abs-neg-with-intermediate.
src/mesa/drivers/dri/i965/brw_eu.h
src/mesa/drivers/dri/i965/brw_fs.cpp