anv: destroy descriptor sets when pool gets destroyed
Patch maintains a list of sets in the pool and destroys possible
remaining sets when pool is destroyed.
As stated in Vulkan spec:
"When a pool is destroyed, all descriptor sets allocated from
the pool are implicitly freed and become invalid."
This fixes memory leaks spotted with valgrind:
==19622== 96 bytes in 1 blocks are definitely lost in loss record 2 of 3
==19622== at 0x483880B: malloc (vg_replace_malloc.c:309)
==19622== by 0x495B67E: default_alloc_func (anv_device.c:547)
==19622== by 0x4955E05: vk_alloc (vk_alloc.h:36)
==19622== by 0x4956A8F: anv_multialloc_alloc (anv_private.h:538)
==19622== by 0x4956A8F: anv_CreateDescriptorSetLayout (anv_descriptor_set.c:217)
Fixes: 14f6275c ("anv/descriptor_set: add reference counting for descriptor set layouts")
Signed-off-by:
Tapani Pälli <tapani.palli@intel.com>
Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
(cherry picked from commit 105002bd)
[Emil: move list_del() anv_descriptor_{pool_free_set,set_destroy} ]
Signed-off-by:
Emil Velikov <emil.velikov@collabora.com>
Conflicts:
src/intel/vulkan/anv_descriptor_set.c
---
Mostly a gut feeling - Tapani do we need a list_addtail/list_del in
anv_descriptor_set_create()?
Loading
Please register or sign in to comment