我正在尝试创建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可能返回此值。超级有帮助-_-。我在这里想念什么?

最佳答案

确保安装正确。为了进行开发,您应该具有支持LunarG的Vulkan和Vulkan SDK的图形驱动程序。

首先验证安装并运行演示程序:vulkaninfocube。如果任何一个都不起作用,则可能是您的卡/驱动程序无法使用Vulkan。

最后,您的应用应与vulkan-1库链接。加载器通过SDK(Vulkan运行时)为vkCreateInstance提供服务,因此,除了没有兼容的驱动程序外,通常没有其他原因导致失败。

关于c++ - Vulkan创建实例VK_OUT_OF_HOST_MEMORY,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40856564/

10-11 15:12