[Mesa-dev] [PATCH] freedreno: allocate batches from the cache in launch_grid
Hyunjun Ko
zzoon at igalia.com
Wed Oct 17 06:52:08 UTC 2018
Needs to allocate batches from the cache so that it could
get a valid index and make resource dependancy tracking right.
And it doesn't need to flush the batch in each launch_grid from
this approach. Also it could make it avoid potential memory leak
of the batches.
In addition this fixes assertion on debug build since the commit
1a40faa8 landed.
---
src/gallium/drivers/freedreno/freedreno_draw.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/gallium/drivers/freedreno/freedreno_draw.c b/src/gallium/drivers/freedreno/freedreno_draw.c
index e130895aac..bd902ef5a9 100644
--- a/src/gallium/drivers/freedreno/freedreno_draw.c
+++ b/src/gallium/drivers/freedreno/freedreno_draw.c
@@ -459,7 +459,7 @@ fd_launch_grid(struct pipe_context *pctx, const struct pipe_grid_info *info)
struct fd_batch *batch, *save_batch = NULL;
unsigned i;
- batch = fd_batch_create(ctx, true);
+ batch = fd_bc_alloc_batch(&ctx->screen->batch_cache, ctx);
fd_batch_reference(&save_batch, ctx->batch);
fd_batch_reference(&ctx->batch, batch);
@@ -502,10 +502,9 @@ fd_launch_grid(struct pipe_context *pctx, const struct pipe_grid_info *info)
batch->needs_flush = true;
ctx->launch_grid(ctx, info);
- fd_batch_flush(batch, false, false);
-
fd_batch_reference(&ctx->batch, save_batch);
fd_batch_reference(&save_batch, NULL);
+ fd_batch_reference(&batch, NULL);
}
void
--
2.17.1
More information about the mesa-dev
mailing list