From accb4cdb3b52044d1029c856bc636087eb6dee6a Mon Sep 17 00:00:00 2001 From: Ilia Mirkin Date: Fri, 18 Dec 2015 12:25:53 +0000 Subject: [PATCH] gk104/ir: sampler doesn't matter for txf We actually leave the sampler unset for OP_TXF, which caused the GK104+ logic to treat some texel fetches as indirect. While this works, it's incredibly wasteful. This only happened when the texture was > 0 (since sampler remained == 0). Signed-off-by: Ilia Mirkin Cc: "11.0 11.1" (cherry picked from commit 63b850403c90f33c295d3ad6be4ad749d4ea6274) --- src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp index b3fc73a2beb..0f575f2eedd 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp @@ -686,7 +686,7 @@ NVC0LoweringPass::handleTEX(TexInstruction *i) i->tex.s = 0x1f; i->setIndirectR(hnd); i->setIndirectS(NULL); - } else if (i->tex.r == i->tex.s) { + } else if (i->tex.r == i->tex.s || i->op == OP_TXF) { i->tex.r += prog->driver->io.texBindBase / 4; i->tex.s = 0; // only a single cX[] value possible here } else { -- 2.11.0