From 8a109c0375ba1faa987329ab6355f7bcb497bd78 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Sun, 28 Feb 2016 22:44:24 +0100 Subject: [PATCH] gk110/ir: add missing src predicate emission for BAR.RED Signed-off-by: Samuel Pitoiset Reviewed-by: Ilia Mirkin --- .../drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp index e5d638b5a8a..0d7d95e3105 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp @@ -1300,6 +1300,14 @@ CodeEmitterGK110::emitBAR(const Instruction *i) code[1] |= imm->reg.data.u32 >> 9; code[1] |= 0x4000; } + + if (i->srcExists(2) && (i->predSrc != 2)) { + srcId(i->src(2), 32 + 10); + if (i->src(2).mod == Modifier(NV50_IR_MOD_NOT)) + code[1] |= 1 << 13; + } else { + code[1] |= 7 << 10; + } } void CodeEmitterGK110::emitMEMBAR(const Instruction *i) -- 2.30.2