From 093d424eb48b2fae917547b48deb2e0a45efbed3 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic <steven.lerouzic@gmail.com> Date: Sat, 1 Feb 2025 00:05:19 +0100 Subject: Vulkan device creation --- hk21/vulkan_loader/loader.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'hk21/vulkan_loader/loader.cpp') diff --git a/hk21/vulkan_loader/loader.cpp b/hk21/vulkan_loader/loader.cpp index 2a58cd9..4b2b6d6 100644 --- a/hk21/vulkan_loader/loader.cpp +++ b/hk21/vulkan_loader/loader.cpp @@ -3,6 +3,7 @@ #define FN(NAME) PFN_##NAME NAME; VULKAN_GLOBAL_FNS VULKAN_INSTANCE_FNS +VULKAN_DEVICE_FNS #undef FN asl::status vulkan_loader::load_global(PFN_vkGetInstanceProcAddr load_fn) @@ -43,3 +44,20 @@ VULKAN_INSTANCE_FNS return has_errors ? asl::runtime_error("Couldn't load Vulkan instance functions") : asl::ok(); } +asl::status vulkan_loader::load_device(VkDevice device) +{ + bool has_errors = false; + +#define FN(NAME) \ + NAME = asl::bit_cast<PFN_##NAME>(vkGetDeviceProcAddr(device, #NAME)); \ + if (NAME == nullptr) \ + { \ + ASL_ASSERT(NAME != nullptr); \ + has_errors = true; \ + } +VULKAN_DEVICE_FNS +#undef FN + + return has_errors ? asl::runtime_error("Couldn't load Vulkan device functions") : asl::ok(); +} + -- cgit