From a9c928954e7d96ddbeb2d4d1cdf10222e47ef3b0 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 18 Jun 2025 16:25:59 -0400 Subject: [PATCH] zink: allocate keys for surface cache to stop using zink_surface::ivci Part-of: --- src/gallium/drivers/zink/zink_resource.c | 1 + src/gallium/drivers/zink/zink_surface.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index 7116e0f3df3..47436c67e16 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -213,6 +213,7 @@ zink_destroy_resource_surface_cache(struct zink_screen *screen, struct hash_tabl hash_table_foreach_remove(ht, he) { struct zink_surface *surf = he->data; VKSCR(DestroyImageView)(screen->dev, surf->image_view, NULL); + free((void*)he->key); FREE(surf); } ralloc_free(ht->table); diff --git a/src/gallium/drivers/zink/zink_surface.c b/src/gallium/drivers/zink/zink_surface.c index 52e60b617c4..0298a56e005 100644 --- a/src/gallium/drivers/zink/zink_surface.c +++ b/src/gallium/drivers/zink/zink_surface.c @@ -222,7 +222,7 @@ zink_get_surface(struct zink_context *ctx, /* only transient surfaces have nr_samples set */ surface->base.nr_samples = zink_screen(ctx->base.screen)->info.have_EXT_multisampled_render_to_single_sampled ? templ->nr_samples : 0; surface->ivci = *ivci; - entry = _mesa_hash_table_insert_pre_hashed(ht, hash, &surface->ivci, surface); + entry = _mesa_hash_table_insert_pre_hashed(ht, hash, mem_dup(ivci, sizeof(*ivci)), surface); if (!entry) { simple_mtx_unlock(&res->obj->surface_mtx); return NULL;