【发布时间】:2019-01-01 20:42:32
【问题描述】:
我只在我的卡 (AMD r9 380) 上测试过。
vkGetPhysicalDeviceQueueFamilyProperties() 找到 3 个 QueueFamilies。一个包含所有正常位(图形、计算、传输),一个缺少图形,一个缺少计算和图形。我认为缺少的图形是计算队列系列,而缺少的计算和图形是传输队列系列。
vkGetDeviceQueue(instance, computeFamily, 0, &pComputeQueue);
instance 为 VkInstance,computeFamily 为 uint32_t 索引值,0 为请求队列的索引,pComputeQueue 为 VkQueue。尝试使用此参数运行此函数会生成 Vulkan01.exe: 0xC0000005: Access violation writing location 0x0000000000000000.
vkGetDeviceQueue() 对 Graphics、Presentation(如预期的那样返回与我的实现中的图形相同)和传输返回的效果很好。
所以问题是:为什么我在尝试将句柄返回给我列出的队列系列之一时会出错?可能只是我的卡吗? (Sascha Williams 的一些示例也无法在我的计算机上运行,所以我推测可能我的卡对于某些功能来说太旧了?)
【问题讨论】:
标签: c++ access-violation vulkan