v3dv: do a better job at cleaning up the device on init failure
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 <apinheiro@igalia.com> Reviewed-by: Eric Engestrom <eric@igalia.com> cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19458>
This commit is contained in:
@@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user