diff options
author | Rob Clark <[email protected]> | 2017-12-03 11:50:09 -0500 |
---|---|---|
committer | Rob Clark <[email protected]> | 2017-12-03 14:17:41 -0500 |
commit | 11efe42a7317d06e78d6a1808314d18af89cf39d (patch) | |
tree | f95eefb9de81a846c9649140cdc11aa74a759cc3 | |
parent | 48eef0c18248db948378ecf9a5f9930fa467ae9f (diff) |
freedreno/ir3: relax barriers
Instructions with no barrier_class can move wrt. an EVERYTHING barrier.
Signed-off-by: Rob Clark <[email protected]>
-rw-r--r-- | src/gallium/drivers/freedreno/ir3/ir3_sched.c | 4 |
1 files 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); } |