我已经开始用 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
工作(,因此设备似乎有效。
vkGetPhysicalDeviceQueueFamilyProperties
装满了PFN_vkGetPhysicalDeviceQueueFamilyProperties
vkGetPhysicalDeviceQueueFamilyProperties =
(PFN_vkGetPhysicalDeviceQueueFamilyProperties) vkGetInstanceProcAddr(
instance, "vkGetPhysicalDeviceQueueFamilyProperties" );
我不知道这是否与操作系统有关,所以这里有一些信息:
操作系统:Arch Linux
WM:i3-gaps,
内核:x86_64 Linux 4.17.2-1-ARCHphysical_device
的名称是:英特尔(R( Haswell Mobile(仅由vkEnumeratePhysicalDevices
返回的设备(。
今天pacman -Syu
后自行修复。