diff options
author | Rob Clark <[email protected]> | 2017-11-19 10:36:19 -0500 |
---|---|---|
committer | Rob Clark <[email protected]> | 2017-12-03 14:17:40 -0500 |
commit | 15ebf387fc43632be0e68365cf92ac8fb1b64a9c (patch) | |
tree | c38457eb447df994c138d01a155122406accda3c /src/gallium/drivers/freedreno/freedreno_batch.h | |
parent | deb57fb237c3be9629a39ef1978dfac4563d6bda (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.h | 3 |
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); |