From 11efe42a7317d06e78d6a1808314d18af89cf39d Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Sun, 3 Dec 2017 11:50:09 -0500 Subject: [PATCH] freedreno/ir3: relax barriers Instructions with no barrier_class can move wrt. an EVERYTHING barrier. Signed-off-by: Rob Clark --- src/gallium/drivers/freedreno/ir3/ir3_sched.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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); } -- 2.30.2