我已经开始使用Vulkan/C++进行编程,但遇到了vkGetPhysicalDeviceQueueFamilyProperties( physical_device, &queue_family_count, nullptr );
行出现分段错误的问题。
queue_family_count
被初始化并声明为uint32_t queue_family_count = 0;
,physical_device
是vkEnumeratePhysicalDevices
返回的const VkPhysicalDevice
。
其他需要VkPhysicalDevice
的功能,例如vkGetPhysicalDeviceProperties
,可以工作,因此设备看起来是有效的。
使用PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" );
加载了vkGetPhysicalDeviceQueueFamilyProperties
我不知道这是否与操作系统有关,所以这里有一些信息:
操作系统: Arch Linux
WM: I3-间隙,
内核: x86_64 Linux 4.17.2-1-ARCH
physical_device
的名称为:英特尔(R)哈斯韦尔移动(vkEnumeratePhysicalDevices
退回的唯一设备)。
发布于 2018-06-30 04:33:24
修复了今天的pacman -Syu
之后的问题。
https://stackoverflow.com/questions/51025545
复制相似问题