From: Chia-I Wu Date: Sun, 15 May 2016 23:48:14 +0000 (+0800) Subject: parameter_validation: avoid invalid GIPA call in vkCreateDevice X-Git-Tag: upstream/1.1.92~3040^2~149 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8220573dae223c788681fb2fc5169cc366a5dffa;p=platform%2Fupstream%2FVulkan-Tools.git parameter_validation: avoid invalid GIPA call in vkCreateDevice Save VkInstance in layer_data so that we query vkCreateDevice with a valid instance. --- diff --git a/layers/parameter_validation.cpp b/layers/parameter_validation.cpp index 87d1cbc..e0e29c6 100644 --- a/layers/parameter_validation.cpp +++ b/layers/parameter_validation.cpp @@ -52,6 +52,8 @@ namespace parameter_validation { struct layer_data { + VkInstance instance; + debug_report_data *report_data; std::vector logging_callback; @@ -1314,6 +1316,7 @@ CreateInstance(const VkInstanceCreateInfo *pCreateInfo, const VkAllocationCallba VkLayerInstanceDispatchTable *pTable = initInstanceTable(*pInstance, fpGetInstanceProcAddr, pc_instance_table_map); + my_instance_data->instance = *pInstance; my_instance_data->report_data = debug_report_create_instance(pTable, *pInstance, pCreateInfo->enabledExtensionCount, pCreateInfo->ppEnabledExtensionNames); @@ -1618,7 +1621,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDevice(VkPhysicalDevice physicalDevice, PFN_vkGetInstanceProcAddr fpGetInstanceProcAddr = chain_info->u.pLayerInfo->pfnNextGetInstanceProcAddr; PFN_vkGetDeviceProcAddr fpGetDeviceProcAddr = chain_info->u.pLayerInfo->pfnNextGetDeviceProcAddr; - PFN_vkCreateDevice fpCreateDevice = (PFN_vkCreateDevice)fpGetInstanceProcAddr(NULL, "vkCreateDevice"); + PFN_vkCreateDevice fpCreateDevice = (PFN_vkCreateDevice)fpGetInstanceProcAddr(my_instance_data->instance, "vkCreateDevice"); if (fpCreateDevice == NULL) { return VK_ERROR_INITIALIZATION_FAILED; }