Mesa (master): turnip: fix display wsi fence timing out

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Dec 2 19:49:46 UTC 2019


Module: Mesa
Branch: master
Commit: bebfb17a2b50f9890262e9c713cbb138796a1819
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bebfb17a2b50f9890262e9c713cbb138796a1819

Author: Jonathan Marek <jonathan at marek.ca>
Date:   Sun Nov 24 09:42:43 2019 -0500

turnip: fix display wsi fence timing out

Fixes: df9f2adf ("turnip: add display wsi")

Signed-off-by: Jonathan Marek <jonathan at marek.ca>
Reviewed-by: Eric Anholt <eric at anholt.net>

---

 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) {




More information about the mesa-commit mailing list