Mesa (master): freedreno/ir3: relax barriers
Rob Clark
robclark at kemper.freedesktop.org
Sun Dec 3 19:53:37 UTC 2017
Module: Mesa
Branch: master
Commit: 11efe42a7317d06e78d6a1808314d18af89cf39d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=11efe42a7317d06e78d6a1808314d18af89cf39d
Author: Rob Clark <robdclark at gmail.com>
Date: Sun Dec 3 11:50:09 2017 -0500
freedreno/ir3: relax barriers
Instructions with no barrier_class can move wrt. an EVERYTHING barrier.
Signed-off-by: Rob Clark <robdclark at gmail.com>
---
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 9492e9ba65..5d0fcc481a 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);
}
More information about the mesa-commit
mailing list