aboutsummaryrefslogtreecommitdiff
path: root/loader/loader.c
diff options
context:
space:
mode:
authorJon Ashburn <jon@lunarg.com>2015-11-30 17:21:25 -0700
committerJon Ashburn <jon@lunarg.com>2015-12-01 10:51:02 -0700
commit2afb020a8a38f1dfc3a1fa13063b3a311a8f0e74 (patch)
tree0733aac417d43c6a16522643bf1db777313ca557 /loader/loader.c
parentf3466f68e6b4f81ada1b0bf42557e717cc32a7b5 (diff)
downloadusermoji-2afb020a8a38f1dfc3a1fa13063b3a311a8f0e74.tar.xz
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.
Diffstat (limited to 'loader/loader.c')
-rw-r--r--loader/loader.c9
1 files changed, 7 insertions, 2 deletions
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;