55 #define CURRENT_LOADER_ICD_INTERFACE_VERSION 7
56 #define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0
57 #define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION 4
63 #ifndef PFN_GetPhysicalDeviceProcAddr
71 #if defined(VK_USE_PLATFORM_WIN32_KHR)
72 typedef VkResult (
VKAPI_PTR *PFN_vk_icdEnumerateAdapterPhysicalDevices)(VkInstance instance,
LUID adapterLUID,
73 uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
77 #if !defined(VK_NO_PROTOTYPES)
84 #if defined(VK_USE_PLATFORM_WIN32_KHR)
86 uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
99 #define ICD_LOADER_MAGIC 0x01CDC0DE
106 static inline void set_loader_magic_value(
void *pNewObject) {
111 static inline bool valid_loader_magic_value(
void *pNewObject) {
143 #ifdef VK_USE_PLATFORM_MIR_KHR
146 MirConnection *connection;
147 MirSurface *mirSurface;
149 #endif // VK_USE_PLATFORM_MIR_KHR
151 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
154 struct wl_display *display;
156 } VkIcdSurfaceWayland;
157 #endif // VK_USE_PLATFORM_WAYLAND_KHR
159 #ifdef VK_USE_PLATFORM_WIN32_KHR
165 #endif // VK_USE_PLATFORM_WIN32_KHR
167 #ifdef VK_USE_PLATFORM_XCB_KHR
170 xcb_connection_t *connection;
173 #endif // VK_USE_PLATFORM_XCB_KHR
175 #ifdef VK_USE_PLATFORM_XLIB_KHR
181 #endif // VK_USE_PLATFORM_XLIB_KHR
183 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
188 } VkIcdSurfaceDirectFB;
189 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
191 #ifdef VK_USE_PLATFORM_ANDROID_KHR
194 struct ANativeWindow *window;
195 } VkIcdSurfaceAndroid;
196 #endif // VK_USE_PLATFORM_ANDROID_KHR
198 #ifdef VK_USE_PLATFORM_MACOS_MVK
203 #endif // VK_USE_PLATFORM_MACOS_MVK
205 #ifdef VK_USE_PLATFORM_IOS_MVK
210 #endif // VK_USE_PLATFORM_IOS_MVK
212 #ifdef VK_USE_PLATFORM_GGP
215 GgpStreamDescriptor streamDescriptor;
217 #endif // VK_USE_PLATFORM_GGP
234 #ifdef VK_USE_PLATFORM_METAL_EXT
239 #endif // VK_USE_PLATFORM_METAL_EXT
241 #ifdef VK_USE_PLATFORM_VI_NN
246 #endif // VK_USE_PLATFORM_VI_NN
248 #ifdef VK_USE_PLATFORM_SCREEN_QNX
251 struct _screen_context *context;
252 struct _screen_window *window;
253 } VkIcdSurfaceScreen;
254 #endif // VK_USE_PLATFORM_SCREEN_QNX
256 #ifdef VK_USE_PLATFORM_FUCHSIA
259 } VkIcdSurfaceImagePipe;
260 #endif // VK_USE_PLATFORM_FUCHSIA
VkResult(VKAPI_PTR * PFN_vk_icdNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion)
VkSurfaceTransformFlagBitsKHR transform
fallback_uintptr uintptr_t
VkDisplayPlaneAlphaFlagBitsKHR alphaMode
VkIcdWsiPlatform platform
void(VKAPI_PTR * PFN_vkVoidFunction)(void)
VKAPI_ATTR VkResult VKAPI_CALL vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t *pVersion)
VkResult(VKAPI_PTR * PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion)
VkDisplayModeKHR displayMode
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr(VkInstance isntance, const char *pName)
VkDisplayPlaneAlphaFlagBitsKHR
PFN_vkVoidFunction(VKAPI_PTR * PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char *pName)
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char *pName)
PFN_vkVoidFunction(VKAPI_PTR * PFN_vk_icdGetPhysicalDeviceProcAddr)(VkInstance instance, const char *pName)
VkSurfaceTransformFlagBitsKHR
PFN_vkVoidFunction(VKAPI_PTR * PFN_vk_icdGetInstanceProcAddr)(VkInstance instance, const char *pName)