我有一个有效的物理设备:m_physicalDevice[0]
。
我正在尝试通过物理设备检查支持的图层:
uint32_t physicalLayerCount;
std::vector<VkLayerProperties> vkDeviceLP;
result = vkEnumerateDeviceLayerProperties(m_physicalDevice[0], &physicalLayerCount, nullptr);
if (physicalLayerCount > 0)
{
vkDeviceLP.resize(physicalLayerCount);
vkEnumerateDeviceLayerProperties(m_physicalDevice[0], &physicalLayerCount, vkDeviceLP.data());
}
我已经确认:
•物理设备有效
•result
等于VK_SUCCESS
这里的问题是physicalLayerCount
= 0,因此代码不会运行physicalLayerCount > 0
循环。这是硬件问题还是我的代码有问题?
(r9 270X是我的GPU)
答案 0 :(得分:1)
Device layers are deprecated,您通常不需要查询它们。出于兼容性原因,在创建创建实例时所做的设备时,最好提供相同的图层列表。
除此之外,没有任何类型的层是正常的:这是在没有安装Vulkan SDK或类似RenderDoc的计算机上的常见情况;通常只有开发人员才有。