aboutsummaryrefslogtreecommitdiff
path: root/loader
diff options
context:
space:
mode:
authorIan Elliott <ianelliott@google.com>2015-11-25 14:43:02 -0700
committerJon Ashburn <jon@lunarg.com>2015-12-01 10:26:05 -0700
commite4b86a8eb9d8b34069f95b407289eb1746c338d5 (patch)
tree9bf3a46d03d7d5f056e4970bc7d45de991aec844 /loader
parent9d452bdb2df85adff77c19ab85cd26b24cbeadbf (diff)
downloadusermoji-e4b86a8eb9d8b34069f95b407289eb1746c338d5.tar.xz
loader: Convert vkDestroySurfaceKHR() to have a terminator.
Diffstat (limited to 'loader')
-rw-r--r--loader/loader.c2
-rw-r--r--loader/loader.h1
-rw-r--r--loader/table_ops.h3
-rw-r--r--loader/wsi.c16
-rw-r--r--loader/wsi.h5
5 files changed, 25 insertions, 2 deletions
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,14 +162,26 @@ 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);
loader_heap_free(ptr_instance, surface);
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,