From d27b1c83b9b7bd2db8851fe497246c0143b73554 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Mon, 15 Oct 2018 09:56:35 -0400 Subject: [PATCH] freedreno/a6xx: don't allocate binning rb Now that a single cmdstream is used for both binning and draw passes, we can skip allocation of cmdstream buffer for binning. Signed-off-by: Rob Clark --- src/gallium/drivers/freedreno/freedreno_batch.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/freedreno/freedreno_batch.c b/src/gallium/drivers/freedreno/freedreno_batch.c index a714d97f5cd..487176cc638 100644 --- a/src/gallium/drivers/freedreno/freedreno_batch.c +++ b/src/gallium/drivers/freedreno/freedreno_batch.c @@ -56,12 +56,15 @@ batch_init(struct fd_batch *batch) batch->draw = fd_ringbuffer_new(ctx->pipe, size); if (!batch->nondraw) { - batch->binning = fd_ringbuffer_new(ctx->pipe, size); batch->gmem = fd_ringbuffer_new(ctx->pipe, size); fd_ringbuffer_set_parent(batch->gmem, NULL); fd_ringbuffer_set_parent(batch->draw, batch->gmem); - fd_ringbuffer_set_parent(batch->binning, batch->gmem); + + if (ctx->screen->gpu_id < 600) { + batch->binning = fd_ringbuffer_new(ctx->pipe, size); + fd_ringbuffer_set_parent(batch->binning, batch->gmem); + } } else { fd_ringbuffer_set_parent(batch->draw, NULL); } @@ -131,7 +134,8 @@ batch_fini(struct fd_batch *batch) fd_ringbuffer_del(batch->draw); if (!batch->nondraw) { - fd_ringbuffer_del(batch->binning); + if (batch->binning) + fd_ringbuffer_del(batch->binning); fd_ringbuffer_del(batch->gmem); } else { debug_assert(!batch->binning); -- 2.30.2