summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2017-05-14 11:32:44 -0400
committerRob Clark <[email protected]>2017-05-14 15:10:08 -0400
commite4ad86952a197549894eb4c9a96af0c76dd95d18 (patch)
treee2d13577490b787cd6f24be49704f178f8341bc4 /src/gallium/drivers
parent06a51fb4e5bcec4fa9911b6a20a38deac45d9e21 (diff)
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 <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r--src/gallium/drivers/freedreno/freedreno_context.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_context.c b/src/gallium/drivers/freedreno/freedreno_context.c
index 8a86f0be149..450f4a803ed 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;