freedreno: mark all state dirty after switching batch

The problem isn't directly with ec717fc629 but rather that commit
exposes the problem.  When we switch batch we cannot assume previous
state is clean so we should mark all state dirty.

Fixes: ec717fc629 freedreno: reduce resource dependency tracking overhead
Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
Rob Clark 2018-10-27 14:07:09 -04:00
parent 1bd4f8fefc
commit 05e868925c
2 changed files with 3 additions and 0 deletions

View File

@ -369,6 +369,7 @@ fd_batch_flush(struct fd_batch *batch, bool sync, bool force)
fd_batch_reference(&batch, NULL);
ctx->batch = new_batch;
fd_context_all_dirty(ctx);
}
if (sync)

View File

@ -490,6 +490,7 @@ fd_launch_grid(struct pipe_context *pctx, const struct pipe_grid_info *info)
batch = fd_bc_alloc_batch(&ctx->screen->batch_cache, ctx, true);
fd_batch_reference(&save_batch, ctx->batch);
fd_batch_reference(&ctx->batch, batch);
fd_context_all_dirty(ctx);
mtx_lock(&ctx->screen->lock);
@ -533,6 +534,7 @@ fd_launch_grid(struct pipe_context *pctx, const struct pipe_grid_info *info)
fd_batch_flush(batch, false, false);
fd_batch_reference(&ctx->batch, save_batch);
fd_context_all_dirty(ctx);
fd_batch_reference(&save_batch, NULL);
fd_batch_reference(&batch, NULL);
}