summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/freedreno
diff options
context:
space:
mode:
authorRob Clark <robdclark@gmail.com>2017-12-03 11:50:09 -0500
committerRob Clark <robdclark@gmail.com>2017-12-03 14:17:41 -0500
commit11efe42a7317d06e78d6a1808314d18af89cf39d (patch)
treef95eefb9de81a846c9649140cdc11aa74a759cc3 /src/gallium/drivers/freedreno
parent48eef0c18248db948378ecf9a5f9930fa467ae9f (diff)
freedreno/ir3: relax barriers
Instructions with no barrier_class can move wrt. an EVERYTHING barrier. Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'src/gallium/drivers/freedreno')
-rw-r--r--src/gallium/drivers/freedreno/ir3/ir3_sched.c4
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);
}