summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/gfx/d3d12/d3d12-device.cpp3
-rw-r--r--tools/gfx/vulkan/vk-api.cpp15
-rw-r--r--tools/gfx/vulkan/vk-api.h1
3 files changed, 16 insertions, 3 deletions
diff --git a/tools/gfx/d3d12/d3d12-device.cpp b/tools/gfx/d3d12/d3d12-device.cpp
index 35192fd7d..88051d837 100644
--- a/tools/gfx/d3d12/d3d12-device.cpp
+++ b/tools/gfx/d3d12/d3d12-device.cpp
@@ -74,7 +74,8 @@ static ShaderModelInfo kKnownShaderModels[] = {
SHADER_MODEL_INFO_DXIL(6, 4),
SHADER_MODEL_INFO_DXIL(6, 5),
SHADER_MODEL_INFO_DXIL(6, 6),
- SHADER_MODEL_INFO_DXIL(6, 7)
+ SHADER_MODEL_INFO_DXIL(6, 7),
+ SHADER_MODEL_INFO_DXIL(6, 8)
#undef SHADER_MODEL_INFO_DXIL
};
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:
diff --git a/tools/gfx/vulkan/vk-api.h b/tools/gfx/vulkan/vk-api.h
index 9d2535f09..23902e88c 100644
--- a/tools/gfx/vulkan/vk-api.h
+++ b/tools/gfx/vulkan/vk-api.h
@@ -1,6 +1,7 @@
// vk-api.h
#pragma once
+#include "core/slang-basic.h"
#include "vk-module.h"
namespace gfx