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.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index 4659a248..6f2ea1ad 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -4218,6 +4218,12 @@ static bool decrementResources(layer_data *my_data, uint32_t fenceCount, const V
queue_pair->second.lastFences.erase(last_fence_data);
}
}
+ for (auto& fence_data : my_data->fenceMap) {
+ auto prior_fence_data =
+ std::find(fence_data.second.priorFences.begin(), fence_data.second.priorFences.end(), fence_pair.first);
+ if (prior_fence_data != fence_data.second.priorFences.end())
+ fence_data.second.priorFences.erase(prior_fence_data);
+ }
}
return skip_call;
}
@@ -5371,6 +5377,7 @@ VKAPI_ATTR VkResult VKAPI_CALL ResetFences(VkDevice device, uint32_t fenceCount,
if (fence_item != dev_data->fenceMap.end()) {
fence_item->second.needsSignaled = true;
fence_item->second.queues.clear();
+ fence_item->second.priorFences.clear();
if (fence_item->second.in_use.load()) {
skipCall |=
log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,