Skip to content

Commit 6506649

Browse files
committed
Improve missing vkEnumerateInstanceVersion handling
1 parent a7f9a0d commit 6506649

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

source_common/framework/manual_functions.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,10 @@ std::pair<bool, PFN_vkVoidFunction> getInstanceLayerFunction(const char* name)
116116
const std::array<const char*, 5> globalFunctions {
117117
// Supported since Vulkan 1.0
118118
"vkCreateInstance",
119-
"vkEnumerateInstanceVersion",
120119
"vkEnumerateInstanceExtensionProperties",
121120
"vkEnumerateInstanceLayerProperties",
121+
// Supported since Vulkan 1.1
122+
"vkEnumerateInstanceVersion",
122123
// Supported since Vulkan 1.2
123124
"vkGetInstanceProcAddr",
124125
};
@@ -167,12 +168,14 @@ APIVersion getInstanceAPIVersion(PFN_vkGetInstanceProcAddr fpGetProcAddr)
167168
return { 1, 3 };
168169
#endif
169170

171+
// Try to get vkEnumerateInstanceVersion, and assume this is a Vulkan 1.0
172+
// feature level if we don't get it ...
170173
auto fpFunctionRaw = fpGetProcAddr(nullptr, "vkEnumerateInstanceVersion");
171174
auto fpFunction = reinterpret_cast<PFN_vkEnumerateInstanceVersion>(fpFunctionRaw);
172175
if (!fpFunction)
173176
{
174-
LAYER_ERR("Failed to get vkEnumerateInstanceVersion()");
175-
return {0, 0};
177+
LAYER_ERR("Failed to get vkEnumerateInstanceVersion(), assuming Vulkan 1.0");
178+
return {1, 0};
176179
}
177180

178181
uint32_t apiVersion = 0;

0 commit comments

Comments
 (0)