zink: only add mutable bind for transient surfaces when necessary

Fixes: 3cd3195d31 ("zink: always add mutable to transient surface creation when needed")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37767>
(cherry picked from commit 0ab8878a6e)
This commit is contained in:
Mike Blumenkrantz 2025-10-07 15:50:29 -04:00 committed by Eric Engestrom
parent 8983040e2b
commit 77818d0f12
2 changed files with 2 additions and 2 deletions

View file

@ -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

View file

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