vulkan/queue: Destroy wait temps if they are skipped

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6223
Fixes: 8a11d2a31b ("vulkan: Add a dummy sync type")
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Tested-by: Jakob Bornecrantz <jakob@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15727>
(cherry picked from commit 4489933842)
This commit is contained in:
Benjamin Cheng 2022-04-03 19:03:56 -04:00 committed by Dylan Baker
parent af9047ff9d
commit c41ecec55f
2 changed files with 10 additions and 2 deletions

View file

@ -652,7 +652,7 @@
"description": "vulkan/queue: Destroy wait temps if they are skipped",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"because_sha": "8a11d2a31bf931deca05c79871aeaf1441fb777e"
},
{

View file

@ -293,8 +293,16 @@ vk_queue_submit_final(struct vk_queue *queue,
continue;
/* Waits on dummy vk_syncs are no-ops */
if (vk_sync_type_is_dummy(submit->waits[i].sync->type))
if (vk_sync_type_is_dummy(submit->waits[i].sync->type)) {
/* We are about to lose track of this wait, if it has a temporary
* we need to destroy it now, as vk_queue_submit_cleanup will not
* know about it */
if (submit->_wait_temps[i] != NULL) {
vk_sync_destroy(queue->base.device, submit->_wait_temps[i]);
submit->waits[i].sync = NULL;
}
continue;
}
/* For emulated timelines, we have a binary vk_sync associated with
* each time point and pass the binary vk_sync to the driver.