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 e9e00eb96730ab978fea115240e8a3ae16e84d97..8c59344a3c8593d902495cc961bfd7205a904289 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;