From 9da62aa494820a37d6adb7ef5af1d65ca75ac5a1 Mon Sep 17 00:00:00 2001 From: Jeannot Breton Date: Tue, 12 Apr 2016 15:46:20 -0500 Subject: loader: dont free and reallocate physical devices Change-Id: I68ac2681b7c4923213c65dc720f54d81a36c99ef --- loader/trampoline.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'loader') diff --git a/loader/trampoline.c b/loader/trampoline.c index c596cb7c..7b2293f6 100644 --- a/loader/trampoline.c +++ b/loader/trampoline.c @@ -563,14 +563,14 @@ vkEnumeratePhysicalDevices(VkInstance instance, uint32_t *pPhysicalDeviceCount, loader_platform_thread_unlock_mutex(&loader_lock); return VK_ERROR_INITIALIZATION_FAILED; } - if (inst->phys_devs) - loader_heap_free(inst, inst->phys_devs); count = (inst->total_gpu_count < *pPhysicalDeviceCount) ? inst->total_gpu_count : *pPhysicalDeviceCount; *pPhysicalDeviceCount = count; - inst->phys_devs = (struct loader_physical_device_tramp *)loader_heap_alloc( - inst, count * sizeof(struct loader_physical_device_tramp), - VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE); + if (!inst->phys_devs) { + inst->phys_devs = (struct loader_physical_device_tramp *)loader_heap_alloc( + inst, inst->total_gpu_count * sizeof(struct loader_physical_device_tramp), + VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE); + } if (!inst->phys_devs) { loader_platform_thread_unlock_mutex(&loader_lock); return VK_ERROR_OUT_OF_HOST_MEMORY; -- cgit v1.2.3