panvk: Don't leak vertex shader program descriptors
Vertex shaders can have up to three different program descriptors. Free all of them in panvk_shader_destroy(). Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31382>
This commit is contained in:
committed by
Marge Bot
parent
bea7c59113
commit
ce14681ebf
@@ -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->rsd);
|
||||||
panvk_pool_free_mem(&dev->mempools.exec, shader->desc_info.others.map);
|
panvk_pool_free_mem(&dev->mempools.exec, shader->desc_info.others.map);
|
||||||
#else
|
#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
|
#endif
|
||||||
|
|
||||||
free((void *)shader->bin_ptr);
|
free((void *)shader->bin_ptr);
|
||||||
|
|||||||
Reference in New Issue
Block a user