From b78fd50e90c700466213e4b3b40ce10547b1e14e Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Wed, 2 Nov 2022 08:50:24 +0100 Subject: [PATCH] v3dv: do a better job at cleaning up the device on init failure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These leaks on device creation failure have been there before, but were only exposed as CTS failures after the recent event refactoring. Partially fixes: dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic dEQP-VK.api.object_management.alloc_callback_fail.device dEQP-VK.api.object_management.alloc_callback_fail.device_group Reviewed-by: Alejandro PiƱeiro Reviewed-by: Eric Engestrom cc: mesa-stable Part-of: --- src/broadcom/vulkan/v3dv_device.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c index 8f8f39e7735..a72c5771cd8 100644 --- a/src/broadcom/vulkan/v3dv_device.c +++ b/src/broadcom/vulkan/v3dv_device.c @@ -2120,6 +2120,9 @@ v3dv_CreateDevice(VkPhysicalDevice physicalDevice, fail: cnd_destroy(&device->query_ended); mtx_destroy(&device->query_mutex); + queue_finish(&device->queue); + destroy_device_meta(device); + v3dv_pipeline_cache_finish(&device->default_pipeline_cache); vk_device_finish(&device->vk); vk_free(&device->vk.alloc, device);