From 32d73d77972b0ddc5a3af98a75a54bfc8bcb10ff Mon Sep 17 00:00:00 2001 From: Taekyun Kim Date: Mon, 11 Apr 2016 14:09:09 +0900 Subject: [PATCH] null-driver: Fix vk_icdGetInstanceProcAddr() to return all vulkan commands Change-Id: I6c4d57537fc27b35a6d2f05ee491d47da1663571 --- src/null-driver/null-driver.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/src/null-driver/null-driver.c b/src/null-driver/null-driver.c index e446c7f..1c52dec 100644 --- a/src/null-driver/null-driver.c +++ b/src/null-driver/null-driver.c @@ -2462,7 +2462,7 @@ get_instance_proc_addr(VkInstance instance, const char *name) { unsigned int i; - if (name == NULL) + if (instance == NULL) { for (i = 0; i < ARRAY_LENGTH(global_funcs); ++i) { if (strcmp(name, global_funcs[i].name) == 0) @@ -2475,16 +2475,35 @@ get_instance_proc_addr(VkInstance instance, const char *name) if (strcmp(name, instance_funcs[i].name) == 0) return instance_funcs[i].func; } + + for (i = 0; i < ARRAY_LENGTH(device_funcs); ++i) { + if (strcmp(name, device_funcs[i].name) == 0) + return device_funcs[i].func; + } } return NULL; } -VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL +VK_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char *name) { - if (strcmp(name, "vkGetDeviceProcAddr") == 0) - return (PFN_vkVoidFunction)get_device_proc_addr; + unsigned int i; + + for (i = 0; i < ARRAY_LENGTH(global_funcs); ++i) { + if (strcmp(name, global_funcs[i].name) == 0) + return global_funcs[i].func; + } + + for (i = 0; i < ARRAY_LENGTH(instance_funcs); ++i) { + if (strcmp(name, instance_funcs[i].name) == 0) + return instance_funcs[i].func; + } - return get_instance_proc_addr(instance, name); + for (i = 0; i < ARRAY_LENGTH(device_funcs); ++i) { + if (strcmp(name, device_funcs[i].name) == 0) + return device_funcs[i].func; + } + + return NULL; } -- 2.7.4