From e4210a42bcfdb19336faa2ad4b807818c71a2982 Mon Sep 17 00:00:00 2001 From: Christoph Bumiller Date: Sun, 8 Jan 2012 16:26:23 +0100 Subject: nvc0/ir: TXF array index already is an integer --- src/gallium/drivers/nvc0/codegen/nv50_ir_lowering_nvc0.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/gallium') 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 e4d32d0a678..5f906e4ed15 100644 --- a/src/gallium/drivers/nvc0/codegen/nv50_ir_lowering_nvc0.cpp +++ b/src/gallium/drivers/nvc0/codegen/nv50_ir_lowering_nvc0.cpp @@ -322,10 +322,13 @@ NVC0LoweringPass::handleTEX(TexInstruction *i) Value *ticRel = i->getIndirectR(); Value *tscRel = i->getIndirectS(); - if (arrayIndex) - bld.mkCvt(OP_CVT, TYPE_U16, src, TYPE_F32, arrayIndex); - else + if (arrayIndex) { + int sat = (i->op == OP_TXF) ? 1 : 0; + DataType sTy = (i->op == OP_TXF) ? TYPE_U32 : TYPE_F32; + bld.mkCvt(OP_CVT, TYPE_U16, src, sTy, arrayIndex)->saturate = sat; + } else { bld.loadImm(src, 0); + } if (ticRel) { i->setSrc(i->tex.rIndirectSrc, NULL); -- cgit v1.2.3