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
