r600g: evergreen interpolation support.
authorDave Airlie <airlied@redhat.com>
Thu, 14 Oct 2010 04:40:51 +0000 (14:40 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 15 Oct 2010 04:59:17 +0000 (14:59 +1000)
commitfc6caef4cb67fb13642c5ebccee53019d1764df6
tree76657ab68c4d297eb619285f64beb5a6d57d1324
parent07a30e3d18a528a2dc8a247af5c43e7428be1743
r600g: evergreen interpolation support.

On evergreen, interpolation has moved into the fragment shader,
with the interpolation parmaters being passed via GPRs and LDS entries.

This works out the number of interps required and reserves GPR/LDS
storage for them, it also correctly routes face/position values which
aren't interpolated from the vertex shader.

Also if we noticed nothing is to be interpolated we always setup perspective
interpolation for one value otherwise the GPU appears to lockup.

This fixes about 15 piglit tests on evergreen.
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600_shader.c
src/gallium/drivers/r600/r600_shader.h