anv: destroy descriptor sets when pool gets destroyed

Graphics / Mesa 3D Graphics Library / Mesa - Tapani Pälli [intel.com] - 11 March 2019 06:13 EDT

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: 14f6275c92f1 ("anv/descriptor_set: add reference counting for descriptor set layouts")

105002bd2d6 anv: destroy descriptor sets when pool gets destroyed
src/intel/vulkan/anv_descriptor_set.c | 12 ++++++++++++
src/intel/vulkan/anv_private.h | 6 ++++++
2 files changed, 18 insertions(+)

Upstream: cgit.freedesktop.org


  • Share