I'm preparing a new release of my Vulkan Hardware Capability viewer that uses vkGetPhysicalDeviceFeatures/Properties2KHR to read out additional features and properties for new extensions (when available) and on my Intel Haswell with a recent MESA version (os is Ubuntu 16.04) calling one of these functions always crashes. The function pointers are valid, and running these on other devices/operating systems works fine so this may be a driver related problem. To support the new feature and property functions I do the following: - Enable "VK_KHR_get_physical_device_properties2" at instance level - Get function pointers for both functions: pfnGetPhysicalDeviceFeatures2KHR = reinterpret_cast<PFN_vkGetPhysicalDeviceFeatures2KHR>(vkGetInstanceProcAddr(vkInstance, "vkGetPhysicalDeviceFeatures2KHR")); pfnGetPhysicalDeviceProperties2KHR = reinterpret_cast<PFN_vkGetPhysicalDeviceProperties2KHR>(vkGetInstanceProcAddr(vkInstance, "vkGetPhysicalDeviceProperties2KHR")); - Both function pointers are valid - Read out an extension specific feature/property like this: if (extensionSupported(VK_KHX_MULTIVIEW_EXTENSION_NAME)) { VkPhysicalDeviceFeatures2KHR deviceFeatures2{}; VkPhysicalDeviceMultiviewFeaturesKHX multiViewFeatures{}; multiViewFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX; deviceFeatures2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR; deviceFeatures2.pNext = &multiViewFeatures; pfnGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); features2.push_back(Feature2("multiview", multiViewFeatures.multiview, VK_KHX_MULTIVIEW_EXTENSION_NAME)); features2.push_back(Feature2("multiviewGeometryShader", multiViewFeatures.multiviewGeometryShader, VK_KHX_MULTIVIEW_EXTENSION_NAME)); features2.push_back(Feature2("multiviewTessellationShader", multiViewFeatures.multiviewTessellationShader, VK_KHX_MULTIVIEW_EXTENSION_NAME)); } This will always crash at pfnGetPhysicalDeviceFeatures2KHR, same for pfnGetPhysicalDeviceProperties2KHR.
Created attachment 131528 [details] relevant part of strace dump before the sigsev I have attached a trace of the sigsev. I'll post-pone the next version of the Vulkan Hardware Capability viewer as I'm not able to catch this and don't just want to disable this on all Intel GPUs for Linux.
A backtrace from GDB would be more useful than strace. I tried to build it so that I could reproduce but I got this: vulkanDeviceInfo.hpp:47:35: fatal error: sys/system_properties.h: No such file or directory Any suggestions?
That unit should only be included on Android. I've fixed the define, so the application should compile file on Linux now. Please note that you need to get the "develop" (https://github.com/SaschaWillems/VulkanCapsViewer/tree/develop) branch as I haven't merged this functionality into master yet. Thanks for looking into this. I've tried everything available and I'm still not 100% sure if this not an application bug.
I'm using this PPA: https://launchpad.net/~paulo-miguel-dias/+archive/ubuntu/mesa which is build from git Version is 17.2.0-devel Platform is Intel Ivybrdige, not Haswell (as I wrote in my initial post)
Sorry, looks like this was my fault. Recent LunarG SDKs no longer copy binaries to the system locations and as such I still had a very old libvulkan.so that seemed to cause the crash. Manually installing a recent libvulkan.so got it working.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.