Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/Vulkan-Loader.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'loader/loader.c')
-rw-r--r--loader/loader.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/loader/loader.c b/loader/loader.c
index 50e808142..6ff911053 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -3966,9 +3966,8 @@ static VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL loader_gpdpa_instance_terminator
return addr;
}
- // Get the terminator, but don't perform checking since it should already
- // have been setup if we get here.
- addr = loader_phys_dev_ext_gpa_term_no_check(loader_get_instance(inst), pName);
+ // Check if any drivers support the function, and if so, add it to the unknown function list
+ addr = loader_phys_dev_ext_gpa_term(loader_get_instance(inst), pName);
if (NULL != addr) return addr;
// Don't call down the chain, this would be an infinite loop
@@ -4031,6 +4030,18 @@ static VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL loader_gpa_instance_terminator(V
return addr;
}
+ // Check if it is an unknown physical device function, to see if any drivers support it.
+ addr = loader_phys_dev_ext_gpa_term(loader_get_instance(inst), pName);
+ if (addr) {
+ return addr;
+ }
+
+ // Assume it is an unknown device function, check to see if any drivers support it.
+ addr = loader_dev_ext_gpa_term(loader_get_instance(inst), pName);
+ if (addr) {
+ return addr;
+ }
+
// Don't call down the chain, this would be an infinite loop
loader_log(NULL, VULKAN_LOADER_DEBUG_BIT, 0, "loader_gpa_instance_terminator() unrecognized name %s", pName);
return NULL;