From 26fea8827c2e86b02f41833b3432d7243d6dfead Mon Sep 17 00:00:00 2001 From: Petros Bantolas Date: Thu, 14 Apr 2016 12:50:42 +0100 Subject: loader: Added some missing function entry points to loader_icd_init_entrys. KHR_surface, KHR_display extension functions were not exposed properly. Specifically, added LOOKUP_GIPA entries for: * GetPhysicalDeviceDisplayPropertiesKHR * GetDisplayModePropertiesKHR * CreateDisplayPlaneSurfaceKHR * GetPhysicalDeviceDisplayPlanePropertiesKHR * GetDisplayPlaneSupportedDisplaysKHR * CreateDisplayModeKHR * GetDisplayPlaneCapabilitiesKHR * DestroySurfaceKHR Added missing function declaration DestroySurfaceKHR in loader_icd struct. Checking if KHR_surface extension is enabled before proceeding in the terminator_CreateDisplayPlaneSurfaceKHR definition. Change-Id: I0599efddedc5064859ae1f4e52bdbbf8788d5c12 --- loader/loader.c | 8 ++++++++ loader/loader.h | 2 ++ loader/wsi.c | 7 +++++++ 3 files changed, 17 insertions(+) (limited to 'loader') diff --git a/loader/loader.c b/loader/loader.c index e2939cf7..101044d9 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -1457,6 +1457,14 @@ static bool loader_icd_init_entrys(struct loader_icd *icd, VkInstance inst, LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilitiesKHR, false); LOOKUP_GIPA(GetPhysicalDeviceSurfaceFormatsKHR, false); LOOKUP_GIPA(GetPhysicalDeviceSurfacePresentModesKHR, false); + LOOKUP_GIPA(GetPhysicalDeviceDisplayPropertiesKHR, false); + LOOKUP_GIPA(GetDisplayModePropertiesKHR, false); + LOOKUP_GIPA(CreateDisplayPlaneSurfaceKHR, false); + LOOKUP_GIPA(GetPhysicalDeviceDisplayPlanePropertiesKHR, false); + LOOKUP_GIPA(GetDisplayPlaneSupportedDisplaysKHR, false); + LOOKUP_GIPA(CreateDisplayModeKHR, false); + LOOKUP_GIPA(GetDisplayPlaneCapabilitiesKHR, false); + LOOKUP_GIPA(DestroySurfaceKHR, false); #ifdef VK_USE_PLATFORM_WIN32_KHR LOOKUP_GIPA(GetPhysicalDeviceWin32PresentationSupportKHR, false); #endif diff --git a/loader/loader.h b/loader/loader.h index b29c4506..1971fad0 100644 --- a/loader/loader.h +++ b/loader/loader.h @@ -259,6 +259,8 @@ struct loader_icd { GetDisplayPlaneCapabilitiesKHR; PFN_vkCreateDisplayPlaneSurfaceKHR CreateDisplayPlaneSurfaceKHR; + PFN_vkDestroySurfaceKHR + DestroySurfaceKHR; struct loader_icd *next; }; diff --git a/loader/wsi.c b/loader/wsi.c index 5b408ec3..3cb20a88 100644 --- a/loader/wsi.c +++ b/loader/wsi.c @@ -1410,6 +1410,13 @@ terminator_CreateDisplayPlaneSurfaceKHR( struct loader_instance *inst = loader_get_instance(instance); VkIcdSurfaceDisplay *pIcdSurface = NULL; + if (!inst->wsi_surface_enabled) { + loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0, + "VK_KHR_surface extension not enabled. " + "vkCreateDisplayPlaneSurfaceKHR not executed!\n"); + return VK_SUCCESS; + } + pIcdSurface = loader_heap_alloc(inst, sizeof(VkIcdSurfaceDisplay), VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE); if (pIcdSurface == NULL) { -- cgit v1.2.3