From bebfb17a2b50f9890262e9c713cbb138796a1819 Mon Sep 17 00:00:00 2001 From: Jonathan Marek Date: Sun, 24 Nov 2019 09:42:43 -0500 Subject: [PATCH] turnip: fix display wsi fence timing out Fixes: df9f2adf ("turnip: add display wsi") Signed-off-by: Jonathan Marek Reviewed-by: Eric Anholt --- src/freedreno/vulkan/tu_fence.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/freedreno/vulkan/tu_fence.c b/src/freedreno/vulkan/tu_fence.c index 68c1f31c0b8..9e4a92370f8 100644 --- a/src/freedreno/vulkan/tu_fence.c +++ b/src/freedreno/vulkan/tu_fence.c @@ -211,6 +211,10 @@ tu_fence_init_poll_fds(uint32_t fence_count, for (uint32_t i = 0; i < fence_count; i++) { TU_FROM_HANDLE(tu_fence, fence, fences[i]); + /* skip wsi fences */ + if (fence->fence_wsi) + continue; + if (fence->signaled) { if (wait_all) { /* skip signaled fences */ @@ -292,6 +296,10 @@ tu_fence_update_fences_and_poll_fds(uint32_t fence_count, for (uint32_t i = 0; i < fence_count; i++) { TU_FROM_HANDLE(tu_fence, fence, fences[i]); + /* skip wsi fences */ + if (fence->fence_wsi) + continue; + /* no signaled fence in fds */ if (fence->signaled) continue; @@ -352,6 +360,9 @@ tu_WaitForFences(VkDevice _device, if (fds != stack_fds) vk_free(&device->alloc, fds); + if (result != VK_SUCCESS) + return result; + for (uint32_t i = 0; i < fenceCount; ++i) { TU_FROM_HANDLE(tu_fence, fence, pFences[i]); if (fence->fence_wsi) { -- 2.30.2