i965: Fix flat integral varyings.
authorPaul Berry <stereotype441@gmail.com>
Tue, 25 Oct 2011 00:46:26 +0000 (17:46 -0700)
committerPaul Berry <stereotype441@gmail.com>
Mon, 31 Oct 2011 18:29:44 +0000 (11:29 -0700)
commit9734bd05608c00a1d84851f3d46d5deb52e75d5e
tree33f394709151227e0c282e63a01122e2302ab010
parentfa0066ae2b2d304065ee8d93d9b5ecc8b457425a
i965: Fix flat integral varyings.

Previously, the vertex and fragment shader back-ends assumed that all
varyings were floats.  In GLSL 1.30 this is no longer true--they can
also be of integral types provided that they have an interpolation
qualifier of "flat".

This required two changes in each back-end: assigning the correct type
to the register that holds the varying value during shader execution,
and assigning the correct type to the register that ties the varying
value to the rest of the graphics pipeline (the message register in
the case of VS, and the payload register in the case of FS).

Fixes piglit tests fs-int-interpolation and fs-uint-interpolation.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp