From a466ce25c943b487fb1dd9a20364a5a076b335c4 Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Tue, 29 Sep 2015 12:26:00 -0600 Subject: layers: Intercept vkEnumerateInstance[Layer|Extension]Properties() funcs in DeviceLimits --- layers/device_limits.cpp | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'layers/device_limits.cpp') diff --git a/layers/device_limits.cpp b/layers/device_limits.cpp index 8cb8b6b5..b6025103 100644 --- a/layers/device_limits.cpp +++ b/layers/device_limits.cpp @@ -127,6 +127,32 @@ static void init_device_limits(layer_data *my_data) globalLockInitialized = 1; } } +/* DeviceLimits does not have any global extensions */ +VK_LAYER_EXPORT VkResult VKAPI vkEnumerateInstanceExtensionProperties( + const char *pLayerName, + uint32_t *pCount, + VkExtensionProperties* pProperties) +{ + return util_GetExtensionProperties(0, NULL, pCount, pProperties); +} + +static const VkLayerProperties dl_global_layers[] = { + { + "DeviceLimits", + VK_API_VERSION, + VK_MAKE_VERSION(0, 1, 0), + "Validation layer: Device Limits", + } +}; + +VK_LAYER_EXPORT VkResult VKAPI vkEnumerateInstanceLayerProperties( + uint32_t *pCount, + VkLayerProperties* pProperties) +{ + return util_GetLayerProperties(ARRAY_SIZE(dl_global_layers), + dl_global_layers, + pCount, pProperties); +} VK_LAYER_EXPORT VkResult VKAPI vkCreateInstance(const VkInstanceCreateInfo* pCreateInfo, VkInstance* pInstance) { @@ -522,7 +548,6 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateImage( return result; } - VK_LAYER_EXPORT VkResult VKAPI vkDbgCreateMsgCallback( VkInstance instance, VkFlags msgFlags, @@ -618,6 +643,10 @@ VK_LAYER_EXPORT PFN_vkVoidFunction VKAPI vkGetInstanceProcAddr(VkInstance instan return (PFN_vkVoidFunction) vkGetPhysicalDeviceMemoryProperties; if (!strcmp(funcName, "vkGetPhysicalDeviceSparseImageFormatProperties")) return (PFN_vkVoidFunction) vkGetPhysicalDeviceSparseImageFormatProperties; + if (!strcmp(funcName, "vkEnumerateInstanceLayerProperties")) + return (PFN_vkVoidFunction) vkEnumerateInstanceLayerProperties; + if (!strcmp(funcName, "vkEnumerateInstanceExtensionProperties")) + return (PFN_vkVoidFunction) vkEnumerateInstanceExtensionProperties; layer_data *my_data = get_my_data_ptr(get_dispatch_key(instance), layer_data_map); fptr = debug_report_get_instance_proc_addr(my_data->report_data, funcName); -- cgit v1.2.3