softpipe: try to beat new dx10-style sample opcodes into shape
authorRoland Scheidegger <sroland@vmware.com>
Wed, 6 Feb 2013 02:48:55 +0000 (18:48 -0800)
committerRoland Scheidegger <sroland@vmware.com>
Sat, 9 Feb 2013 02:54:40 +0000 (18:54 -0800)
commit4f1d757b8617e83f6a5e55f8dd9c8ddd45e32da3
treebd96c9fb4cf5c0d1a488d801f56c507911302d52
parent614982d320985c04e247293b54b66d7df5c19004
softpipe: try to beat new dx10-style sample opcodes into shape

There were several bugs how this was handled, most opcodes wouldn't even
have fetched the right arguments.
Also, the tex "target" is coming from the sampler view, hence it cannot
have information about shadow comparisons - fortunately this is not only
sampler state but also needs to have matching instruction, so just use this
instead to identify shadow comparisons.
Still untested (compiles...).
Note that sample_i and sviewinfo are still busted (just assert).
(The problem is that the interface for doing the opengl-equivalent functions
txf and txq is tied to the specific the sampler itself but these opcodes
have no sampler associated with them. Oops...)
Also, even the other sample instructions will not work correctly since
they always operate on samplers which include the texture state. Fixing
this wouldn't be that difficult but most likely make softpipe quite a bit
slower when using the OpenGL tex opcodes (as the samplers have pre-baked
function calls in the sampler state depending on texture state and that stuff
would need to be evaluated at runtime), so leave it for now.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/gallium/auxiliary/tgsi/tgsi_exec.c