vk: check if vkEnumerateInstanceVersion is null before calling it

vkEnumerateInstanceVersion is only available in vk 1.1 so it might be
null after dynamic loading of entry points.

tentative fix for MINIDUMP-1Z, MINIDUMP-20 and MINIDUMP-21
This commit is contained in:
Flyinghead 2023-01-10 09:58:56 +01:00
parent fceb170a2a
commit 285655f52d
1 changed files with 7 additions and 3 deletions

View File

@ -145,10 +145,14 @@ bool VulkanContext::InitInstance(const char** extensions, uint32_t extensions_co
}
VULKAN_HPP_DEFAULT_DISPATCHER.init(vkGetInstanceProcAddr);
#endif
u32 apiVersion = vk::enumerateInstanceVersion();
bool vulkan11 = false;
if (VULKAN_HPP_DEFAULT_DISPATCHER.vkEnumerateInstanceVersion != nullptr)
{
u32 apiVersion = vk::enumerateInstanceVersion();
bool vulkan11 = VK_API_VERSION_MAJOR(apiVersion) > 1
|| (VK_API_VERSION_MAJOR(apiVersion) == 1 && VK_API_VERSION_MINOR(apiVersion) >= 1);
vulkan11 = VK_API_VERSION_MAJOR(apiVersion) > 1
|| (VK_API_VERSION_MAJOR(apiVersion) == 1 && VK_API_VERSION_MINOR(apiVersion) >= 1);
}
vk::ApplicationInfo applicationInfo("Flycast", 1, "Flycast", 1, vulkan11 ? VK_API_VERSION_1_1 : VK_API_VERSION_1_0);
std::vector<const char *> vext;