aboutsummaryrefslogtreecommitdiff
path: root/layers/parameter_validation.cpp
diff options
context:
space:
mode:
authorChia-I Wu <olv@google.com>2016-05-16 07:43:38 +0800
committerChia-I Wu <olv@google.com>2016-05-21 11:15:11 +0800
commit60261ba1b23e12b59f2523f611309ad25e1fc562 (patch)
treeaa40b564d69713e4909dbaa74cbcde962d9250fb /layers/parameter_validation.cpp
parent9c846dbbb790defec9483e3959ccf2202c934970 (diff)
downloadusermoji-60261ba1b23e12b59f2523f611309ad25e1fc562.tar.xz
parameter_validation: no interface functions in layer functions
Move handling of interface functions in parameter_validation::GetInstanceProcAddr to v0's vkGetInstanceProcAddr.
Diffstat (limited to 'layers/parameter_validation.cpp')
-rw-r--r--layers/parameter_validation.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/layers/parameter_validation.cpp b/layers/parameter_validation.cpp
index a3faa2e8..9c6c2b00 100644
--- a/layers/parameter_validation.cpp
+++ b/layers/parameter_validation.cpp
@@ -4338,12 +4338,14 @@ intercept_core_instance_command(const char *name) {
{ "vkGetPhysicalDeviceSparseImageFormatProperties", reinterpret_cast<PFN_vkVoidFunction>(GetPhysicalDeviceSparseImageFormatProperties) },
{ "vkGetPhysicalDeviceQueueFamilyProperties", reinterpret_cast<PFN_vkVoidFunction>(GetPhysicalDeviceQueueFamilyProperties) },
{ "vkGetPhysicalDeviceMemoryProperties", reinterpret_cast<PFN_vkVoidFunction>(GetPhysicalDeviceMemoryProperties) },
- { "vkEnumerateInstanceLayerProperties", reinterpret_cast<PFN_vkVoidFunction>(vkEnumerateInstanceLayerProperties) },
- { "vkEnumerateInstanceExtensionProperties", reinterpret_cast<PFN_vkVoidFunction>(vkEnumerateInstanceExtensionProperties) },
- { "vkEnumerateDeviceLayerProperties", reinterpret_cast<PFN_vkVoidFunction>(vkEnumerateDeviceLayerProperties) },
{ "vkEnumerateDeviceExtensionProperties", reinterpret_cast<PFN_vkVoidFunction>(EnumerateDeviceExtensionProperties) },
};
+ // we should never be queried for these commands
+ assert(strcmp(name, "vkEnumerateInstanceLayerProperties") &&
+ strcmp(name, "vkEnumerateInstanceExtensionProperties") &&
+ strcmp(name, "vkEnumerateDeviceLayerProperties"));
+
for (size_t i = 0; i < ARRAY_SIZE(core_instance_commands); i++) {
if (!strcmp(core_instance_commands[i].name, name))
return core_instance_commands[i].proc;
@@ -4533,5 +4535,14 @@ VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(VkD
}
VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char *funcName) {
+ if (!strcmp(funcName, "vkEnumerateInstanceLayerProperties"))
+ return reinterpret_cast<PFN_vkVoidFunction>(vkEnumerateInstanceLayerProperties);
+ if (!strcmp(funcName, "vkEnumerateDeviceLayerProperties"))
+ return reinterpret_cast<PFN_vkVoidFunction>(vkEnumerateDeviceLayerProperties);
+ if (!strcmp(funcName, "vkEnumerateInstanceExtensionProperties"))
+ return reinterpret_cast<PFN_vkVoidFunction>(vkEnumerateInstanceExtensionProperties);
+ if (!strcmp(funcName, "vkGetInstanceProcAddr"))
+ return reinterpret_cast<PFN_vkVoidFunction>(vkGetInstanceProcAddr);
+
return parameter_validation::GetInstanceProcAddr(instance, funcName);
}