summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/freedreno_batch.c
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2018-08-29 16:04:22 -0400
committerRob Clark <[email protected]>2018-09-05 13:38:43 -0400
commitc77e0948c7583748edf5269e0ff37a34ebf887f0 (patch)
treefe7b12b4c63dfd92e5d100fa86b460573112e954 /src/gallium/drivers/freedreno/freedreno_batch.c
parent2c623e707144e93db08a2ed1bdcd079c911b7029 (diff)
freedreno/batch: fix crash in !reorder case
We aren't using the batch-cache if reorder==false. Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/freedreno_batch.c')
-rw-r--r--src/gallium/drivers/freedreno/freedreno_batch.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_batch.c b/src/gallium/drivers/freedreno/freedreno_batch.c
index dd4b1ca9e64..36b834f4013 100644
--- a/src/gallium/drivers/freedreno/freedreno_batch.c
+++ b/src/gallium/drivers/freedreno/freedreno_batch.c
@@ -352,8 +352,14 @@ fd_batch_flush(struct fd_batch *batch, bool sync, bool force)
if (newbatch) {
struct fd_context *ctx = batch->ctx;
- struct fd_batch *new_batch =
- fd_batch_from_fb(&ctx->screen->batch_cache, ctx, &batch->framebuffer);
+ struct fd_batch *new_batch;
+
+ if (ctx->screen->reorder) {
+ new_batch = fd_batch_from_fb(&ctx->screen->batch_cache,
+ ctx, &batch->framebuffer);
+ } else {
+ new_batch = fd_batch_create(ctx, false);
+ }
util_copy_framebuffer_state(&new_batch->framebuffer, &batch->framebuffer);