diff options
Diffstat (limited to 'src/vulkan')
-rw-r--r-- | src/vulkan/wsi/wsi_common_wayland.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c index ad653848b82..cf978ea3bf6 100644 --- a/src/vulkan/wsi/wsi_common_wayland.c +++ b/src/vulkan/wsi/wsi_common_wayland.c @@ -774,9 +774,14 @@ wsi_wl_swapchain_acquire_next_image(struct wsi_swapchain *wsi_chain, } } - /* This time we do a blocking dispatch because we can't go - * anywhere until we get an event. + /* We now have to do a blocking dispatch, because all our images + * are in use and we cannot return one until the server does. However, + * if the client has requested non-blocking ANI, then we tell it up front + * that we have nothing to return. */ + if (info->timeout == 0) + return VK_NOT_READY; + int ret = wl_display_roundtrip_queue(chain->display->wl_display, chain->display->queue); if (ret < 0) |