From 01ca9089527dd0c0167d0a84f6606e7f3f96f17a Mon Sep 17 00:00:00 2001 From: Courtney Goeltzenleuchter Date: Fri, 7 Aug 2015 09:53:18 -0600 Subject: loader: Need to init instance dispatch without layers Application that enabled DEBUG_REPORT but did not register any layers would get into a deadlock due to improperly initialized instance dispatch table. --- loader/loader.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'loader') diff --git a/loader/loader.c b/loader/loader.c index db15fbc2..09de9ee0 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -2240,6 +2240,7 @@ uint32_t loader_activate_instance_layers(struct loader_instance *inst) PFN_vkGetInstanceProcAddr nextGPA = loader_gpa_instance_internal; if (!inst->activated_layer_list.count) { + loader_init_instance_core_dispatch_table(inst->disp, nextGPA, (VkInstance) nextObj, (VkInstance) baseObj); return 0; } @@ -2403,8 +2404,11 @@ static uint32_t loader_activate_device_layers( PFN_vkGetDeviceProcAddr nextGPA = loader_GetDeviceChainProcAddr; VkBaseLayerObject *wrappedGpus; - if (!dev->activated_layer_list.count) + if (!dev->activated_layer_list.count) { + loader_init_device_dispatch_table(&dev->loader_dispatch, nextGPA, + (VkDevice) nextObj, (VkDevice) baseObj); return 0; + } wrappedGpus = loader_heap_alloc(inst, sizeof (VkBaseLayerObject) * dev->activated_layer_list.count, -- cgit v1.2.3