mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 22:10:11 +01:00
gm107/ir: fix manual TXD for array targets
This parallels the fixes in commit afea9bae.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.3" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
parent
d78b533c29
commit
d3c3bba6d0
1 changed files with 3 additions and 2 deletions
|
|
@ -58,6 +58,7 @@ GM107LoweringPass::handleManualTXD(TexInstruction *i)
|
|||
Value *zero = bld.loadImm(bld.getSSA(), 0);
|
||||
int l, c;
|
||||
const int dim = i->tex.target.getDim();
|
||||
const int array = i->tex.target.isArray();
|
||||
|
||||
i->op = OP_TEX; // no need to clone dPdx/dPdy later
|
||||
|
||||
|
|
@ -69,7 +70,7 @@ GM107LoweringPass::handleManualTXD(TexInstruction *i)
|
|||
// mov coordinates from lane l to all lanes
|
||||
bld.mkOp(OP_QUADON, TYPE_NONE, NULL);
|
||||
for (c = 0; c < dim; ++c) {
|
||||
bld.mkOp2(OP_SHFL, TYPE_F32, crd[c], i->getSrc(c), bld.mkImm(l));
|
||||
bld.mkOp2(OP_SHFL, TYPE_F32, crd[c], i->getSrc(c + array), bld.mkImm(l));
|
||||
add = bld.mkOp2(OP_QUADOP, TYPE_F32, crd[c], crd[c], zero);
|
||||
add->subOp = 0x00;
|
||||
add->lanes = 1; /* abused for .ndv */
|
||||
|
|
@ -94,7 +95,7 @@ GM107LoweringPass::handleManualTXD(TexInstruction *i)
|
|||
// texture
|
||||
bld.insert(tex = cloneForward(func, i));
|
||||
for (c = 0; c < dim; ++c)
|
||||
tex->setSrc(c, crd[c]);
|
||||
tex->setSrc(c + array, crd[c]);
|
||||
bld.mkOp(OP_QUADPOP, TYPE_NONE, NULL);
|
||||
|
||||
// save results
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue