From 81de7a1c25371ef4f33c14abcd8f91d4b062b6f3 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 1 Mar 2023 09:08:58 -0500 Subject: [PATCH] zink: resume queries after conditional render and clears are processed this should have no functional effect other than ensuring primgen queries don't recurse when detecting clears Part-of: --- src/gallium/drivers/zink/zink_context.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index ef9473a..0a97ce3 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -2754,16 +2754,17 @@ zink_batch_rp(struct zink_context *ctx) else clear_buffers = begin_rendering(ctx); assert(!ctx->rp_changed); + if (!in_rp && ctx->batch.in_rp) { + /* only hit this for valid swapchain and new renderpass */ + if (ctx->render_condition.query) + zink_start_conditional_render(ctx); + zink_clear_framebuffer(ctx, clear_buffers); + } /* unable to previously determine that queries didn't split renderpasses: ensure queries start inside renderpass */ if (!ctx->queries_disabled && maybe_has_query_ends) { zink_resume_queries(ctx, &ctx->batch); zink_query_update_gs_states(ctx); } - if (in_rp || !ctx->batch.in_rp) - return; //dead swapchain or continued renderpass - if (ctx->render_condition.query) - zink_start_conditional_render(ctx); - zink_clear_framebuffer(ctx, clear_buffers); } void -- 2.7.4