summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/freedreno/freedreno_batch.c10
1 files 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);