From ef4ab90d040c0fa1e561937e03401a3b203b1ff4 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 3 Feb 2022 17:18:12 -0500 Subject: [PATCH] zink: restart conditional render when crossing batch boundary this will only happen when conditional render was being used outside of a renderpass Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_context.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 9a502e0aa97..f86d5e1f2a7 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -2440,6 +2440,7 @@ flush_batch(struct zink_context *ctx, bool sync) if (ctx->clears_enabled) /* start rp to do all the clears */ zink_begin_render_pass(ctx); + bool conditional_render_active = ctx->render_condition.active; zink_stop_conditional_render(ctx); zink_end_render_pass(ctx); zink_end_batch(ctx, batch); @@ -2464,6 +2465,8 @@ flush_batch(struct zink_context *ctx, bool sync) ctx->oom_stall = false; ctx->dd->bindless_bound = false; ctx->di.bindless_refs_dirty = true; + if (conditional_render_active) + zink_start_conditional_render(ctx); } }