summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/freedreno_batch.h
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2017-11-19 10:36:19 -0500
committerRob Clark <[email protected]>2017-12-03 14:17:40 -0500
commit15ebf387fc43632be0e68365cf92ac8fb1b64a9c (patch)
treec38457eb447df994c138d01a155122406accda3c /src/gallium/drivers/freedreno/freedreno_batch.h
parentdeb57fb237c3be9629a39ef1978dfac4563d6bda (diff)
freedreno: rework fence tracking
ctx->last_fence isn't such a terribly clever idea, if batches can be flushed out of order. Instead, each batch now holds a fence, which is created before the batch is flushed (useful for next patch), that later gets populated after the batch is actually flushed. Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/freedreno_batch.h')
-rw-r--r--src/gallium/drivers/freedreno/freedreno_batch.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_batch.h b/src/gallium/drivers/freedreno/freedreno_batch.h
index 8b05f0657aa..a5fa6ce5a22 100644
--- a/src/gallium/drivers/freedreno/freedreno_batch.h
+++ b/src/gallium/drivers/freedreno/freedreno_batch.h
@@ -70,6 +70,7 @@ struct fd_batch {
int in_fence_fd;
bool needs_out_fence_fd;
+ struct pipe_fence_handle *fence;
struct fd_context *ctx;
@@ -205,7 +206,7 @@ struct fd_batch * fd_batch_create(struct fd_context *ctx);
void fd_batch_reset(struct fd_batch *batch);
void fd_batch_sync(struct fd_batch *batch);
-void fd_batch_flush(struct fd_batch *batch, bool sync);
+void fd_batch_flush(struct fd_batch *batch, bool sync, bool force);
void fd_batch_resource_used(struct fd_batch *batch, struct fd_resource *rsc, bool write);
void fd_batch_check_size(struct fd_batch *batch);