diff --git a/src/panfrost/vulkan/jm/panvk_vX_cmd_buffer.c b/src/panfrost/vulkan/jm/panvk_vX_cmd_buffer.c index a7e0ba0c641..0579034aea2 100644 --- a/src/panfrost/vulkan/jm/panvk_vX_cmd_buffer.c +++ b/src/panfrost/vulkan/jm/panvk_vX_cmd_buffer.c @@ -402,6 +402,10 @@ panvk_destroy_cmdbuf(struct vk_command_buffer *vk_cmdbuf) vk_free(&cmdbuf->vk.pool->alloc, batch); } +#if PAN_ARCH < 9 + panvk_shader_link_cleanup(&cmdbuf->state.gfx.link); +#endif + panvk_pool_cleanup(&cmdbuf->desc_pool); panvk_pool_cleanup(&cmdbuf->tls_pool); panvk_pool_cleanup(&cmdbuf->varying_pool); diff --git a/src/panfrost/vulkan/panvk_vX_shader.c b/src/panfrost/vulkan/panvk_vX_shader.c index eb736ebc9d7..e92f819124f 100644 --- a/src/panfrost/vulkan/panvk_vX_shader.c +++ b/src/panfrost/vulkan/panvk_vX_shader.c @@ -2262,6 +2262,7 @@ panvk_per_arch(link_shaders)(struct panvk_pool *desc_pool, } } + panvk_shader_link_cleanup(link); VkResult result = emit_varying_attrs(desc_pool, vs_layout, buf_sizes, buf_offsets, &link->vs.attribs); if (result != VK_SUCCESS)