diff --git a/.pick_status.json b/.pick_status.json index 33b426d47dc..26946671c49 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -5214,7 +5214,7 @@ "description": "zink: try to prune resources from barrier jit on fb unbind", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 2877397e297..9698f0e128b 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -2952,6 +2952,8 @@ unbind_fb_surface(struct zink_context *ctx, struct pipe_surface *surf, unsigned ctx->rp_changed = true; } res->fb_bind_count--; + if (!res->fb_bind_count && !res->bind_count[0]) + _mesa_set_remove_key(ctx->need_barriers[0], res); unsigned feedback_loops = ctx->feedback_loops; if (ctx->feedback_loops & BITFIELD_BIT(idx)) { ctx->dynamic_fb.attachments[idx].imageLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;