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

如何在遵循 vulkan 教程的同时修复 mac m1 上的 VK_KHR_portability_subset 错误

如何解决如何在遵循 vulkan 教程的同时修复 mac m1 上的 VK_KHR_portability_subset 错误

嗨,我在编译时遇到错误。显然我缺少一个扩展:

验证层:验证错误:[VUID-VkDeviceCreateInfo-pProperties-04451]对象0:句柄= 0x1055040c0,类型= VK_OBJECT_TYPE_PHYSICAL_DEVICE; |消息 ID = 0x3a3b6ca0 | vkCreateDevice:VK_KHR_portability_subset 必须启用,因为物理设备 VkPhysicalDevice 0x1055040c0[] 支持它 Vulkan 规范声明:如果 [VK_KHR_portability_subset] 扩展包含在 vkEnumerateDeviceExtensionProperties 的 pProperties 中,则 ppEnabledExtensions 必须包括“.Vkportability_Kset” (https://vulkan.lunarg.com/doc/view/1.2.176.1/mac/1.2-extensions/vkspec.html#VUID-VkDeviceCreateInfo-pProperties-04451)

我天真地将“VK_KHR_portability_subset”添加到 deviceExtension 向量中,然后出现了第二个错误,似乎与前一个相似。

验证层:验证错误:[VUID-vkCreateDevice-ppEnabledExtensionNames-01387]对象0:VK_NULL_HANDLE,类型= VK_OBJECT_TYPE_INSTANCE; |消息 ID = 0x12537a2c |缺少设备扩展所需的扩展 VK_KHR_portability_subset:VK_KHR_get_physical_device_properties2。 Vulkan 规范规定: VkDeviceCreateInfo::ppEnabledExtensionNames 列表中每个扩展的所有必需扩展也必须存在于该列表中 (https://vulkan.lunarg.com/doc/view/1.2.176.1/mac/1.2-extensions/vkspec.html#VUID-vkCreateDevice-ppEnabledExtensionNames-01387)

添加到 deviceExtension 向量“VK_KHR_get_physical_device_properties2”,然后出现第三个错误

libc++abi:以未捕获的 std::runtime_error 类型异常终止:未能找到合适的 GPU!

问题是之前他认出我使用的是 m1 芯片,但现在设备上没有显示任何信息:(

解决方法

我添加到 deviceExtension 向量“VK_KHR_get_physical_device_properties2”

VK_KHR_get_physical_device_properties2 是一个实例扩展,因此属于vkCreateInstance不是设备)。

据报道,这解决了您的问题。

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