loader: Started plumbing the platform extensions.
diff --git a/loader/loader.h b/loader/loader.h
index f170f4d..c6e6457 100644
--- a/loader/loader.h
+++ b/loader/loader.h
@@ -32,6 +32,14 @@
#ifndef LOADER_H
#define LOADER_H
+#if defined _WIN32
+#define VK_USE_PLATFORM_WIN32_KHR
+#else
+//#define VK_USE_PLATFORM_MIR_KHR
+//#define VK_USE_PLATFORM_WAYLAND_KHR
+#define VK_USE_PLATFORM_XCB_KHR
+//#define VK_USE_PLATFORM_XLIB_KHR
+#endif
#include <vulkan/vulkan.h>
#include <vk_loader_platform.h>
diff --git a/loader/wsi.c b/loader/wsi.c
index 09a5247..db99fde 100644
--- a/loader/wsi.c
+++ b/loader/wsi.c
@@ -43,25 +43,33 @@
.specVersion = VK_KHR_WIN32_SURFACE_REVISION,
};
#else // _WIN32
+#ifdef VK_USE_PLATFORM_MIR_KHR
static const VkExtensionProperties wsi_mir_surface_extension_info = {
.extensionName = VK_KHR_MIR_SURFACE_EXTENSION_NAME,
.specVersion = VK_KHR_MIR_SURFACE_REVISION,
};
+#endif // VK_USE_PLATFORM_MIR_KHR
+#ifdef VK_USE_PLATFORM_WAYLAND_KHR
static const VkExtensionProperties wsi_wayland_surface_extension_info = {
.extensionName = VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME,
.specVersion = VK_KHR_WAYLAND_SURFACE_REVISION,
};
+#endif // VK_USE_PLATFORM_WAYLAND_KHR
+#ifdef VK_USE_PLATFORM_XCB_KHR
static const VkExtensionProperties wsi_xcb_surface_extension_info = {
.extensionName = VK_KHR_XCB_SURFACE_EXTENSION_NAME,
.specVersion = VK_KHR_XCB_SURFACE_REVISION,
};
+#endif // VK_USE_PLATFORM_XCB_KHR
+#ifdef VK_USE_PLATFORM_XLIB_KHR
static const VkExtensionProperties wsi_xlib_surface_extension_info = {
.extensionName = VK_KHR_XLIB_SURFACE_EXTENSION_NAME,
.specVersion = VK_KHR_XLIB_SURFACE_REVISION,
};
+#endif // VK_USE_PLATFORM_XLIB_KHR
#endif // _WIN32
void wsi_add_instance_extensions(
@@ -72,10 +80,18 @@
#ifdef _WIN32
loader_add_to_ext_list(inst, ext_list, 1, &wsi_win32_surface_extension_info);
#else // _WIN32
+#ifdef VK_USE_PLATFORM_MIR_KHR
loader_add_to_ext_list(inst, ext_list, 1, &wsi_mir_surface_extension_info);
+#endif // VK_USE_PLATFORM_MIR_KHR
+#ifdef VK_USE_PLATFORM_WAYLAND_KHR
loader_add_to_ext_list(inst, ext_list, 1, &wsi_wayland_surface_extension_info);
+#endif // VK_USE_PLATFORM_WAYLAND_KHR
+#ifdef VK_USE_PLATFORM_XCB_KHR
loader_add_to_ext_list(inst, ext_list, 1, &wsi_xcb_surface_extension_info);
+#endif // VK_USE_PLATFORM_XCB_KHR
+#ifdef VK_USE_PLATFORM_XLIB_KHR
loader_add_to_ext_list(inst, ext_list, 1, &wsi_xlib_surface_extension_info);
+#endif // VK_USE_PLATFORM_XLIB_KHR
#endif // _WIN32
}
@@ -83,7 +99,7 @@
struct loader_instance *ptr_instance,
const VkInstanceCreateInfo *pCreateInfo)
{
- ptr_instance->wsi_enabled = false;
+ ptr_instance->wsi_surface_enabled = false;
#ifdef _WIN32
ptr_instance->wsi_surface_enabled = true;
#else // _WIN32
@@ -103,18 +119,26 @@
ptr_instance->wsi_surface_enabled = true;
}
#else // _WIN32
+#ifdef VK_USE_PLATFORM_MIR_KHR
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_MIR_SURFACE_EXTENSION_NAME) == 0) {
ptr_instance->wsi_mir_surface_enabled = true;
}
+#endif // VK_USE_PLATFORM_MIR_KHR
+#ifdef VK_USE_PLATFORM_WAYLAND_KHR
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME) == 0) {
ptr_instance->wsi_wayland_surface_enabled = true;
}
+#endif // VK_USE_PLATFORM_WAYLAND_KHR
+#ifdef VK_USE_PLATFORM_XCB_KHR
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_XCB_SURFACE_EXTENSION_NAME) == 0) {
ptr_instance->wsi_xcb_surface_enabled = true;
}
+#endif // VK_USE_PLATFORM_XCB_KHR
+#ifdef VK_USE_PLATFORM_XLIB_KHR
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_XLIB_SURFACE_EXTENSION_NAME) == 0) {
ptr_instance->wsi_xlib_surface_enabled = true;
}
+#endif // VK_USE_PLATFORM_XLIB_KHR
#endif // _WIN32
}
}