Vulkan 创建实例 VK_OUT_OF_HOST_MEMORY

Vulkan create instance VK_OUT_OF_HOST_MEMORY

我正在尝试创建一个 VkInstance 来开始使用 Vulkan,但我已经 运行 遇到了一个未记录的错误。这是我到目前为止的所有代码:

VkApplicationInfo applicationInfo = {};
applicationInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
applicationInfo.pNext = NULL;
applicationInfo.pApplicationName = "<game>";
applicationInfo.applicationVersion = VK_MAKE_VERSION(1, 0, 0);
applicationInfo.pEngineName = "<engine>";
applicationInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0);
applicationInfo.apiVersion = VK_API_VERSION_1_0;

// setup the instance info
VkInstanceCreateInfo instanceInfo = {};
instanceInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instanceInfo.pNext = NULL;
instanceInfo.flags = 0;
instanceInfo.pApplicationInfo = &applicationInfo;
instanceInfo.enabledLayerCount = 0;
instanceInfo.ppEnabledExtensionNames = NULL;
instanceInfo.enabledExtensionCount = 0;
instanceInfo.ppEnabledLayerNames = NULL;

// create the vk instance which is used to do stuff in vulkan
VkInstance instance;
VkResult result = vkCreateInstance(&instanceInfo, NULL, &instance);

这之后的结果是VK_OUT_OF_HOST_MEMORY。关于这个的所有文档都说 vkCreateInstance 可能 return 这个。超级有帮助 -_-。我在这里错过了什么?

确保您的安装正确。对于开发,您应该有一个支持 Vulkan 的图形驱动程序和来自 LunarG 的 Vulkan SDK。

首先验证您的安装和 运行 演示程序:vulkaninfocube。如果两者都不起作用,很可能是您的 card/driver 无法使用 Vulkan。

最后,您的应用程序应该链接到 vulkan-1 库。 vkCreateInstance 由来自 SDK 的加载程序提供服务(Vulkan 运行 时间),因此通常没有理由导致它失败,除了没有可用的兼容驱动程序。

这原来是 Vulkan SDK 中的一个错误,在问题 #629 中被复制和修补 https://vulkan.lunarg.com/issue/view/584553649ab0fa4b673614cb