gallium: fix SSE shadow texture instructions
authorBrian Paul <brianp@vmware.com>
Wed, 29 Jul 2009 22:27:03 +0000 (16:27 -0600)
committerBrian Paul <brianp@vmware.com>
Wed, 29 Jul 2009 22:33:58 +0000 (16:33 -0600)
commitb9889517f5e7eceb14bd103bbdff9ff47ce6ed25
tree3ce1520391909f877eefa91c9b1b464fac5d2b37
parent9c4c9f2837e08c5f69bc0d12bce7a656b2291837
gallium: fix SSE shadow texture instructions

When sampling a 2D shadow map we need 3 texcoord components, not 2.
The third component (distance from light source) is compared against
the texture sample to return the result (visible vs. occluded).

Also, enable proper handling of TGSI_TEXTURE_SHADOW targets in Mesa->TGSI
translation.  There's a possibility for breakage in gallium drivers if
they fail to handle the TGSI_TEXTURE_SHADOW1D / TGSI_TEXTURE_SHADOW2D /
TGSI_TEXTURE_SHADOWRECT texture targets for TGSI_OPCODE_TEX/TXP instructions,
but that should be easy to fix.

With these changes, progs/demos/shadowtex.c renders properly again with
softpipe.
src/gallium/auxiliary/tgsi/tgsi_sse2.c
src/mesa/state_tracker/st_mesa_to_tgsi.c