From 2afb020a8a38f1dfc3a1fa13063b3a311a8f0e74 Mon Sep 17 00:00:00 2001 From: Jon Ashburn Date: Mon, 30 Nov 2015 17:21:25 -0700 Subject: loader: Add initialization of loader dispatch table for wsi device extensions Since we had trampoline code for these, layers were getting skipped when called thru the trampoline code. --- loader/loader.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'loader/loader.c') diff --git a/loader/loader.c b/loader/loader.c index df720c64..10473a67 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -959,12 +959,12 @@ static VkExtensionProperties *get_extension_property( } /* - * For global exenstions implemented within the loader (i.e. DEBUG_REPORT + * For global extensions implemented within the loader (i.e. DEBUG_REPORT * the extension must provide two entry points for the loader to use: * - "trampoline" entry point - this is the address returned by GetProcAddr * and will always do what's necessary to support a global call. * - "terminator" function - this function will be put at the end of the - * instance chain and will contain the necessary logica to call / process + * instance chain and will contain the necessary logic to call / process * the extension for the appropriate ICDs that are available. * There is no generic mechanism for including these functions, the references * must be placed into the appropriate loader entry points. @@ -3332,6 +3332,11 @@ VKAPI_ATTR VkResult VKAPI_CALL loader_CreateDevice( /* finally can call down the chain */ res = dev->loader_dispatch.core_dispatch.CreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice); + /* initialize WSI device extensions as part of core dispatch since loader has + * dedicated trampoline code for these*/ + loader_init_device_extension_dispatch_table(&dev->loader_dispatch, + dev->loader_dispatch.core_dispatch.GetDeviceProcAddr, + *pDevice); dev->loader_dispatch.core_dispatch.CreateDevice = icd->CreateDevice; return res; -- cgit v1.2.3