diff options
| author | Chia-I Wu <olv@google.com> | 2016-05-16 07:34:09 +0800 |
|---|---|---|
| committer | Chia-I Wu <olv@google.com> | 2016-05-21 11:15:11 +0800 |
| commit | 33065f0aeeb1cddc8a85ff8b9b68ea64291ce158 (patch) | |
| tree | 8c05de22317711ddf435a0f7b661c5e36e59d316 | |
| parent | 69669fa8606cc243ea47dead6f70fb1bf5fcde6d (diff) | |
| download | usermoji-33065f0aeeb1cddc8a85ff8b9b68ea64291ce158.tar.xz | |
parameter_validation: improve EnumerateDeviceExtensionProperties
Call down the next layer unless pLayerName is parameter_validation.
| -rw-r--r-- | layers/parameter_validation.cpp | 14 |
1 files 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) { |
