Module: Mesa Branch: master Commit: 79fcea9475da1f03164a855f32c4c259007a8a19 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=79fcea9475da1f03164a855f32c4c259007a8a19
Author: Mike Blumenkrantz <[email protected]> Date: Tue Aug 18 17:12:27 2020 -0400 zink: add a texture barrier hook this just flushes all the pending batches, which is enough since we do our batch work synchronously and everything is awful will be reworked when this is no longer the case Reviewed-by: Erik Faye-Lund <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8948> --- src/gallium/drivers/zink/zink_context.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 2b2d863b629..43625fe88cc 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -1286,6 +1286,18 @@ zink_wait_on_batch(struct zink_context *ctx, int batch_id) zink_fence_wait(&ctx->base); } +static void +zink_texture_barrier(struct pipe_context *pctx, unsigned flags) +{ + struct zink_context *ctx = zink_context(pctx); + if (zink_curr_batch(ctx)->has_draw) + pctx->flush(pctx, NULL, 0); + if (ctx->compute_batch.has_draw) { + zink_end_batch(ctx, &ctx->compute_batch); + zink_start_batch(ctx, &ctx->compute_batch); + } +} + static void zink_memory_barrier(struct pipe_context *pctx, unsigned flags) { @@ -1668,6 +1680,7 @@ zink_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags) ctx->base.launch_grid = zink_launch_grid; ctx->base.flush = zink_flush; ctx->base.memory_barrier = zink_memory_barrier; + ctx->base.texture_barrier = zink_texture_barrier; ctx->base.resource_copy_region = zink_resource_copy_region; ctx->base.blit = zink_blit; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
