diff options
| author | Jon Ashburn <jon@lunarg.com> | 2016-01-20 08:08:25 -0700 |
|---|---|---|
| committer | Jon Ashburn <jon@lunarg.com> | 2016-01-20 18:05:39 -0700 |
| commit | 2679f18983e093f1852f592c68ecf93283adf366 (patch) | |
| tree | e26be213a004f10d0d72bb375b479523bef85774 /loader | |
| parent | 26227f4921fa3bbad08ed65750a40efe1575d5ea (diff) | |
| download | usermoji-2679f18983e093f1852f592c68ecf93283adf366.tar.xz | |
vktrace: Get partially working again with the new loader/layer interface
Diffstat (limited to 'loader')
| -rw-r--r-- | loader/loader.c | 11 | ||||
| -rw-r--r-- | loader/loader.h | 8 | ||||
| -rw-r--r-- | loader/trampoline.c | 2 |
3 files changed, 12 insertions, 9 deletions
diff --git a/loader/loader.c b/loader/loader.c index 2f253f00..0ffc5102 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -2847,7 +2847,8 @@ VkResult loader_enable_instance_layers( */ VkResult loader_create_instance_chain(const VkInstanceCreateInfo *pCreateInfo, const VkAllocationCallbacks* pAllocator, - struct loader_instance *inst) + struct loader_instance *inst, + VkInstance created_instance) { uint32_t activated_layers = 0; VkLayerInstanceCreateInfo chain_info; @@ -2909,7 +2910,7 @@ VkResult loader_create_instance_chain(const VkInstanceCreateInfo *pCreateInfo, } } - PFN_vkCreateInstance fpCreateInstance = (PFN_vkCreateInstance) nextGIPA(VK_NULL_HANDLE, "vkCreateInstance"); + PFN_vkCreateInstance fpCreateInstance = (PFN_vkCreateInstance) nextGIPA(created_instance, "vkCreateInstance"); if (fpCreateInstance) { VkLayerInstanceCreateInfo instance_create_info; @@ -2922,7 +2923,7 @@ VkResult loader_create_instance_chain(const VkInstanceCreateInfo *pCreateInfo, instance_create_info.pNext = loader_create_info.pNext; loader_create_info.pNext = &instance_create_info; - res = fpCreateInstance(&loader_create_info, pAllocator, &inst->instance); + res = fpCreateInstance(&loader_create_info, pAllocator, &created_instance); } else { // Couldn't find CreateInstance function! res = VK_ERROR_INITIALIZATION_FAILED; @@ -2931,7 +2932,7 @@ VkResult loader_create_instance_chain(const VkInstanceCreateInfo *pCreateInfo, if (res != VK_SUCCESS) { // TODO: Need to clean up here } else { - loader_init_instance_core_dispatch_table(inst->disp, nextGIPA, inst->instance); + loader_init_instance_core_dispatch_table(inst->disp, nextGIPA, created_instance); } return res; @@ -3134,7 +3135,7 @@ VkResult loader_create_device_chain( } } - PFN_vkCreateDevice fpCreateDevice = (PFN_vkCreateDevice) nextGIPA(VK_NULL_HANDLE, "vkCreateDevice"); + PFN_vkCreateDevice fpCreateDevice = (PFN_vkCreateDevice) nextGIPA((VkInstance) inst, "vkCreateDevice"); if (fpCreateDevice) { res = fpCreateDevice(physicalDevice, &loader_create_info, pAllocator, &dev->device); } else { diff --git a/loader/loader.h b/loader/loader.h index 55662b73..6dcc5ded 100644 --- a/loader/loader.h +++ b/loader/loader.h @@ -499,9 +499,11 @@ VkResult loader_enable_instance_layers( const struct loader_layer_list *instance_layers); void loader_deactivate_instance_layers(struct loader_instance *instance); -VkResult loader_create_instance_chain(const VkInstanceCreateInfo *pCreateInfo, - const VkAllocationCallbacks* pAllocator, - struct loader_instance *inst); +VkResult loader_create_instance_chain( + const VkInstanceCreateInfo *pCreateInfo, + const VkAllocationCallbacks* pAllocator, + struct loader_instance *inst, + VkInstance created_instance); void loader_activate_instance_layer_extensions(struct loader_instance *inst, VkInstance created_inst); diff --git a/loader/trampoline.c b/loader/trampoline.c index 35f0853b..f8765afb 100644 --- a/loader/trampoline.c +++ b/loader/trampoline.c @@ -178,7 +178,7 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance( } created_instance = (VkInstance) ptr_instance; - res = loader_create_instance_chain(pCreateInfo, pAllocator, ptr_instance); + res = loader_create_instance_chain(pCreateInfo, pAllocator, ptr_instance, created_instance); if (res == VK_SUCCESS) { wsi_create_instance(ptr_instance, pCreateInfo); |
