Module: Mesa Branch: main Commit: 81de7a1c25371ef4f33c14abcd8f91d4b062b6f3 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=81de7a1c25371ef4f33c14abcd8f91d4b062b6f3
Author: Mike Blumenkrantz <[email protected]> Date: Wed Mar 1 09:08:58 2023 -0500 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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21628> --- 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 ef9473a847b..0a97ce3886d 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
