i965/fs: Switch W and 1/W in Sandybridge interpolation setup.
authorKenneth Graunke <kenneth@whitecape.org>
Sun, 3 Apr 2011 08:39:28 +0000 (01:39 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Sun, 3 Apr 2011 01:58:16 +0000 (18:58 -0700)
commit5d7fefb9afbcc6f1d58a92d07c390e6b912c3b00
tree4d07a4deeda595d818853cf888bd033d5c60e3db
parenta019dd0d6e5bba00e8ee7818e004ee42ca507102
i965/fs: Switch W and 1/W in Sandybridge interpolation setup.

Various documentation mentions that "W" is handed to the WM stage,
but further digging seems to indicate that they really mean 1/W.

The code here is still unclear, but changing this fixes piglit
test "fragcoord_w" on Sandybridge as well as a Khronos ES2 conformance
test.  I also tested 3DMarkMobile ES2.0's taiji and hoverjet demos, as
well as Nexuiz, just to be safe.

NOTE: This is a candidate for the 7.10 branch.
src/mesa/drivers/dri/i965/brw_fs.cpp