diff --git a/src/virtio/vulkan/vn_instance.c b/src/virtio/vulkan/vn_instance.c index 1315b5309f9..0a8a29984bf 100644 --- a/src/virtio/vulkan/vn_instance.c +++ b/src/virtio/vulkan/vn_instance.c @@ -409,12 +409,14 @@ vn_DestroyInstance(VkInstance _instance, { VN_TRACE_FUNC(); struct vn_instance *instance = vn_instance_from_handle(_instance); - const VkAllocationCallbacks *alloc = - pAllocator ? pAllocator : &instance->base.vk.alloc; + const VkAllocationCallbacks *alloc = pAllocator; if (!instance) return; + if (!alloc) + alloc = &instance->base.vk.alloc; + if (instance->physical_device.initialized) { for (uint32_t i = 0; i < instance->physical_device.device_count; i++) vn_physical_device_fini(&instance->physical_device.devices[i]);