aboutsummaryrefslogtreecommitdiff
path: root/loader/trampoline.c
diff options
context:
space:
mode:
authorMark Young <marky@lunarg.com>2016-09-16 10:18:42 -0600
committerMark Young <marky@lunarg.com>2016-09-20 11:46:39 -0600
commite0e9c56f2bb4f9bc8a560ada38df191728ef5d3d (patch)
tree6eb73b5d580b43c0fdd11a80350cb7284f675f8d /loader/trampoline.c
parent4dec9eca7c80b931794e13ed507a8340269a77e7 (diff)
downloadusermoji-e0e9c56f2bb4f9bc8a560ada38df191728ef5d3d.tar.xz
loader: More changes for gh181
With Piers' fix, another path was broke because we still needed to intercept the call before it went to the ICD. Now, with his change and this change, all paths work. Also, clean up some code based on comments from Ian and Courtney reviews. Finally, update docs to indicate behavior of new loader 3 interface with ICDs. Change-Id: I2d3f962baffb21c1edeb93b132ffad40f298c8e7
Diffstat (limited to 'loader/trampoline.c')
-rw-r--r--loader/trampoline.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/loader/trampoline.c b/loader/trampoline.c
index a26847d1..81513f93 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -713,15 +713,20 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
*pDevice = dev->device;
- /* initialize any device extension dispatch entry's from the instance list*/
+ // Initialize any device extension dispatch entry's from the instance list
loader_init_dispatch_dev_ext(inst, dev);
- /* initialize WSI device extensions as part of core dispatch since loader
- * has
- * dedicated trampoline code for these*/
+ // 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,
- loader_gpa_device_internal, *pDevice);
+ dev->loader_dispatch.core_dispatch.GetDeviceProcAddr, *pDevice);
+
+ // The loader needs to override some terminating device procs. Usually,
+ // these are device procs which need to go through a loader terminator.
+ // This needs to occur if the loader needs to perform some work prior
+ // to passing the work along to the ICD.
+ loader_override_terminating_device_proc(*pDevice, &dev->loader_dispatch);
out: