summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>2023-05-15 09:13:35 -0400
committerMarge Bot <emma+marge@anholt.net>2023-05-15 20:51:40 +0000
commitcd0454646fb07eb5cc673f3855d0e1c2b4c8032f (patch)
treee94786b80b277731cb396e0fc22611774ae81ca7
parent6c90fe189f4652845769d970db4effa9d30bb51b (diff)
downloadmesa-cd0454646fb07eb5cc673f3855d0e1c2b4c8032f.tar.gz
zink: don't leak swapchain readback semaphores
these are considered usable after the queue goes idle, so add them back into the cache Fixes: e9f18f64b9e ("zink: also cache swapchain semaphores") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23033>
-rw-r--r--src/gallium/drivers/zink/zink_kopper.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gallium/drivers/zink/zink_kopper.c b/src/gallium/drivers/zink/zink_kopper.c
index 50f63cb2ba7..24244be81b5 100644
--- a/src/gallium/drivers/zink/zink_kopper.c
+++ b/src/gallium/drivers/zink/zink_kopper.c
@@ -867,6 +867,9 @@ zink_kopper_present_readback(struct zink_context *ctx, struct zink_resource *res
zink_kopper_present_queue(screen, res);
error = VKSCR(QueueWaitIdle)(screen->queue);
+ simple_mtx_lock(&screen->semaphores_lock);
+ util_dynarray_append(&screen->semaphores, VkSemaphore, acquire);
+ simple_mtx_unlock(&screen->semaphores_lock);
return zink_screen_handle_vkresult(screen, error);
}