aboutsummaryrefslogtreecommitdiff
path: root/loader
diff options
context:
space:
mode:
Diffstat (limited to 'loader')
-rw-r--r--loader/loader.c1
-rw-r--r--loader/trampoline.c5
2 files changed, 5 insertions, 1 deletions
diff --git a/loader/loader.c b/loader/loader.c
index 737bf66a..60641004 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -1242,6 +1242,7 @@ VkResult loader_DestroyInstance(
for (i = 0; i < ptr_instance->extension_count; i++) {
free(ptr_instance->extension_names[i]);
}
+ free(ptr_instance->disp);
if (prev)
prev->next = next->next;
else
diff --git a/loader/trampoline.c b/loader/trampoline.c
index 908b47d7..7453f1ba 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -70,9 +70,12 @@ LOADER_EXPORT VkResult VKAPI vkCreateInstance(
return VK_ERROR_OUT_OF_HOST_MEMORY;
strcpy(ptr_instance->extension_names[i], pCreateInfo->ppEnabledExtensionNames[i]);
}
+ ptr_instance->disp = malloc(sizeof(VkLayerInstanceDispatchTable));
+ if (ptr_instance->disp == NULL)
+ return VK_ERROR_OUT_OF_HOST_MEMORY;
+ memcpy(ptr_instance->disp, &instance_disp, sizeof(instance_disp));
ptr_instance->next = loader.instances;
loader.instances = ptr_instance;
- ptr_instance->disp = &instance_disp;
loader_activate_instance_layers(ptr_instance);
res = instance_disp.CreateInstance(pCreateInfo, (VkInstance *) ptr_instance);