Skip to content
Snippets Groups Projects
Commit 020db793 authored by Mike Blumenkrantz's avatar Mike Blumenkrantz :lifter: Committed by Marge Bot
Browse files

zink: preserve present resources during async presentation

ensure that these have a lifetime great enough to be presented

fixes #7781

cc: mesa-stable

Part-of: <mesa/mesa!20793>
parent 482e215a
No related branches found
No related tags found
No related merge requests found
......@@ -733,8 +733,11 @@ kopper_present(void *data, void *gdata, int thread_idx)
}
util_dynarray_append(arr, VkSemaphore, cpi->sem);
out:
if (thread_idx != -1)
if (thread_idx != -1) {
p_atomic_dec(&swapchain->async_presents);
struct pipe_resource *pres = &cpi->res->base.b;
pipe_resource_reference(&pres, NULL);
}
free(cpi);
}
......@@ -783,6 +786,8 @@ zink_kopper_present_queue(struct zink_screen *screen, struct zink_resource *res)
}
if (util_queue_is_initialized(&screen->flush_queue)) {
p_atomic_inc(&cpi->swapchain->async_presents);
struct pipe_resource *pres = NULL;
pipe_resource_reference(&pres, &res->base.b);
util_queue_add_job(&screen->flush_queue, cpi, &cdt->present_fence,
kopper_present, NULL, 0);
} else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment