aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2017-11-19 16:45:04 -0500
committerRob Clark <[email protected]>2017-12-03 14:17:41 -0500
commit91730fb0ffc77682cfd5cebbefdad2f8f92f2431 (patch)
treece9c2dac47f23fc634cb5e2a7be0db2b06fd4af0
parent4ab6ab80365578cc9366b6d2d4a626694e0604a7 (diff)
freedreno: avoid unneccessary batch flush
In some cases we can end up trying to add a write dependency on ourself, which shouldn't trigger a flush. Avoids an extra couple flushes per from in stk. Signed-off-by: Rob Clark <[email protected]>
-rw-r--r--src/gallium/drivers/freedreno/freedreno_batch.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_batch.c b/src/gallium/drivers/freedreno/freedreno_batch.c
index eff5e8dc359..9c66dc98bc7 100644
--- a/src/gallium/drivers/freedreno/freedreno_batch.c
+++ b/src/gallium/drivers/freedreno/freedreno_batch.c
@@ -393,6 +393,8 @@ fd_batch_resource_used(struct fd_batch *batch, struct fd_resource *rsc, bool wri
struct fd_batch *dep;
foreach_batch(dep, cache, rsc->batch_mask) {
struct fd_batch *b = NULL;
+ if (dep == batch)
+ continue;
/* note that batch_add_dep could flush and unref dep, so
* we need to hold a reference to keep it live for the
* fd_bc_invalidate_batch()