diff options
| author | Mark Young <marky@lunarg.com> | 2016-07-01 15:18:27 -0600 |
|---|---|---|
| committer | Mark Young <marky@lunarg.com> | 2016-09-01 08:14:27 -0600 |
| commit | ffb06194c4792cf350d7fa5737fda6e8e38cb0de (patch) | |
| tree | f2413bb6405ba2068b28376eaad87ac722c58a50 /loader | |
| parent | 48fc62a1db1480fbf3007fb5e50fecb239b394d5 (diff) | |
| download | usermoji-ffb06194c4792cf350d7fa5737fda6e8e38cb0de.tar.xz | |
loader: gh888 Add KHR/EXT extensions in vulkan.h
Add the KHR_display_swapchain device extension to the loader
and the core_validation layers. This fulfills the work required in
JIRA LOAD-7 and gh 90.
Add debug_marker to the extension list.
Change-Id: I1fb70e5d44bc8c1f70fd6d1cfbd106a155081b25
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; } |
