aboutsummaryrefslogtreecommitdiff
path: root/layers/threading.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'layers/threading.cpp')
-rw-r--r--layers/threading.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/layers/threading.cpp b/layers/threading.cpp
index 47d49060..db5f6ae0 100644
--- a/layers/threading.cpp
+++ b/layers/threading.cpp
@@ -193,19 +193,18 @@ static inline PFN_vkVoidFunction layer_intercept_instance_proc(const char *name)
if (!name || name[0] != 'v' || name[1] != 'k')
return NULL;
+ // we should never be queried for these commands
+ assert(strcmp(name, "vkEnumerateInstanceLayerProperties") &&
+ strcmp(name, "vkEnumerateInstanceExtensionProperties") &&
+ strcmp(name, "vkEnumerateDeviceLayerProperties"));
+
name += 2;
if (!strcmp(name, "CreateInstance"))
return (PFN_vkVoidFunction)CreateInstance;
if (!strcmp(name, "DestroyInstance"))
return (PFN_vkVoidFunction)DestroyInstance;
- if (!strcmp(name, "EnumerateInstanceExtensionProperties"))
- return (PFN_vkVoidFunction)vkEnumerateInstanceExtensionProperties;
- if (!strcmp(name, "EnumerateInstanceLayerProperties"))
- return (PFN_vkVoidFunction)vkEnumerateInstanceLayerProperties;
if (!strcmp(name, "EnumerateDeviceExtensionProperties"))
return (PFN_vkVoidFunction)EnumerateDeviceExtensionProperties;
- if (!strcmp(name, "EnumerateDeviceLayerProperties"))
- return (PFN_vkVoidFunction)vkEnumerateDeviceLayerProperties;
if (!strcmp(name, "CreateDevice"))
return (PFN_vkVoidFunction)CreateDevice;
if (!strcmp(name, "GetInstanceProcAddr"))
@@ -377,5 +376,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 threading::GetInstanceProcAddr(instance, funcName);
}