| From b816167312315f5840fbff38207a97aee75e3ec1 Mon Sep 17 00:00:00 2001 |
| From: Yiwei Zhang <zzyiwei@chromium.org> |
| Date: Sat, 21 Aug 2021 22:21:17 +0000 |
| Subject: [PATCH] venus: fix all missing vn_object_base_fini |
| |
| Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org> |
| Reviewed-by: Chia-I Wu <olvaffe@gmail.com> |
| Reviewed-by: Ryan Neph <ryanneph@google.com> |
| Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12498> |
| --- |
| src/virtio/vulkan/vn_buffer.c | 1 + |
| src/virtio/vulkan/vn_command_buffer.c | 1 + |
| src/virtio/vulkan/vn_descriptor_set.c | 2 ++ |
| src/virtio/vulkan/vn_device_memory.c | 3 +++ |
| src/virtio/vulkan/vn_image.c | 2 ++ |
| src/virtio/vulkan/vn_queue.c | 2 ++ |
| 6 files changed, 11 insertions(+) |
| |
| diff --git a/src/virtio/vulkan/vn_buffer.c b/src/virtio/vulkan/vn_buffer.c |
| index cb65c2d29f1..766fb3ad05a 100644 |
| --- a/src/virtio/vulkan/vn_buffer.c |
| +++ b/src/virtio/vulkan/vn_buffer.c |
| @@ -42,6 +42,7 @@ vn_buffer_create(struct vn_device *dev, |
| result = vn_call_vkCreateBuffer(dev->instance, device, create_info, NULL, |
| &buffer); |
| if (result != VK_SUCCESS) { |
| + vn_object_base_fini(&buf->base); |
| vk_free(alloc, buf); |
| return result; |
| } |
| diff --git a/src/virtio/vulkan/vn_command_buffer.c b/src/virtio/vulkan/vn_command_buffer.c |
| index de6bd7cac05..6ee5237b32a 100644 |
| --- a/src/virtio/vulkan/vn_command_buffer.c |
| +++ b/src/virtio/vulkan/vn_command_buffer.c |
| @@ -542,6 +542,7 @@ vn_AllocateCommandBuffers(VkDevice device, |
| cmd = vn_command_buffer_from_handle(pCommandBuffers[j]); |
| vn_cs_encoder_fini(&cmd->cs); |
| list_del(&cmd->head); |
| + vn_object_base_fini(&cmd->base); |
| vk_free(alloc, cmd); |
| } |
| memset(pCommandBuffers, 0, |
| diff --git a/src/virtio/vulkan/vn_descriptor_set.c b/src/virtio/vulkan/vn_descriptor_set.c |
| index d50c07056f9..d5d0f484c4d 100644 |
| --- a/src/virtio/vulkan/vn_descriptor_set.c |
| +++ b/src/virtio/vulkan/vn_descriptor_set.c |
| @@ -252,6 +252,7 @@ vn_AllocateDescriptorSets(VkDevice device, |
| for (uint32_t j = 0; j < i; j++) { |
| set = vn_descriptor_set_from_handle(pDescriptorSets[j]); |
| list_del(&set->head); |
| + vn_object_base_fini(&set->base); |
| vk_free(alloc, set); |
| } |
| memset(pDescriptorSets, 0, |
| @@ -276,6 +277,7 @@ vn_AllocateDescriptorSets(VkDevice device, |
| struct vn_descriptor_set *set = |
| vn_descriptor_set_from_handle(pDescriptorSets[i]); |
| list_del(&set->head); |
| + vn_object_base_fini(&set->base); |
| vk_free(alloc, set); |
| } |
| memset(pDescriptorSets, 0, |
| diff --git a/src/virtio/vulkan/vn_device_memory.c b/src/virtio/vulkan/vn_device_memory.c |
| index d244f109e39..89226dde332 100644 |
| --- a/src/virtio/vulkan/vn_device_memory.c |
| +++ b/src/virtio/vulkan/vn_device_memory.c |
| @@ -48,6 +48,7 @@ vn_device_memory_simple_alloc(struct vn_device *dev, |
| }, |
| NULL, &mem_handle); |
| if (result != VK_SUCCESS) { |
| + vn_object_base_fini(&mem->base); |
| vk_free(alloc, mem); |
| return result; |
| } |
| @@ -61,6 +62,7 @@ vn_device_memory_simple_alloc(struct vn_device *dev, |
| if (result != VK_SUCCESS) { |
| vn_async_vkFreeMemory(dev->instance, vn_device_to_handle(dev), |
| mem_handle, NULL); |
| + vn_object_base_fini(&mem->base); |
| vk_free(alloc, mem); |
| return result; |
| } |
| @@ -370,6 +372,7 @@ vn_AllocateMemory(VkDevice device, |
| mem_type->propertyFlags, 0); |
| } |
| if (result != VK_SUCCESS) { |
| + vn_object_base_fini(&mem->base); |
| vk_free(alloc, mem); |
| return vn_error(dev->instance, result); |
| } |
| diff --git a/src/virtio/vulkan/vn_image.c b/src/virtio/vulkan/vn_image.c |
| index 76fbd3fb05b..88a3c7bce77 100644 |
| --- a/src/virtio/vulkan/vn_image.c |
| +++ b/src/virtio/vulkan/vn_image.c |
| @@ -191,6 +191,7 @@ vn_image_create(struct vn_device *dev, |
| |
| result = vn_image_init(dev, create_info, img); |
| if (result != VK_SUCCESS) { |
| + vn_object_base_fini(&img->base); |
| vk_free(alloc, img); |
| return result; |
| } |
| @@ -227,6 +228,7 @@ vn_image_create_deferred(struct vn_device *dev, |
| result = vn_image_store_deferred_create_info(create_info, alloc, |
| &img->deferred_info); |
| if (result != VK_SUCCESS) { |
| + vn_object_base_fini(&img->base); |
| vk_free(alloc, img); |
| return result; |
| } |
| diff --git a/src/virtio/vulkan/vn_queue.c b/src/virtio/vulkan/vn_queue.c |
| index 2f067f1f581..062aa43d5e8 100644 |
| --- a/src/virtio/vulkan/vn_queue.c |
| +++ b/src/virtio/vulkan/vn_queue.c |
| @@ -493,6 +493,7 @@ vn_CreateFence(VkDevice device, |
| VkResult result = vn_fence_init_payloads( |
| dev, fence, pCreateInfo->flags & VK_FENCE_CREATE_SIGNALED_BIT, alloc); |
| if (result != VK_SUCCESS) { |
| + vn_object_base_fini(&fence->base); |
| vk_free(alloc, fence); |
| return vn_error(dev->instance, result); |
| } |
| @@ -816,6 +817,7 @@ vn_CreateSemaphore(VkDevice device, |
| |
| VkResult result = vn_semaphore_init_payloads(dev, sem, initial_val, alloc); |
| if (result != VK_SUCCESS) { |
| + vn_object_base_fini(&sem->base); |
| vk_free(alloc, sem); |
| return vn_error(dev->instance, result); |
| } |
| -- |
| 2.33.0.259.gc128427fd7-goog |
| |