aboutsummaryrefslogtreecommitdiff
path: root/layers/core_validation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'layers/core_validation.cpp')
-rw-r--r--layers/core_validation.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index 6fe036c8..bd399bbe 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -5215,8 +5215,13 @@ static bool RetireFence(layer_data *dev_data, VkFence fence) {
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
@@ -5265,7 +5270,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetFenceStatus(VkDevice device, VkFence fence) {
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)