From e4ad86952a197549894eb4c9a96af0c76dd95d18 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Sun, 14 May 2017 11:32:44 -0400 Subject: [PATCH] freedreno: fix crash when flush() but no rendering If we haven't created a batch, just bail in pipe->flush(), since there is nothing to do. Fixes crash in warsow, which creates a whole bunch of contexts used for nothing but texture uploads. Signed-off-by: Rob Clark --- src/gallium/drivers/freedreno/freedreno_context.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gallium/drivers/freedreno/freedreno_context.c b/src/gallium/drivers/freedreno/freedreno_context.c index 8a86f0b..450f4a8 100644 --- a/src/gallium/drivers/freedreno/freedreno_context.c +++ b/src/gallium/drivers/freedreno/freedreno_context.c @@ -45,6 +45,12 @@ fd_context_flush(struct pipe_context *pctx, struct pipe_fence_handle **fence, { struct fd_context *ctx = fd_context(pctx); + if (!ctx->batch) { + if (fence) + *fence = NULL; + return; + } + if (flags & PIPE_FLUSH_FENCE_FD) ctx->batch->needs_out_fence_fd = true; -- 2.7.4