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 8eb710446ce..b2e0fb0436e 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp @@ -3121,7 +3121,7 @@ Converter::handleInstruction(const struct tgsi_full_instruction *insn) Value *dst0[4], *rDst0[4]; Value *src0, *src1, *src2, *src3; - Value *val0, *val1; + Value *val0 = NULL, *val1 = NULL; int c; tgsi = tgsi::Instruction(insn); @@ -3415,6 +3415,8 @@ Converter::handleInstruction(const struct tgsi_full_instruction *insn) case TGSI_OPCODE_READ_INVOC: if (tgsi.getOpcode() == TGSI_OPCODE_READ_INVOC) src1 = fetchSrc(1, 0); + else + src1 = val0; FOR_EACH_DST_ENABLED_CHANNEL(0, c, tgsi) { geni = mkOp3(op, dstTy, dst0[c], fetchSrc(0, c), src1, mkImm(0x1f)); geni->subOp = NV50_IR_SUBOP_SHFL_IDX;