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);