From 5337fb1e0615b36a1df166756bedb5e9882824ef Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 28 Sep 2021 10:27:42 -0700 Subject: [PATCH] venus: add a helper to destroy vn_descriptor_set Add vn_descriptor_set_destroy. Signed-off-by: Chia-I Wu Reviewed-by: Yiwei Zhang Reviewed-by: Ryan Neph Part-of: --- src/virtio/vulkan/vn_descriptor_set.c | 37 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/src/virtio/vulkan/vn_descriptor_set.c b/src/virtio/vulkan/vn_descriptor_set.c index a88e071..e60130e 100644 --- a/src/virtio/vulkan/vn_descriptor_set.c +++ b/src/virtio/vulkan/vn_descriptor_set.c @@ -17,6 +17,17 @@ #include "vn_device.h" +static void +vn_descriptor_set_destroy(struct vn_device *dev, + struct vn_descriptor_set *set, + const VkAllocationCallbacks *alloc) +{ + list_del(&set->head); + + vn_object_base_fini(&set->base); + vk_free(alloc, set); +} + /* descriptor set layout commands */ void @@ -266,12 +277,8 @@ vn_DestroyDescriptorPool(VkDevice device, NULL); list_for_each_entry_safe(struct vn_descriptor_set, set, - &pool->descriptor_sets, head) { - list_del(&set->head); - - vn_object_base_fini(&set->base); - vk_free(alloc, set); - } + &pool->descriptor_sets, head) + vn_descriptor_set_destroy(dev, set, alloc); vn_object_base_fini(&pool->base); vk_free(alloc, pool); @@ -358,12 +365,8 @@ vn_ResetDescriptorPool(VkDevice device, flags); list_for_each_entry_safe(struct vn_descriptor_set, set, - &pool->descriptor_sets, head) { - list_del(&set->head); - - vn_object_base_fini(&set->base); - vk_free(alloc, set); - } + &pool->descriptor_sets, head) + vn_descriptor_set_destroy(dev, set, alloc); vn_descriptor_pool_reset_descriptors(pool); @@ -465,9 +468,8 @@ fail: vn_descriptor_pool_free_descriptors(pool, set->layout, set->last_binding_descriptor_count); - list_del(&set->head); - vn_object_base_fini(&set->base); - vk_free(alloc, set); + + vn_descriptor_set_destroy(dev, set, alloc); } memset(pDescriptorSets, 0, @@ -497,10 +499,7 @@ vn_FreeDescriptorSets(VkDevice device, if (!set) continue; - list_del(&set->head); - - vn_object_base_fini(&set->base); - vk_free(alloc, set); + vn_descriptor_set_destroy(dev, set, alloc); } return VK_SUCCESS; -- 2.7.4