From: Rob Clark Date: Sun, 3 Dec 2017 16:50:09 +0000 (-0500) Subject: freedreno/ir3: relax barriers X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=11efe42a7317d06e78d6a1808314d18af89cf39d;p=mesa.git freedreno/ir3: relax barriers Instructions with no barrier_class can move wrt. an EVERYTHING barrier. Signed-off-by: Rob Clark --- diff --git a/src/gallium/drivers/freedreno/ir3/ir3_sched.c b/src/gallium/drivers/freedreno/ir3/ir3_sched.c index 9492e9ba650..5d0fcc481a7 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3_sched.c +++ b/src/gallium/drivers/freedreno/ir3/ir3_sched.c @@ -679,8 +679,8 @@ depends_on(struct ir3_instruction *instr, struct ir3_instruction *prior) * make accesses to unrelated objects not depend on each other (at * least as long as not declared coherent) */ - if ((instr->barrier_class & IR3_BARRIER_EVERYTHING) || - (prior->barrier_class & IR3_BARRIER_EVERYTHING)) + if (((instr->barrier_class & IR3_BARRIER_EVERYTHING) && prior->barrier_class) || + ((prior->barrier_class & IR3_BARRIER_EVERYTHING) && instr->barrier_class)) return true; return !!(instr->barrier_class & prior->barrier_conflict); }