nvc0/ir: fix images indirect access on Fermi

This fixes the following piglits:

arb_arrays_of_arrays-basic-imagestore-mixed-const-non-const-uniform-index
arb_arrays_of_arrays-basic-imagestore-mixed-const-non-const-uniform-index2

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: 12.0 <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 19d0450b27)
This commit is contained in:
Samuel Pitoiset 2016-07-10 16:19:46 +02:00 committed by Emil Velikov
parent 60eabe9ad3
commit d6c387933d

View file

@ -2056,6 +2056,13 @@ NVC0LoweringPass::processSurfaceCoordsNVC0(TexInstruction *su)
base = 0;
}
if (ind) {
Value *ptr;
ptr = bld.mkOp2v(OP_ADD, TYPE_U32, bld.getSSA(), ind, bld.mkImm(su->tex.r));
ptr = bld.mkOp2v(OP_AND, TYPE_U32, bld.getSSA(), ptr, bld.mkImm(7));
su->setIndirectR(ptr);
}
// get surface coordinates
for (c = 0; c < arg; ++c)
src[c] = su->getSrc(c);