vulGet API vkGetPhysicalDeviceProperties2上的SIGSEGV

问题描述

我有2个GPU。我尝试使用vkGetPhysicalDeviceProperties2获得VkPhysicaldeviceidProperties。可以在nvidia GPU上运行,但是在Intel GPU上可以SIGSEGV:

auto fpGetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2) vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceProperties2");

VkPhysicaldeviceidProperties vkPhysicaldeviceidProperties{};
vkPhysicaldeviceidProperties.sType =
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES;
vkPhysicaldeviceidProperties.pNext = NULL;

VkPhysicalDeviceProperties2 vkPhysicalDeviceProperties2 = {};
vkPhysicalDeviceProperties2.sType =
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
vkPhysicalDeviceProperties2.pNext = &vkPhysicaldeviceidProperties;

fpGetPhysicalDeviceProperties2(_physical_device,&vkPhysicalDeviceProperties2);

首先,我怀疑intel GPU可能不支持vkGetPhysicalDeviceProperties2。但是,vulkaninfo表示,英特尔GPU具有apiVersion 1.2.131,绝对具有该功能。 vulkaninfo实际上可以为两个GPU返回PhysicalDeviceProperties2。知道吗,我在这里做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)