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

Reply via email to