zink: wait on queues during screen destroy
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

there might somehow be operations active

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36289>
This commit is contained in:
Mike Blumenkrantz 2025-07-22 10:55:16 -04:00 committed by Marge Bot
parent 8931672eef
commit 61633e0a2e

View file

@ -1460,6 +1460,20 @@ zink_destroy_screen(struct pipe_screen *pscreen)
{
struct zink_screen *screen = zink_screen(pscreen);
if (!screen->device_lost && screen->queue) {
VkResult result = VKSCR(QueueWaitIdle)(screen->queue);
if (result != VK_SUCCESS)
mesa_loge("ZINK: vkQueueWaitIdle failed (%s)", vk_Result_to_str(result));
if (screen->queue_sparse && screen->queue_sparse != screen->queue) {
result = VKSCR(QueueWaitIdle)(screen->queue_sparse);
if (result != VK_SUCCESS)
mesa_loge("ZINK: vkQueueWaitIdle failed (%s)", vk_Result_to_str(result));
}
}
if (screen->renderdoc_capture_all && p_atomic_dec_zero(&num_screens))
screen->renderdoc_api->EndFrameCapture(RENDERDOC_DEVICEPOINTER_FROM_VKINSTANCE(screen->instance), NULL);