summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlia Mirkin <imirkin@alum.mit.edu>2017-04-07 23:23:25 -0400
committerEmil Velikov <emil.l.velikov@gmail.com>2017-04-12 11:32:28 +0100
commit12d7da771729e9d93000129762996bac0c442976 (patch)
tree7b3dc6918017d00ef4e0aedaf43991bc816f2901
parent4900fa3f82fa98aa30ca06de5eefa0e84e889b12 (diff)
nvc0/ir: fix overwriting of offset register with interpolateAtOffset
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Cc: mesa-stable@lists.freedesktop.org (cherry picked from commit 57a744025a2f705d29f60b0eac6e50f8a1ea6203)
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
index f0c2866c8a2..e37374acaaa 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
@@ -2906,8 +2906,8 @@ Converter::handleINTERP(Value *dst[4])
// and then convert to s32.
Value *offs[2];
for (c = 0; c < 2; c++) {
- offs[c] = fetchSrc(1, c);
- mkOp2(OP_MIN, TYPE_F32, offs[c], offs[c], loadImm(NULL, 0.4375f));
+ offs[c] = getScratch();
+ mkOp2(OP_MIN, TYPE_F32, offs[c], fetchSrc(1, c), loadImm(NULL, 0.4375f));
mkOp2(OP_MAX, TYPE_F32, offs[c], offs[c], loadImm(NULL, -0.5f));
mkOp2(OP_MUL, TYPE_F32, offs[c], offs[c], loadImm(NULL, 4096.0f));
mkCvt(OP_CVT, TYPE_S32, offs[c], TYPE_F32, offs[c]);