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..fe4287e 100644
--- a/loader/extension_manual.h
+++ b/loader/extension_manual.h
@@ -104,3 +104,15 @@
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