From db192c08837300fe7017195effe047379c69dd96 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 12 Sep 2022 14:47:39 -0400 Subject: [PATCH] zink: handle split acquire/present if the swapchain image is acquired in a different cmdbuf than it gets presented with, the acquire semaphore will have already been submitted by this point, and the swapchain should be flagged as such cc: mesa-stable Reviewed-by: Adam Jackson Part-of: --- src/gallium/drivers/zink/zink_kopper.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/drivers/zink/zink_kopper.c b/src/gallium/drivers/zink/zink_kopper.c index 4ca8b217676c..bc00d5b0828d 100644 --- a/src/gallium/drivers/zink/zink_kopper.c +++ b/src/gallium/drivers/zink/zink_kopper.c @@ -593,6 +593,10 @@ zink_kopper_acquire_submit(struct zink_screen *screen, struct zink_resource *res if (cdt->swapchain->images[res->obj->dt_idx].dt_has_data) return VK_NULL_HANDLE; assert(res->obj->dt_idx != UINT32_MAX); + if (cdt->swapchain->images[res->obj->dt_idx].acquired) { + assert(!cdt->swapchain->images[res->obj->dt_idx].acquire); + return VK_NULL_HANDLE; + } assert(cdt->swapchain->images[res->obj->dt_idx].acquire); cdt->swapchain->images[res->obj->dt_idx].acquired = true; /* this is now owned by the batch */ -- GitLab