loader: Fix createInstance to pass pAllocator down
Also fix bug where createDevice failure removes logical device from icd
struct
diff --git a/loader/loader.c b/loader/loader.c
index a51312e..9040f3f 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -193,7 +193,7 @@
return NULL;
memcpy(new_ptr, pMemory, orig_size);
instance->alloc_callbacks.pfnFree(instance->alloc_callbacks.pUserData, pMemory);
- return new_ptr;
+ return new_ptr;
}
return realloc(pMemory, size);
}
@@ -3712,13 +3712,13 @@
/* activate any layers on device chain which terminates with device*/
res = loader_enable_device_layers(inst, icd, &dev->activated_layer_list, pCreateInfo, &inst->device_layer_list);
if (res != VK_SUCCESS) {
- loader_destroy_logical_device(inst, dev);
+ loader_remove_logical_device(inst, icd, dev);
return res;
}
res = loader_create_device_chain(physicalDevice, pCreateInfo, pAllocator, inst, icd, dev);
if (res != VK_SUCCESS) {
- loader_destroy_logical_device(inst, dev);
+ loader_remove_logical_device(inst, icd, dev);
return res;
}
diff --git a/loader/trampoline.c b/loader/trampoline.c
index 6468ce8..9cca6aa 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -181,7 +181,7 @@
}
created_instance = (VkInstance) ptr_instance;
- res = loader_create_instance_chain(pCreateInfo, NULL, ptr_instance, created_instance);
+ res = loader_create_instance_chain(pCreateInfo, pAllocator, ptr_instance, created_instance);
if (res == VK_SUCCESS) {
wsi_create_instance(ptr_instance, pCreateInfo);