微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不能将 pNext 设置为 NULL

如何解决不能将 pNext 设置为 NULL

我正在尝试在 C 中设置 Vulkan。但是随后我创建了我的 VkInstanceCreateInfo 并将 pNext 设置为 NULL 我收到一个错误

Vulkan documentation 声明“pNext 为 NULL 或指向扩展此结构的结构的指针。”但是当我将 pNext 设置为 NULL 时,我收到此错误,告诉我 pNext 必须为 NULL

错误

VUID-VkApplicationInfo-pNext-pNext(ERROR / SPEC): msgNum: 1223396377 - Validation Error: [ VUID-VkApplicationInfo-pNext-pNext ] Object 0: VK_NULL_HANDLE,type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x48eb8c19 | vkCreateInstance: value of pCreateInfo->pApplicationInfo->pNext must be NULL. This error is based on the Valid Usage documentation for version 154 of the Vulkan header. It is possible that you are using a struct from a private extension or an extension that was added to a later version of the Vulkan header,in which case the use of pCreateInfo->pApplicationInfo->pNext is undefined and may not work correctly with validation enabled The Vulkan spec states: pNext must be NULL Objects: 1 [0] 0,type: 3,name: NULL

代码

 ...

 VkInstanceCreateInfo vulkanInstanceCreateInfo;
 vulkanInstanceCreateInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
 vulkanInstanceCreateInfo.pNext = NULL;
 vulkanInstanceCreateInfo.flags = 0;
 vulkanInstanceCreateInfo.pApplicationInfo = &vulkanApplicationInfo;
 vulkanInstanceCreateInfo.enabledExtensionCount = glfwExtensionCount;
 vulkanInstanceCreateInfo.ppEnabledExtensionNames = glfwExtensions;

 /* validation layers */
 if(VALIDATION_LAYERS_ENABLED){
   vulkanInstanceCreateInfo.enabledLayerCount = validationLayersCount;
   vulkanInstanceCreateInfo.ppEnabledLayerNames = validationLayers;
 }else
   vulkanInstanceCreateInfo.enabledLayerCount = 0;

 ...

解决方法

错误不是在谈论 VkInstanceCreateInfo,而是关于 VkApplicationInfo。我没有在那里设置我的 pNext。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。