From e02f9fd89b059919baf3a8d8bf8b783470976a27 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Sat, 27 Apr 2024 01:16:21 +0200 Subject: Some work on Vulkan initialization --- deimos/vulkan/vulkan_loader.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'deimos/vulkan/vulkan_loader.cpp') diff --git a/deimos/vulkan/vulkan_loader.cpp b/deimos/vulkan/vulkan_loader.cpp index ddd5cf0..0760c67 100644 --- a/deimos/vulkan/vulkan_loader.cpp +++ b/deimos/vulkan/vulkan_loader.cpp @@ -31,16 +31,32 @@ public: else { deimos_Panic("Couldn't load Vulkan DLL"); - return nullptr; } } VulkanApi* api = m_allocator->New(); + #define FN(NAME) api->NAME = (PFN_vk##NAME)os_api->dll->GetSymbol(m_vulkan_dll, "vk" #NAME); +#include "deimos/vulkan/vulkan_bootstrap_functions.inc" +#undef FN + +#define FN(NAME) api->NAME = (PFN_vk##NAME)api->GetInstanceProcAddr(VK_NULL_HANDLE, "vk" #NAME); #include "deimos/vulkan/vulkan_entry_functions.inc" #undef FN + return api; } + + void LoadInstance(VulkanApi* api, VkInstance instance) override + { + Expects(api != nullptr); + Expects(instance != VK_NULL_HANDLE); + Expects(api->GetInstanceProcAddr != nullptr); + +#define FN(NAME) api->NAME = (PFN_vk##NAME)api->GetInstanceProcAddr(instance, "vk" #NAME); +#include "deimos/vulkan/vulkan_instance_functions.inc" +#undef FN + } }; void RegisterVulkanLoaderApi(ApiRegistry* registry) -- cgit