[packages/vulkan-sdk] Fix false-positive in mem tracker validation layer
jajcus
jajcus at pld-linux.org
Sat Mar 5 15:51:48 CET 2016
commit ace27fac324e6a2d75986e61f8bce8d1fc6f5324
Author: Jacek Konieczny <jajcus at jajcus.net>
Date: Sat Mar 5 15:50:14 2016 +0100
Fix false-positive in mem tracker validation layer
Patch from:
https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/commit/e1a61848f5d302c52bd4775b6421007498194745
rel. 7
validation_swapchain_fence.patch | 46 ++++++++++++++++++++++++++++++++++++++++
vulkan-sdk.spec | 4 +++-
2 files changed, 49 insertions(+), 1 deletion(-)
---
diff --git a/vulkan-sdk.spec b/vulkan-sdk.spec
index 3d2d90a..1f24a8f 100644
--- a/vulkan-sdk.spec
+++ b/vulkan-sdk.spec
@@ -19,7 +19,7 @@
%define tools_commit e5dccf86cf999ff9988be97337d0e3a3d508b085
# master branch
%define lg_commit 0a73713f0d664aa97a7e359f567a16d7c3fce359
-%define rel 6
+%define rel 7
Summary: LunarG Vulkan SDK
Name: vulkan-sdk
Version: 1.0.3.0
@@ -40,6 +40,7 @@ Patch2: demos_out_of_src.patch
Patch3: rpath.patch
Patch4: loader_repo_name.patch
Patch5: wayland.patch
+Patch6: validation_swapchain_fence.patch
URL: http://lunarg.com/vulkan-sdk/
%{?with_icd:BuildRequires: Mesa-libGL-devel}
BuildRequires: bison
@@ -151,6 +152,7 @@ mv VulkanTools-%{tools_commit} VulkanTools
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
%if %{with icd}
mv LunarGLASS-%{lg_commit} LunarGLASS
diff --git a/validation_swapchain_fence.patch b/validation_swapchain_fence.patch
new file mode 100644
index 0000000..b98cfb2
--- /dev/null
+++ b/validation_swapchain_fence.patch
@@ -0,0 +1,46 @@
+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
+--- vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/layers/mem_tracker.cpp 2016-02-22 22:02:54.000000000 +0100
++++ vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/layers/mem_tracker.cpp 2016-03-05 15:37:45.230208306 +0100
+@@ -2120,14 +2120,16 @@
+ " already in SIGNALED state.",
+ apiCall, (uint64_t)fence);
+ }
+- if (!pFenceInfo->second
+- .queue) { // Checking status of unsubmitted fence
++ if (!pFenceInfo->second.queue &&
++ !pFenceInfo->second
++ .swapchain) { // Checking status of unsubmitted fence
+ skipCall |= log_msg(
+ my_data->report_data, VK_DEBUG_REPORT_WARNING_BIT_EXT,
+ VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, (uint64_t)fence,
+ __LINE__, MEMTRACK_INVALID_FENCE_STATE, "MEM",
+ "%s called for fence %#" PRIxLEAST64
+- " which has not been submitted on a Queue.",
++ " which has not been submitted on a Queue or during "
++ "acquire next image.",
+ apiCall, (uint64_t)fence);
+ }
+ } else {
+@@ -3439,6 +3441,10 @@
+ }
+ my_data->semaphoreMap[semaphore] = MEMTRACK_SEMAPHORE_STATE_SIGNALLED;
+ }
++ auto fence_data = my_data->fenceMap.find(fence);
++ if (fence_data != my_data->fenceMap.end()) {
++ fence_data->second.swapchain = swapchain;
++ }
+ loader_platform_thread_unlock_mutex(&globalLock);
+ if (VK_FALSE == skipCall) {
+ result = my_data->device_dispatch_table->AcquireNextImageKHR(
+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
+--- vulkan-sdk-1.0.3.0.orig/Vulkan-LoaderAndValidationLayers/layers/mem_tracker.h 2016-02-22 22:02:54.000000000 +0100
++++ vulkan-sdk-1.0.3.0/Vulkan-LoaderAndValidationLayers/layers/mem_tracker.h 2016-03-05 15:38:14.170910811 +0100
+@@ -206,6 +206,8 @@
+ struct MT_FENCE_INFO {
+ uint64_t fenceId; // Sequence number for fence at last submit
+ VkQueue queue; // Queue that this fence is submitted against or NULL
++ VkSwapchainKHR
++ swapchain; // Swapchain that this fence is submitted against or NULL
+ VkBool32 firstTimeFlag; // Fence was created in signaled state, avoid
+ // warnings for first use
+ VkFenceCreateInfo createInfo;
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/vulkan-sdk.git/commitdiff/ace27fac324e6a2d75986e61f8bce8d1fc6f5324
More information about the pld-cvs-commit
mailing list