diff options
author | Steven Le Rouzic <steven.lerouzic@gmail.com> | 2025-02-01 00:05:19 +0100 |
---|---|---|
committer | Steven Le Rouzic <steven.lerouzic@gmail.com> | 2025-02-01 00:05:28 +0100 |
commit | 093d424eb48b2fae917547b48deb2e0a45efbed3 (patch) | |
tree | 29e8e9a1a5f89e123f9eaa0709db8f1d4c382258 /hk21/vulkan_loader/loader.cpp | |
parent | 1f314a6087b276ad8b2680ecb18f43dfe77df595 (diff) |
Vulkan device creation
Diffstat (limited to 'hk21/vulkan_loader/loader.cpp')
-rw-r--r-- | hk21/vulkan_loader/loader.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
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();
+}
+
|