From 12ecf25618daab6fe03473c8694e0bd08b47ff6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Wed, 25 Sep 2024 16:04:36 +0200 Subject: [PATCH] Refactor the LOAD_INSTANCE_FUNC macro to load a function --- Common/GPU/Vulkan/VulkanLoader.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Common/GPU/Vulkan/VulkanLoader.cpp b/Common/GPU/Vulkan/VulkanLoader.cpp index 22ad227988..048be8b0cf 100644 --- a/Common/GPU/Vulkan/VulkanLoader.cpp +++ b/Common/GPU/Vulkan/VulkanLoader.cpp @@ -264,7 +264,16 @@ static VulkanLibraryHandle vulkanLibrary; bool g_vulkanAvailabilityChecked = false; bool g_vulkanMayBeAvailable = false; -#define LOAD_INSTANCE_FUNC(instance, x) x = (PFN_ ## x)vkGetInstanceProcAddr(instance, #x); if (!x) {INFO_LOG(Log::G3D, "Missing (instance): %s", #x);} +static void *LoadInstanceFunc(VkInstance instance, const char *name) { + void *funcPtr = vkGetInstanceProcAddr(instance, name); + if (!funcPtr) { + INFO_LOG(Log::G3D, "Missing function (instance): %s", name); + return nullptr; + } + return funcPtr; +} +#define LOAD_INSTANCE_FUNC(instance, x) x = (PFN_ ## x)LoadInstanceFunc(instance, #x); + #define LOAD_INSTANCE_FUNC_CORE(instance, x, ext_x, min_core) \ x = (PFN_ ## x)vkGetInstanceProcAddr(instance, vulkanApiVersion >= min_core ? #x : #ext_x); \ if (vulkanApiVersion >= min_core && !x) x = (PFN_ ## x)vkGetInstanceProcAddr(instance, #ext_x); \