aboutsummaryrefslogtreecommitdiff
path: root/loader
diff options
context:
space:
mode:
authorJon Ashburn <jon@lunarg.com>2016-03-08 15:21:30 -0700
committerJon Ashburn <jon@lunarg.com>2016-03-08 15:51:01 -0700
commit67ea0b9f11ea45de547dd55300e51465a3075d65 (patch)
tree8967327f446e521f61d0ffcf64e429105939ee58 /loader
parente10a9e19873199f51236eac2cbeccaa8e293c32d (diff)
downloadusermoji-67ea0b9f11ea45de547dd55300e51465a3075d65.tar.xz
loader: Fix issue passing wrong instance if layer wraps instances
Change-Id: Iafd0f7dc3e4a911b165d3df1dadddf4d45fbef10
Diffstat (limited to 'loader')
-rw-r--r--loader/loader.c3
-rw-r--r--loader/loader.h2
2 files changed, 3 insertions, 2 deletions
diff --git a/loader/loader.c b/loader/loader.c
index 310cd0bf..b67e1db0 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -3287,6 +3287,7 @@ VkResult loader_create_instance_chain(const VkInstanceCreateInfo *pCreateInfo,
} else {
loader_init_instance_core_dispatch_table(inst->disp, nextGIPA,
*created_instance);
+ inst->instance = *created_instance;
}
return res;
@@ -3454,7 +3455,7 @@ VkResult loader_create_device_chain(const struct loader_physical_device *pd,
}
PFN_vkCreateDevice fpCreateDevice =
- (PFN_vkCreateDevice)nextGIPA((VkInstance)inst, "vkCreateDevice");
+ (PFN_vkCreateDevice)nextGIPA(inst->instance, "vkCreateDevice");
if (fpCreateDevice) {
res = fpCreateDevice(pd->phys_dev, &loader_create_info, pAllocator,
&dev->device);
diff --git a/loader/loader.h b/loader/loader.h
index ff7ab112..89755eb8 100644
--- a/loader/loader.h
+++ b/loader/loader.h
@@ -291,7 +291,7 @@ struct loader_instance {
struct loader_layer_list activated_layer_list;
- VkInstance instance;
+ VkInstance instance; // layers/ICD instance returned to trampoline
bool debug_report_enabled;
VkLayerDbgFunctionNode *DbgFunctionHead;