From: Rob Clark Date: Mon, 15 Oct 2018 13:56:35 +0000 (-0400) Subject: freedreno/a6xx: don't allocate binning rb X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d27b1c83b9b7bd2db8851fe497246c0143b73554;p=mesa.git 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 --- 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);