diff options
| author | Jon Ashburn <jon@lunarg.com> | 2015-05-19 14:33:18 -0600 |
|---|---|---|
| committer | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-06-17 19:47:02 -0600 |
| commit | a8424a2f91bec8712bbfb0d102b5fa40a8f58fb1 (patch) | |
| tree | 7d693e279bef42d8fc5b79868b7ca59cf33c73e3 | |
| parent | 12b3a9babed46b4d1e7a8f07456141da94066c5b (diff) | |
| download | usermoji-a8424a2f91bec8712bbfb0d102b5fa40a8f58fb1.tar.xz | |
loader: make the instance dispatch table per instance
| -rw-r--r-- | loader/loader.c | 1 | ||||
| -rw-r--r-- | loader/trampoline.c | 5 |
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); |
