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

Author: Bas Nieuwenhuizen <[email protected]>
Date:   Mon Feb 26 22:54:06 2018 +0100

radv: Implement waiting on non-submitted fences.

Fixes: f4e499ec79 "radv: add initial non-conformant radv vulkan driver"
Reviewed-by: Dave Airlie <[email protected]>

---

 src/amd/vulkan/radv_device.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 24ea3b689e..8eadd8f203 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -2946,8 +2946,17 @@ VkResult radv_WaitForFences(
                if (fence->signalled)
                        continue;
 
-               if (!fence->submitted)
-                       return VK_TIMEOUT;
+               if (!fence->submitted) {
+                       while(radv_get_current_time() <= timeout && 
!fence->submitted)
+                               /* Do nothing */;
+
+                       if (!fence->submitted)
+                               return VK_TIMEOUT;
+
+                       /* Recheck as it may have been set by submitting 
operations. */
+                       if (fence->signalled)
+                               continue;
+               }
 
                expired = device->ws->fence_wait(device->ws, fence->fence, 
true, timeout);
                if (!expired)

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to