Module: Mesa Branch: main Commit: 5f7333b1889740317550a3fd1336ad62a179e0d8 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5f7333b1889740317550a3fd1336ad62a179e0d8
Author: Mike Blumenkrantz <[email protected]> Date: Wed Aug 30 16:09:54 2023 -0400 zink: add a screen cache for fd semaphores Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24962> --- src/gallium/drivers/zink/zink_screen.c | 3 +++ src/gallium/drivers/zink/zink_types.h | 1 + 2 files changed, 4 insertions(+) diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 634182ecfd2..6da99be70d5 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -1511,6 +1511,8 @@ zink_destroy_screen(struct pipe_screen *pscreen) simple_mtx_destroy(&screen->semaphores_lock); while (util_dynarray_contains(&screen->semaphores, VkSemaphore)) VKSCR(DestroySemaphore)(screen->dev, util_dynarray_pop(&screen->semaphores, VkSemaphore), NULL); + while (util_dynarray_contains(&screen->fd_semaphores, VkSemaphore)) + VKSCR(DestroySemaphore)(screen->dev, util_dynarray_pop(&screen->fd_semaphores, VkSemaphore), NULL); if (screen->bindless_layout) VKSCR(DestroyDescriptorSetLayout)(screen->dev, screen->bindless_layout, NULL); @@ -3248,6 +3250,7 @@ zink_internal_create_screen(const struct pipe_screen_config *config, int64_t dev simple_mtx_init(&screen->semaphores_lock, mtx_plain); util_dynarray_init(&screen->semaphores, screen); + util_dynarray_init(&screen->fd_semaphores, screen); util_vertex_state_cache_init(&screen->vertex_state_cache, zink_create_vertex_state, zink_vertex_state_destroy); diff --git a/src/gallium/drivers/zink/zink_types.h b/src/gallium/drivers/zink/zink_types.h index 0dcf7afa502..8399bca650b 100644 --- a/src/gallium/drivers/zink/zink_types.h +++ b/src/gallium/drivers/zink/zink_types.h @@ -1387,6 +1387,7 @@ struct zink_screen { simple_mtx_t semaphores_lock; struct util_dynarray semaphores; + struct util_dynarray fd_semaphores; unsigned buffer_rebind_counter; unsigned image_rebind_counter;
