diff --git a/.pick_status.json b/.pick_status.json index 39acf3a1e5d..f7671314aae 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -504,7 +504,7 @@ "description": "screenshot-layer: Fix leftover VK queues in the map at DeviceDestroy.", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "111faf215886a25ce855ca15354d5651bd3d972b", "notes": null diff --git a/src/vulkan/screenshot-layer/screenshot.cpp b/src/vulkan/screenshot-layer/screenshot.cpp index f257b83f4db..8e9972c26d3 100644 --- a/src/vulkan/screenshot-layer/screenshot.cpp +++ b/src/vulkan/screenshot-layer/screenshot.cpp @@ -333,21 +333,20 @@ static void destroy_queue(struct queue_data *data) ralloc_free(data); } -static void device_destroy_queues(struct device_data *data) +static void destroy_device_data(struct device_data *data) { + loader_platform_thread_lock_mutex(&globalLock); + struct queue_data *tmp_queue = VK_NULL_HANDLE; for (auto it = data->queue_data_head; it != VK_NULL_HANDLE;) { tmp_queue = it->next; destroy_queue(it); it = tmp_queue; } -} -static void destroy_device_data(struct device_data *data) -{ - loader_platform_thread_lock_mutex(&globalLock); unmap_object(HKEY(data->device)); ralloc_free(data); + loader_platform_thread_unlock_mutex(&globalLock); }