diff --git a/.pick_status.json b/.pick_status.json index 20f48f52ff2..e67399943b3 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3834,7 +3834,7 @@ "description": "zink: only add mutable bind for transient surfaces when necessary", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "3cd3195d31961bf7f7e0743c22f14232b830e7b5", "notes": null diff --git a/src/gallium/drivers/zink/zink_surface.c b/src/gallium/drivers/zink/zink_surface.c index f20af36bf38..c09444551e6 100644 --- a/src/gallium/drivers/zink/zink_surface.c +++ b/src/gallium/drivers/zink/zink_surface.c @@ -297,7 +297,7 @@ zink_create_transient_surface(struct zink_context *ctx, const struct pipe_surfac rtempl.nr_samples = nr_samples; rtempl.bind &= ~(PIPE_BIND_LINEAR | ZINK_BIND_DMABUF); rtempl.bind |= ZINK_BIND_TRANSIENT; - if (psurf->format != rtempl.format) + if (zink_format_needs_mutable(rtempl.format, psurf->format)) rtempl.bind |= ZINK_BIND_MUTABLE; res->transient = zink_resource(ctx->base.screen->resource_create(ctx->base.screen, &rtempl)); transient = res->transient;