summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2016-02-28 22:44:24 +0100
committerSamuel Pitoiset <[email protected]>2016-03-07 18:39:48 +0100
commit8a109c0375ba1faa987329ab6355f7bcb497bd78 (patch)
tree0258907c13d77c5d9c748079e8ba544634f79917
parentf4d2d491522aea8c7de46311c3f5e9c588307dd2 (diff)
gk110/ir: add missing src predicate emission for BAR.RED
Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp8
1 files changed, 8 insertions, 0 deletions
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)