int in_fence_fd;
bool needs_out_fence_fd;
+ struct pipe_fence_handle *fence;
struct fd_context *ctx;
FD_BUFFER_ALL = FD_BUFFER_COLOR | FD_BUFFER_DEPTH | FD_BUFFER_STENCIL,
} cleared, partial_cleared, restore, resolve;
+ /* is this a non-draw batch (ie compute/blit which has no pfb state)? */
+ bool nondraw : 1;
bool needs_flush : 1;
bool blit : 1;
bool back_blit : 1; /* only blit so far is resource shadowing back-blit */
uint32_t dependents_mask;
};
-struct fd_batch * fd_batch_create(struct fd_context *ctx);
+struct fd_batch * fd_batch_create(struct fd_context *ctx, bool nondraw);
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_add_dep(struct fd_batch *batch, struct fd_batch *dep);
void fd_batch_resource_used(struct fd_batch *batch, struct fd_resource *rsc, bool write);
void fd_batch_check_size(struct fd_batch *batch);