From 37a08ddce54d28f90dc8db8e10792d0759938590 Mon Sep 17 00:00:00 2001 From: Christoph Bumiller Date: Fri, 14 Oct 2011 19:58:04 +0200 Subject: [PATCH] nv50/ir: fix argument count for CUBE_ARRAY texture target --- src/gallium/drivers/nv50/codegen/nv50_ir.cpp | 2 +- src/gallium/drivers/nvc0/codegen/nv50_ir_lowering_nvc0.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/nv50/codegen/nv50_ir.cpp b/src/gallium/drivers/nv50/codegen/nv50_ir.cpp index 15625a9..a8f0529 100644 --- a/src/gallium/drivers/nv50/codegen/nv50_ir.cpp +++ b/src/gallium/drivers/nv50/codegen/nv50_ir.cpp @@ -819,7 +819,7 @@ const struct TexInstruction::Target::Desc TexInstruction::Target::descTable[] = { "1D_ARRAY", 1, 2, true, false, false }, { "2D_ARRAY", 2, 3, true, false, false }, { "2D_MS_ARRAY", 2, 3, true, false, false }, - { "CUBE_ARRAY", 2, 3, true, true, false }, + { "CUBE_ARRAY", 2, 4, true, true, false }, { "1D_ARRAY_SHADOW", 1, 2, true, false, true }, { "2D_ARRAY_SHADOW", 2, 3, true, false, true }, { "RECT", 2, 2, false, false, false }, diff --git a/src/gallium/drivers/nvc0/codegen/nv50_ir_lowering_nvc0.cpp b/src/gallium/drivers/nvc0/codegen/nv50_ir_lowering_nvc0.cpp index 4b448c6..2ef5a87 100644 --- a/src/gallium/drivers/nvc0/codegen/nv50_ir_lowering_nvc0.cpp +++ b/src/gallium/drivers/nvc0/codegen/nv50_ir_lowering_nvc0.cpp @@ -307,14 +307,14 @@ NVC0LoweringPass::visit(BasicBlock *bb) bool NVC0LoweringPass::handleTEX(TexInstruction *i) { - const int dim = i->tex.target.getDim(); - const int arg = i->tex.target.getDim() + i->tex.target.isArray(); + const int dim = i->tex.target.getDim() + i->tex.target.isCube(); + const int arg = i->tex.target.getArgCount(); // generate and move the tsc/tic/array source to the front if (dim != arg || i->tex.rIndirectSrc >= 0 || i->tex.sIndirectSrc >= 0) { LValue *src = new_LValue(func, FILE_GPR); // 0xttxsaaaa - Value *arrayIndex = i->tex.target.isArray() ? i->getSrc(dim) : NULL; + Value *arrayIndex = i->tex.target.isArray() ? i->getSrc(arg - 1) : NULL; for (int s = dim; s >= 1; --s) i->setSrc(s, i->getSrc(s - 1)); i->setSrc(0, arrayIndex); -- 2.7.4