zink: if AcquireNextImageKHR fails with VK_NOT_READY or VK_TIMEOUT retry
Gradually increase timeout until we reach a limit on which we abort.
This fixes a crash with
spec@ext_framebuffer_blit@fbo-blit-check-limits
on llvmpipe.
Fixes: d1cac5ed05
zink: acquire - maybe clear timeout after waiting for presentation fence
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28558>
This commit is contained in:
@@ -574,6 +574,12 @@ kopper_acquire(struct zink_screen *screen, struct zink_resource *res, uint64_t t
|
||||
res->obj->new_dt = true;
|
||||
continue;
|
||||
}
|
||||
if (ret == VK_NOT_READY || ret == VK_TIMEOUT) {
|
||||
if (timeout > 1000000)
|
||||
unreachable("kopper_acquire: updated timeout after failure has become unreasonable large");
|
||||
timeout += 4000;
|
||||
continue;
|
||||
}
|
||||
VKSCR(DestroySemaphore)(screen->dev, acquire, NULL);
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user