From 1e2b6e131e270f966b2aece1002f9827578a627b Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 29 Apr 2022 10:52:27 -0400 Subject: [PATCH] zink: always check for fb rebinds when starting renderpass ensure the right image is being used Reviewed-by: Dave Airlie --- src/gallium/drivers/zink/zink_context.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 7b92206e9c2..5bd1387cd42 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -2276,6 +2276,10 @@ prep_fb_attachments(struct zink_context *ctx, VkImageView *att) for (int i = 0; i < ctx->fb_state.nr_cbufs; i++) { struct zink_surface *surf = zink_csurface(ctx->fb_state.cbufs[i]); struct zink_surface *transient = zink_transient_surface(ctx->fb_state.cbufs[i]); + if (surf && zink_resource(surf->base.texture)->obj != surf->obj) { + zink_resource_rebind(ctx, zink_resource(surf->base.texture)); + surf = zink_csurface(ctx->fb_state.cbufs[i]); + } if (transient) { att[i] = prep_fb_attachment(ctx, transient, i); att[i + cresolve_offset] = prep_fb_attachment(ctx, surf, i);