diff options
Diffstat (limited to 'loader')
| -rw-r--r-- | loader/LoaderAndLayerInterface.md | 2 | ||||
| -rw-r--r-- | loader/table_ops.h | 12 | ||||
| -rw-r--r-- | loader/wsi.c | 19 |
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; } |
