aboutsummaryrefslogtreecommitdiff
path: root/layers/parameter_validation.cpp
diff options
context:
space:
mode:
authorChia-I Wu <olv@google.com>2016-05-16 07:34:09 +0800
committerChia-I Wu <olv@google.com>2016-05-21 11:15:11 +0800
commit33065f0aeeb1cddc8a85ff8b9b68ea64291ce158 (patch)
tree8c05de22317711ddf435a0f7b661c5e36e59d316 /layers/parameter_validation.cpp
parent69669fa8606cc243ea47dead6f70fb1bf5fcde6d (diff)
downloadusermoji-33065f0aeeb1cddc8a85ff8b9b68ea64291ce158.tar.xz
parameter_validation: improve EnumerateDeviceExtensionProperties
Call down the next layer unless pLayerName is parameter_validation.
Diffstat (limited to 'layers/parameter_validation.cpp')
-rw-r--r--layers/parameter_validation.cpp14
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) {