1 diff -dur -x '*~' -x '*.orig' -x '*.rej' vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/layers/mem_tracker.cpp vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/layers/mem_tracker.cpp
2 --- vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/layers/mem_tracker.cpp 2016-02-22 22:02:54.000000000 +0100
3 +++ vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/layers/mem_tracker.cpp 2016-03-05 15:37:45.230208306 +0100
4 @@ -2120,14 +2120,16 @@
5 " already in SIGNALED state.",
6 apiCall, (uint64_t)fence);
8 - if (!pFenceInfo->second
9 - .queue) { // Checking status of unsubmitted fence
10 + if (!pFenceInfo->second.queue &&
12 + .swapchain) { // Checking status of unsubmitted fence
14 my_data->report_data, VK_DEBUG_REPORT_WARNING_BIT_EXT,
15 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, (uint64_t)fence,
16 __LINE__, MEMTRACK_INVALID_FENCE_STATE, "MEM",
17 "%s called for fence %#" PRIxLEAST64
18 - " which has not been submitted on a Queue.",
19 + " which has not been submitted on a Queue or during "
20 + "acquire next image.",
21 apiCall, (uint64_t)fence);
24 @@ -3439,6 +3441,10 @@
26 my_data->semaphoreMap[semaphore] = MEMTRACK_SEMAPHORE_STATE_SIGNALLED;
28 + auto fence_data = my_data->fenceMap.find(fence);
29 + if (fence_data != my_data->fenceMap.end()) {
30 + fence_data->second.swapchain = swapchain;
32 loader_platform_thread_unlock_mutex(&globalLock);
33 if (VK_FALSE == skipCall) {
34 result = my_data->device_dispatch_table->AcquireNextImageKHR(
35 diff -dur -x '*~' -x '*.orig' -x '*.rej' vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/layers/mem_tracker.h vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/layers/mem_tracker.h
36 --- vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/layers/mem_tracker.h 2016-02-22 22:02:54.000000000 +0100
37 +++ vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/layers/mem_tracker.h 2016-03-05 15:38:14.170910811 +0100
39 struct MT_FENCE_INFO {
40 uint64_t fenceId; // Sequence number for fence at last submit
41 VkQueue queue; // Queue that this fence is submitted against or NULL
43 + swapchain; // Swapchain that this fence is submitted against or NULL
44 VkBool32 firstTimeFlag; // Fence was created in signaled state, avoid
45 // warnings for first use
46 VkFenceCreateInfo createInfo;