aboutsummaryrefslogtreecommitdiff
path: root/loader
diff options
context:
space:
mode:
Diffstat (limited to 'loader')
-rw-r--r--loader/LoaderAndLayerInterface.md2
-rw-r--r--loader/table_ops.h12
-rw-r--r--loader/wsi.c19
3 files changed, 31 insertions, 2 deletions
diff --git a/loader/LoaderAndLayerInterface.md b/loader/LoaderAndLayerInterface.md
index c3abd9f5..8bb07d58 100644
--- a/loader/LoaderAndLayerInterface.md
+++ b/loader/LoaderAndLayerInterface.md
@@ -333,8 +333,6 @@ No! Most extension functionality only affects a device and not an instance or a
device. Thus, the overwhelming majority of extensions will be device extensions rather than
instance extensions.
-<br/>
-
## Vulkan Installable Client Driver interface with the loader ##
diff --git a/loader/table_ops.h b/loader/table_ops.h
index 5a9abf17..2b4d6d41 100644
--- a/loader/table_ops.h
+++ b/loader/table_ops.h
@@ -276,6 +276,18 @@ static inline void loader_init_device_extension_dispatch_table(
table->GetMemoryWin32HandleNV =
(PFN_vkGetMemoryWin32HandleNV)gpa(dev, "vkGetMemoryWin32HandleNV");
#endif // VK_USE_PLATFORM_WIN32_KHR
+ table->CreateSharedSwapchainsKHR =
+ (PFN_vkCreateSharedSwapchainsKHR)gpa(dev, "vkCreateSharedSwapchainsKHR");
+ table->DebugMarkerSetObjectTagEXT =
+ (PFN_vkDebugMarkerSetObjectTagEXT)gpa(dev, "vkDebugMarkerSetObjectTagEXT");
+ table->DebugMarkerSetObjectNameEXT =
+ (PFN_vkDebugMarkerSetObjectNameEXT)gpa(dev, "vkDebugMarkerSetObjectNameEXT");
+ table->CmdDebugMarkerBeginEXT =
+ (PFN_vkCmdDebugMarkerBeginEXT)gpa(dev, "vkCmdDebugMarkerBeginEXT");
+ table->CmdDebugMarkerEndEXT =
+ (PFN_vkCmdDebugMarkerEndEXT)gpa(dev, "vkCmdDebugMarkerEndEXT");
+ table->CmdDebugMarkerInsertEXT =
+ (PFN_vkCmdDebugMarkerInsertEXT)gpa(dev, "vkCmdDebugMarkerInsertEXT");
}
static inline void *
diff --git a/loader/wsi.c b/loader/wsi.c
index 539dbac8..10c5260e 100644
--- a/loader/wsi.c
+++ b/loader/wsi.c
@@ -1262,6 +1262,18 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDisplayPlaneSurfaceKHR(
return VK_SUCCESS;
}
+// This is the trampoline entrypoint
+// for CreateSharedSwapchainsKHR
+LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
+ VkDevice device, uint32_t swapchainCount,
+ const VkSwapchainCreateInfoKHR *pCreateInfos,
+ const VkAllocationCallbacks *pAllocator, VkSwapchainKHR *pSwapchains) {
+ const VkLayerDispatchTable *disp;
+ disp = loader_get_dispatch(device);
+ return disp->CreateSharedSwapchainsKHR(
+ device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
+}
+
bool wsi_swapchain_instance_gpa(struct loader_instance *ptr_instance,
const char *name, void **addr) {
*addr = NULL;
@@ -1458,5 +1470,12 @@ bool wsi_swapchain_instance_gpa(struct loader_instance *ptr_instance,
: NULL;
return true;
}
+
+ // Functions for KHR_display_swapchain extension:
+ if (!strcmp("vkCreateSharedSwapchainsKHR", name)) {
+ *addr = (void *)vkCreateSharedSwapchainsKHR;
+ return true;
+ }
+
return false;
}