diff options
| author | Chia-I Wu <olv@google.com> | 2016-05-16 07:43:38 +0800 |
|---|---|---|
| committer | Chia-I Wu <olv@google.com> | 2016-05-21 11:15:11 +0800 |
| commit | 60261ba1b23e12b59f2523f611309ad25e1fc562 (patch) | |
| tree | aa40b564d69713e4909dbaa74cbcde962d9250fb /layers/parameter_validation.cpp | |
| parent | 9c846dbbb790defec9483e3959ccf2202c934970 (diff) | |
| download | usermoji-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.cpp | 17 |
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); } |
