Add vulkan_loader

This commit is contained in:
2025-01-21 21:49:20 +01:00
parent a106e1cf85
commit edb38589b1
6 changed files with 82 additions and 5 deletions

View File

@ -6,6 +6,6 @@ cc_binary(
deps = [
"@asl//asl",
"@sdl3_windows//:sdl3",
"//vendor/vulkan",
"//hk21/vulkan_loader",
],
)

View File

@ -5,10 +5,7 @@
#include <SDL3/SDL_main.h>
#include <SDL3/SDL_vulkan.h>
#define VK_NO_STDDEF_H
#define VK_NO_STDINT_H
#define VK_NO_PROTOTYPES
#include <vulkan.h>
#include "hk21/vulkan_loader/api.hpp"
int SDL_main(int /* argc */, char* /* argv */[])
{
@ -36,6 +33,20 @@ int SDL_main(int /* argc */, char* /* argv */[])
instance_extensions.push(VK_EXT_DEBUG_UTILS_EXTENSION_NAME);
device_extensions.push(VK_KHR_SWAPCHAIN_EXTENSION_NAME);
auto vkGetInstanceProcAddr = asl::bit_cast<PFN_vkGetInstanceProcAddr>(SDL_Vulkan_GetVkGetInstanceProcAddr());
auto status = vulkan_loader::load_global(vkGetInstanceProcAddr);
if (!status.ok())
{
asl::eprint("Couldn't load global Vulkan functions: {}\n", status);
}
uint32_t version{};
vkEnumerateInstanceVersion(&version);
asl::print("Vulkan version: {}.{}\n",
VK_API_VERSION_MAJOR(version), // NOLINT
VK_API_VERSION_MINOR(version)); // NOLINT
bool running = true;
while (running)