diff options
Diffstat (limited to 'tools/gfx/vulkan/vk-api.cpp')
| -rw-r--r-- | tools/gfx/vulkan/vk-api.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/tools/gfx/vulkan/vk-api.cpp b/tools/gfx/vulkan/vk-api.cpp index 80b1d5814..dbf32345f 100644 --- a/tools/gfx/vulkan/vk-api.cpp +++ b/tools/gfx/vulkan/vk-api.cpp @@ -9,9 +9,19 @@ using namespace Slang; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! VulkanApi !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -#define VK_API_CHECK_FUNCTION(x) &&(x != nullptr) +#define VK_API_CHECK_FUNCTION(x) &&hasFunction(#x, (void*)x) #define VK_API_CHECK_FUNCTIONS(FUNCTION_LIST) true FUNCTION_LIST(VK_API_CHECK_FUNCTION) +static bool hasFunction(const char* name, void* ptr) +{ + if (ptr) + return true; +#if 0 + fprintf(stderr, "Missing required Vulkan function: %s\n", name); +#endif + return false; +} + bool VulkanApi::areDefined(ProcType type) const { switch (type) @@ -19,7 +29,8 @@ bool VulkanApi::areDefined(ProcType type) const case ProcType::Global: return VK_API_CHECK_FUNCTIONS(VK_API_ALL_GLOBAL_PROCS); case ProcType::Instance: - return VK_API_CHECK_FUNCTIONS(VK_API_ALL_INSTANCE_PROCS); + return VK_API_CHECK_FUNCTIONS(VK_API_ALL_INSTANCE_PROCS) && + VK_API_CHECK_FUNCTIONS(VK_API_INSTANCE_KHR_PROCS); case ProcType::Device: return VK_API_CHECK_FUNCTIONS(VK_API_DEVICE_PROCS); default: |
