radv: Skip already signalled fences.
authorGustaw Smolarczyk <wielkiegie@gmail.com>
Wed, 5 Oct 2016 23:09:54 +0000 (01:09 +0200)
committerDave Airlie <airlied@redhat.com>
Thu, 6 Oct 2016 23:24:09 +0000 (09:24 +1000)
If the user created a fence with VK_FENCE_CREATE_SIGNALED_BIT set, we
shouldn't fail to wait for a fence if it was not submitted since that is
not necessary.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/radv_device.c

index e9e00eb..8c59344 100644 (file)
@@ -1119,12 +1119,12 @@ VkResult radv_WaitForFences(
                RADV_FROM_HANDLE(radv_fence, fence, pFences[i]);
                bool expired = false;
 
-               if (!fence->submitted)
-                       return VK_TIMEOUT;
-
                if (fence->signalled)
                        continue;
 
+               if (!fence->submitted)
+                       return VK_TIMEOUT;
+
                expired = device->ws->fence_wait(device->ws, fence->fence, true, timeout);
                if (!expired)
                        return VK_TIMEOUT;