From 33065f0aeeb1cddc8a85ff8b9b68ea64291ce158 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Mon, 16 May 2016 07:34:09 +0800 Subject: parameter_validation: improve EnumerateDeviceExtensionProperties Call down the next layer unless pLayerName is parameter_validation. --- layers/parameter_validation.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/layers/parameter_validation.cpp b/layers/parameter_validation.cpp index 3ec84b6f..697ed7d7 100644 --- a/layers/parameter_validation.cpp +++ b/layers/parameter_validation.cpp @@ -4269,12 +4269,13 @@ VKAPI_ATTR VkResult VKAPI_CALL EnumerateDeviceExtensionProperties(VkPhysicalDevi const char *pLayerName, uint32_t *pCount, VkExtensionProperties *pProperties) { /* parameter_validation does not have any physical device extensions */ - if (pLayerName == NULL) { - return get_dispatch_table(pc_instance_table_map, physicalDevice) - ->EnumerateDeviceExtensionProperties(physicalDevice, NULL, pCount, pProperties); - } else { + if (pLayerName && !strcmp(pLayerName, global_layer.layerName)) return util_GetExtensionProperties(0, NULL, pCount, pProperties); - } + + assert(physicalDevice); + + return get_dispatch_table(pc_instance_table_map, physicalDevice) + ->EnumerateDeviceExtensionProperties(physicalDevice, NULL, pCount, pProperties); } VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetDeviceProcAddr(VkDevice device, const char *funcName) { @@ -4611,7 +4612,8 @@ vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, uint32_t *pCou VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, const char *pLayerName, uint32_t *pCount, VkExtensionProperties *pProperties) { - return parameter_validation::EnumerateDeviceExtensionProperties(physicalDevice, pLayerName, pCount, pProperties); + // the layer command handles VK_NULL_HANDLE just fine + return parameter_validation::EnumerateDeviceExtensionProperties(VK_NULL_HANDLE, pLayerName, pCount, pProperties); } VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(VkDevice dev, const char *funcName) { -- cgit v1.2.3