From e4b86a8eb9d8b34069f95b407289eb1746c338d5 Mon Sep 17 00:00:00 2001 From: Ian Elliott Date: Wed, 25 Nov 2015 14:43:02 -0700 Subject: loader: Convert vkDestroySurfaceKHR() to have a terminator. --- loader/loader.c | 2 ++ loader/loader.h | 1 + loader/table_ops.h | 3 +++ loader/wsi.c | 16 ++++++++++++++-- loader/wsi.h | 5 +++++ 5 files changed, 25 insertions(+), 2 deletions(-) (limited to 'loader') diff --git a/loader/loader.c b/loader/loader.c index c1b441b3..ce9b39ce 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -108,6 +108,7 @@ const VkLayerInstanceDispatchTable instance_disp = { .EnumerateDeviceExtensionProperties = loader_EnumerateDeviceExtensionProperties, .EnumerateDeviceLayerProperties = loader_EnumerateDeviceLayerProperties, .GetPhysicalDeviceSparseImageFormatProperties = loader_GetPhysicalDeviceSparseImageFormatProperties, + .DestroySurfaceKHR = loader_DestroySurfaceKHR, .GetPhysicalDeviceSurfaceSupportKHR = loader_GetPhysicalDeviceSurfaceSupportKHR, .GetPhysicalDeviceSurfaceCapabilitiesKHR = loader_GetPhysicalDeviceSurfaceCapabilitiesKHR, .GetPhysicalDeviceSurfaceFormatsKHR = loader_GetPhysicalDeviceSurfaceFormatsKHR, @@ -1238,6 +1239,7 @@ static bool loader_icd_init_entrys(struct loader_icd *icd, LOOKUP_GIPA(GetPhysicalDeviceSparseImageFormatProperties, true); LOOKUP_GIPA(DbgCreateMsgCallback, false); LOOKUP_GIPA(DbgDestroyMsgCallback, false); + LOOKUP_GIPA(DestroySurfaceKHR, false); LOOKUP_GIPA(GetPhysicalDeviceSurfaceSupportKHR, false); LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilitiesKHR, false); LOOKUP_GIPA(GetPhysicalDeviceSurfaceFormatsKHR, false); diff --git a/loader/loader.h b/loader/loader.h index 0c70f591..7501c8ac 100644 --- a/loader/loader.h +++ b/loader/loader.h @@ -170,6 +170,7 @@ struct loader_icd { PFN_vkGetPhysicalDeviceSparseImageFormatProperties GetPhysicalDeviceSparseImageFormatProperties; PFN_vkDbgCreateMsgCallback DbgCreateMsgCallback; PFN_vkDbgDestroyMsgCallback DbgDestroyMsgCallback; + PFN_vkDestroySurfaceKHR DestroySurfaceKHR; PFN_vkGetPhysicalDeviceSurfaceSupportKHR GetPhysicalDeviceSurfaceSupportKHR; PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR GetPhysicalDeviceSurfaceCapabilitiesKHR; PFN_vkGetPhysicalDeviceSurfaceFormatsKHR GetPhysicalDeviceSurfaceFormatsKHR; diff --git a/loader/table_ops.h b/loader/table_ops.h index e5ad7efd..98eebe5a 100644 --- a/loader/table_ops.h +++ b/loader/table_ops.h @@ -465,6 +465,7 @@ static inline void loader_init_instance_extension_dispatch_table( { table->DbgCreateMsgCallback = (PFN_vkDbgCreateMsgCallback) gpa(inst, "vkDbgCreateMsgCallback"); table->DbgDestroyMsgCallback = (PFN_vkDbgDestroyMsgCallback) gpa(inst, "vkDbgDestroyMsgCallback"); + table->DestroySurfaceKHR = (PFN_vkDestroySurfaceKHR) gpa(inst, "vkDestroySurfaceKHR"); table->GetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR) gpa(inst, "vkGetPhysicalDeviceSurfaceSupportKHR"); table->GetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR) gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"); table->GetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR) gpa(inst, "vkGetPhysicalDeviceSurfaceFormatsKHR"); @@ -525,6 +526,8 @@ static inline void *loader_lookup_instance_dispatch_table( return (void *) table->EnumerateDeviceExtensionProperties; if (!strcmp(name, "EnumerateDeviceLayerProperties")) return (void *) table->EnumerateDeviceLayerProperties; + if (!strcmp(name, "DestroySurfaceKHR")) + return (void *) table->DestroySurfaceKHR; if (!strcmp(name, "GetPhysicalDeviceSurfaceSupportKHR")) return (void *) table->GetPhysicalDeviceSurfaceSupportKHR; if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilitiesKHR")) diff --git a/loader/wsi.c b/loader/wsi.c index 91f47191..ca257a5b 100644 --- a/loader/wsi.c +++ b/loader/wsi.c @@ -162,13 +162,25 @@ void wsi_create_instance( /* * This is the trampoline entrypoint * for DestroySurfaceKHR - * - * Note: There is no terminator for this function. */ LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR( VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) +{ + const VkLayerInstanceDispatchTable *disp; + disp = loader_get_instance_dispatch(instance); + disp->DestroySurfaceKHR(instance, surface, pAllocator); +} + +/* + * This is the instance chain terminator function + * for DestroySurfaceKHR + */ +VKAPI_ATTR void VKAPI_CALL loader_DestroySurfaceKHR( + VkInstance instance, + VkSurfaceKHR surface, + const VkAllocationCallbacks* pAllocator) { struct loader_instance *ptr_instance = loader_get_instance(instance); diff --git a/loader/wsi.h b/loader/wsi.h index 87f870a8..6418195d 100644 --- a/loader/wsi.h +++ b/loader/wsi.h @@ -38,6 +38,11 @@ void wsi_create_instance( const VkInstanceCreateInfo *pCreateInfo); +VKAPI_ATTR void VKAPI_CALL loader_DestroySurfaceKHR( + VkInstance instance, + VkSurfaceKHR surface, + const VkAllocationCallbacks* pAllocator); + VKAPI_ATTR VkResult VKAPI_CALL loader_GetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, -- cgit v1.2.3