layers: GL84, Reset vkQueuePresentKHR semaphore state in mem_tracker
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index f2f1871..b621c6e 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -2970,6 +2970,16 @@
if (!skip_call) {
result = my_data->device_dispatch_table->QueuePresentKHR(queue, pPresentInfo);
}
+
+ loader_platform_thread_lock_mutex(&globalLock);
+ for (uint32_t i = 0; i < pPresentInfo->waitSemaphoreCount; i++) {
+ VkSemaphore sem = pPresentInfo->pWaitSemaphores[i];
+ if (my_data->semaphoreMap.find(sem) != my_data->semaphoreMap.end()) {
+ my_data->semaphoreMap[sem] = MEMTRACK_SEMAPHORE_STATE_UNSET;
+ }
+ }
+ loader_platform_thread_unlock_mutex(&globalLock);
+
return result;
}