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