summaryrefslogtreecommitdiffstats
path: root/tools/gfx/vulkan/vk-api.cpp
diff options
context:
space:
mode:
authorJay Kwak <82421531+jkwak-work@users.noreply.github.com>2025-01-30 00:59:49 -0800
committerGitHub <noreply@github.com>2025-01-30 00:59:49 -0800
commitba9b2785c69c1b8c6d2b4103267b5281815f9f23 (patch)
treee4ba4ca76c6592b90764a0a7ac32502639dc93aa /tools/gfx/vulkan/vk-api.cpp
parent2ae194d51e15c064c3d905e628f7335de7504e32 (diff)
Support cooperative vector (#6223)
* Support cooperative vector without Vulkan-header update Adding a Slang support for cooperative vector. But this commit doesn't have Vulkan-header update.
Diffstat (limited to 'tools/gfx/vulkan/vk-api.cpp')
-rw-r--r--tools/gfx/vulkan/vk-api.cpp15
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: