#define VULKAN_GLOBAL_FNS \
    FN(vkEnumerateInstanceVersion) \
    FN(vkCreateInstance)
    
#define VULKAN_INSTANCE_FNS \
    FN(vkDestroyInstance) \
    FN(vkDestroySurfaceKHR) \
    FN(vkEnumeratePhysicalDevices) \
    FN(vkGetPhysicalDeviceProperties) \
    FN(vkGetPhysicalDeviceQueueFamilyProperties) \
    FN(vkCreateDevice) \
    FN(vkGetDeviceProcAddr) \
    FN(vkGetPhysicalDeviceSurfaceCapabilitiesKHR) \
    FN(vkGetPhysicalDeviceSurfaceFormatsKHR) \
    FN(vkGetPhysicalDeviceSurfacePresentModesKHR)

#define VULKAN_DEVICE_FNS \
    FN(vkDestroyDevice) \
    FN(vkGetDeviceQueue) \
    FN(vkCreateSwapchainKHR) \
    FN(vkDestroySwapchainKHR) \
    FN(vkGetSwapchainImagesKHR) \
    FN(vkAcquireNextImageKHR) \
    FN(vkQueuePresentKHR)