loader: Add custom terminator to tool properties Since vkGetPhysicalDeviceToolPropertiesEXT is implemented in the layers and not drivers, this changes the terminator to never call into the driver. Change-Id: I3beb92ab5c327672f21a17b857068968099c2345
diff --git a/loader/extension_manual.c b/loader/extension_manual.c index 490496d..b8118fd 100644 --- a/loader/extension_manual.c +++ b/loader/extension_manual.c
@@ -441,3 +441,22 @@ } #endif // VK_USE_PLATFORM_WIN32_KHR + +// ---- VK_EXT_tooling_info extension trampoline/terminators + +VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceToolPropertiesEXT( + VkPhysicalDevice physicalDevice, + uint32_t* pToolCount, + VkPhysicalDeviceToolPropertiesEXT* pToolProperties) { + const VkLayerInstanceDispatchTable *disp; + VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice); + disp = loader_get_instance_layer_dispatch(physicalDevice); + return disp->GetPhysicalDeviceToolPropertiesEXT(unwrapped_phys_dev, pToolCount, pToolProperties); +} + +VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceToolPropertiesEXT( + VkPhysicalDevice physicalDevice, + uint32_t* pToolCount, + VkPhysicalDeviceToolPropertiesEXT* pToolProperties) { + return VK_SUCCESS; +}
diff --git a/loader/extension_manual.h b/loader/extension_manual.h index e07b910..128ec58 100644 --- a/loader/extension_manual.h +++ b/loader/extension_manual.h
@@ -104,3 +104,16 @@ VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes); + +// ---- VK_EXT_tooling_info extension trampoline/terminators + +VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceToolPropertiesEXT( + VkPhysicalDevice physicalDevice, + uint32_t* pToolCount, + VkPhysicalDeviceToolPropertiesEXT* pToolProperties); + +VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceToolPropertiesEXT( + VkPhysicalDevice physicalDevice, + uint32_t* pToolCount, + VkPhysicalDeviceToolPropertiesEXT* pToolProperties); +
diff --git a/loader/generated/vk_loader_extensions.c b/loader/generated/vk_loader_extensions.c index 06d9ce8..01c73be 100644 --- a/loader/generated/vk_loader_extensions.c +++ b/loader/generated/vk_loader_extensions.c
@@ -3226,36 +3226,6 @@ } -// ---- VK_EXT_tooling_info extension trampoline/terminators - -VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceToolPropertiesEXT( - VkPhysicalDevice physicalDevice, - uint32_t* pToolCount, - VkPhysicalDeviceToolPropertiesEXT* pToolProperties) { - const VkLayerInstanceDispatchTable *disp; - VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice); - disp = loader_get_instance_layer_dispatch(physicalDevice); - if (disp->GetPhysicalDeviceToolPropertiesEXT != NULL) { - return disp->GetPhysicalDeviceToolPropertiesEXT(unwrapped_phys_dev, pToolCount, pToolProperties); - } else { - return VK_SUCCESS; - } -} - -VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceToolPropertiesEXT( - VkPhysicalDevice physicalDevice, - uint32_t* pToolCount, - VkPhysicalDeviceToolPropertiesEXT* pToolProperties) { - struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice; - struct loader_icd_term *icd_term = phys_dev_term->this_icd_term; - if (NULL == icd_term->dispatch.GetPhysicalDeviceToolPropertiesEXT) { - loader_log(icd_term->this_instance, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0, - "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceToolPropertiesEXT"); - } - return icd_term->dispatch.GetPhysicalDeviceToolPropertiesEXT(phys_dev_term->phys_dev, pToolCount, pToolProperties); -} - - // ---- VK_NV_cooperative_matrix extension trampoline/terminators VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesNV(
diff --git a/scripts/loader_extension_generator.py b/scripts/loader_extension_generator.py index bd5abd3..e3f6a00 100644 --- a/scripts/loader_extension_generator.py +++ b/scripts/loader_extension_generator.py
@@ -49,8 +49,7 @@ AVOID_EXT_NAMES = ['VK_EXT_debug_report'] -NULL_CHECK_EXT_NAMES= ['VK_EXT_debug_utils', - 'VK_EXT_tooling_info'] +NULL_CHECK_EXT_NAMES= ['VK_EXT_debug_utils'] AVOID_CMD_NAMES = ['vkCreateDebugUtilsMessengerEXT', 'vkDestroyDebugUtilsMessengerEXT', @@ -928,7 +927,8 @@ 'vkGetDisplayModeProperties2KHR', 'vkGetDisplayPlaneCapabilities2KHR', 'vkGetPhysicalDeviceSurfacePresentModes2EXT', - 'vkGetDeviceGroupSurfacePresentModes2EXT'] + 'vkGetDeviceGroupSurfacePresentModes2EXT', + 'vkGetPhysicalDeviceToolPropertiesEXT'] for ext_cmd in self.ext_commands: if (ext_cmd.ext_name in WSI_EXT_NAMES or