39#define CURRENT_LOADER_ICD_INTERFACE_VERSION 7
40#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0
41#define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION 4
47#ifndef PFN_GetPhysicalDeviceProcAddr
55#if defined(VK_USE_PLATFORM_WIN32_KHR)
56typedef VkResult (
VKAPI_PTR *PFN_vk_icdEnumerateAdapterPhysicalDevices)(VkInstance instance, LUID adapterLUID,
57 uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
61#if !defined(VK_NO_PROTOTYPES)
68#if defined(VK_USE_PLATFORM_WIN32_KHR)
70 uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
83#define ICD_LOADER_MAGIC 0x01CDC0DE
127#ifdef VK_USE_PLATFORM_MIR_KHR
130 MirConnection *connection;
131 MirSurface *mirSurface;
135#ifdef VK_USE_PLATFORM_WAYLAND_KHR
138 struct wl_display *display;
139 struct wl_surface *surface;
140} VkIcdSurfaceWayland;
143#ifdef VK_USE_PLATFORM_WIN32_KHR
151#ifdef VK_USE_PLATFORM_XCB_KHR
154 xcb_connection_t *connection;
159#ifdef VK_USE_PLATFORM_XLIB_KHR
167#ifdef VK_USE_PLATFORM_DIRECTFB_EXT
171 IDirectFBSurface *surface;
172} VkIcdSurfaceDirectFB;
175#ifdef VK_USE_PLATFORM_ANDROID_KHR
178 struct ANativeWindow *window;
179} VkIcdSurfaceAndroid;
182#ifdef VK_USE_PLATFORM_MACOS_MVK
189#ifdef VK_USE_PLATFORM_IOS_MVK
196#ifdef VK_USE_PLATFORM_GGP
199 GgpStreamDescriptor streamDescriptor;
218#ifdef VK_USE_PLATFORM_METAL_EXT
225#ifdef VK_USE_PLATFORM_VI_NN
232#ifdef VK_USE_PLATFORM_SCREEN_QNX
235 struct _screen_context *context;
236 struct _screen_window *window;
240#ifdef VK_USE_PLATFORM_FUCHSIA
243} VkIcdSurfaceImagePipe;
VkIcdWsiPlatform platform
VkDisplayPlaneAlphaFlagBitsKHR alphaMode
VkSurfaceTransformFlagBitsKHR transform
VkDisplayModeKHR displayMode
VkResult(VKAPI_PTR * PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion)
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr(VkInstance instance, const char *pName)
PFN_vkVoidFunction(VKAPI_PTR * PFN_vk_icdGetInstanceProcAddr)(VkInstance instance, const char *pName)
VKAPI_ATTR VkResult VKAPI_CALL vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t *pVersion)
static bool valid_loader_magic_value(void *pNewObject)
PFN_vkVoidFunction(VKAPI_PTR * PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char *pName)
PFN_vkVoidFunction(VKAPI_PTR * PFN_vk_icdGetPhysicalDeviceProcAddr)(VkInstance instance, const char *pName)
VkResult(VKAPI_PTR * PFN_vk_icdNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion)
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char *pName)
static void set_loader_magic_value(void *pNewObject)
@ VK_ICD_WSI_PLATFORM_HEADLESS
@ VK_ICD_WSI_PLATFORM_METAL
@ VK_ICD_WSI_PLATFORM_GGP
@ VK_ICD_WSI_PLATFORM_MACOS
@ VK_ICD_WSI_PLATFORM_DISPLAY
@ VK_ICD_WSI_PLATFORM_SCREEN
@ VK_ICD_WSI_PLATFORM_WAYLAND
@ VK_ICD_WSI_PLATFORM_DIRECTFB
@ VK_ICD_WSI_PLATFORM_XCB
@ VK_ICD_WSI_PLATFORM_XLIB
@ VK_ICD_WSI_PLATFORM_WIN32
@ VK_ICD_WSI_PLATFORM_MIR
@ VK_ICD_WSI_PLATFORM_IOS
@ VK_ICD_WSI_PLATFORM_ANDROID
@ VK_ICD_WSI_PLATFORM_FUCHSIA
VkDisplayPlaneAlphaFlagBitsKHR
VkSurfaceTransformFlagBitsKHR
void(VKAPI_PTR * PFN_vkVoidFunction)(void)