From c2d2cb5e4556ed2a2635913d46656d0622c8e63e Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 20 Mar 2023 09:43:50 -0400 Subject: [PATCH] zink: flag some rp ends as unsafe the only "safe" rp ends are: * set_framebuffer_state (new rp) * flush_resource (present) * flush (end of rp) any other rp end needs its rp info sanitized to avoid e.g., reapplying clears Part-of: --- src/gallium/drivers/zink/zink_context.c | 4 ++-- src/gallium/drivers/zink/zink_render_pass.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 7d72e387e59..13e882e98fa 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -2710,7 +2710,7 @@ begin_rendering(struct zink_context *ctx) if (!rp_changed && ctx->batch.in_rp) return 0; - zink_batch_no_rp_safe(ctx); + zink_batch_no_rp(ctx); for (int i = 0; i < ctx->fb_state.nr_cbufs; i++) { struct zink_surface *surf = zink_csurface(ctx->fb_state.cbufs[i]); VkImageView iv = zink_prep_fb_attachment(ctx, surf, i); @@ -2797,7 +2797,7 @@ zink_batch_rp(struct zink_context *ctx) /* this is a driver that doesn't need dummy surfaces but does need rasterization discard, so flush clears first */ ctx->queries_disabled = true; zink_batch_rp(ctx); - zink_batch_no_rp_safe(ctx); + zink_batch_no_rp(ctx); ctx->queries_disabled = false; } zink_resume_queries(ctx, &ctx->batch); diff --git a/src/gallium/drivers/zink/zink_render_pass.c b/src/gallium/drivers/zink/zink_render_pass.c index 18e7be9847d..f101f42457e 100644 --- a/src/gallium/drivers/zink/zink_render_pass.c +++ b/src/gallium/drivers/zink/zink_render_pass.c @@ -614,7 +614,7 @@ setup_framebuffer(struct zink_context *ctx) zink_init_framebuffer(screen, ctx->framebuffer, rp); ctx->fb_changed = false; ctx->gfx_pipeline_state.render_pass = rp; - zink_batch_no_rp_safe(ctx); + zink_batch_no_rp(ctx); } static bool