Previously we'd note that the fence wasn't submitted to a queue, and so
never call RetireWorkOnQueue, which is the only thing that marked the
fence as retired. In the WSI fence case, we still aren't doing any
tracking of completion of the WSI operation (we should! image ownership
is easily fouled up!) but we can at least retire the fence.
Fixes #954.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
getQueueNode(dev_data, pFence->signaler.first),
pFence->signaler.second);
}
-
- return false;
+ else {
+ /* Fence signaller is the WSI. We're not tracking what the WSI op
+ * actually /was/ in CV yet, but we need to mark the fence as retired.
+ */
+ pFence->state = FENCE_RETIRED;
+ return false;
+ }
}
VKAPI_ATTR VkResult VKAPI_CALL
VkResult result = dev_data->device_dispatch_table->GetFenceStatus(device, fence);
lock.lock();
if (result == VK_SUCCESS) {
- skip_call |= RetireFence(fence);
+ skip_call |= RetireFence(dev_data, fence);
}
lock.unlock();
if (skip_call)