Huge Vulkan refactor

This commit is contained in:
Jack Andersen
2018-05-21 21:48:13 -10:00
parent eaff1ba744
commit 721d10919b
7 changed files with 10064 additions and 820 deletions

View File

@@ -538,7 +538,13 @@ public:
}
m_callback.appQuitting(this);
clientThread.join();
if (clientThread.joinable())
clientThread.join();
#if BOO_HAS_VULKAN
g_VulkanContext.destroyDevice();
#endif
return clientReturn;
}

View File

@@ -726,11 +726,9 @@ public:
Log.report(logvisor::Fatal, "unable to resolve glXWaitVideoSyncSGI");
}
vk::init_dispatch_table_top(PFN_vkGetInstanceProcAddr(getVkProc));
if (m_ctx->m_instance == VK_NULL_HANDLE)
m_ctx->initVulkan(APP->getUniqueName());
m_ctx->initVulkan(APP->getUniqueName(), PFN_vkGetInstanceProcAddr(getVkProc));
vk::init_dispatch_table_middle(m_ctx->m_instance, false);
if (!m_ctx->enumerateDevices())
return false;
@@ -781,8 +779,6 @@ public:
}
free(supportsPresent);
vk::init_dispatch_table_bottom(m_ctx->m_instance, m_ctx->m_dev);
if (!vk::GetPhysicalDeviceXcbPresentationSupportKHR(m_ctx->m_gpus[0], m_ctx->m_graphicsQueueFamilyIndex, m_xcbConn, m_visualid))
{
Log.report(logvisor::Fatal, "XCB visual doesn't support vulkan present");