diff --git a/src/panfrost/vulkan/panvk_vX_shader.c b/src/panfrost/vulkan/panvk_vX_shader.c index fa610b76bf4..e373e4da5f4 100644 --- a/src/panfrost/vulkan/panvk_vX_shader.c +++ b/src/panfrost/vulkan/panvk_vX_shader.c @@ -775,7 +775,13 @@ panvk_shader_destroy(struct vk_device *vk_dev, struct vk_shader *vk_shader, panvk_pool_free_mem(&dev->mempools.exec, shader->rsd); panvk_pool_free_mem(&dev->mempools.exec, shader->desc_info.others.map); #else - panvk_pool_free_mem(&dev->mempools.exec, shader->spd); + if (shader->info.stage != MESA_SHADER_VERTEX) { + panvk_pool_free_mem(&dev->mempools.exec, shader->spd); + } else { + panvk_pool_free_mem(&dev->mempools.exec, shader->spds.var); + panvk_pool_free_mem(&dev->mempools.exec, shader->spds.pos_points); + panvk_pool_free_mem(&dev->mempools.exec, shader->spds.pos_triangles); + } #endif free((void *)shader->bin_ptr);