nvc0/ir: change textureGrad to always use lane 0 as the tex origin
authorIlia Mirkin <imirkin@alum.mit.edu>
Wed, 16 Aug 2017 04:34:43 +0000 (00:34 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Wed, 20 Dec 2017 04:09:19 +0000 (23:09 -0500)
commit0cf6320eb5eca1ea20906624ad5a46ca386e0aa6
tree7d3e1af82e6069c4c9ac1ae9c195af94da415200
parent22ceb1f99b5ae62d23200f4fecea8b62ab745318
nvc0/ir: change textureGrad to always use lane 0 as the tex origin

Thanks to Karol Herbst for the debugging / tracing work that led to this
change.

Move to using lane 0 as the "work" lane for the texture. It is unclear
why this helps, as that computation should be identical to doing it in
the "correct" lane with the properly adjusted quadops.

In order to be able to use the lane 0 result, we also have to ensure
that lane 0 contains the proper array/indirect/shadow values.

This applies to Fermi and Kepler. Maxwell+ may or may not need fixing,
but that lowering logic is separate.

Fixes KHR-GL45.texture_cube_map_array.sampling

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp