aboutsummaryrefslogtreecommitdiff
path: root/loader
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <courtney@LunarG.com>2015-08-07 09:53:18 -0600
committerTony Barbour <tony@LunarG.com>2015-09-16 09:30:23 -0600
commit01ca9089527dd0c0167d0a84f6606e7f3f96f17a (patch)
tree2b90a097bcb4ea087a3a6e790d45093ddc55f177 /loader
parent017e311eb553bf8830134b29d60b047a80c575db (diff)
downloadusermoji-01ca9089527dd0c0167d0a84f6606e7f3f96f17a.tar.xz
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.
Diffstat (limited to 'loader')
-rw-r--r--loader/loader.c6
1 files changed, 5 insertions, 1 deletions
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,