物理设备可以有零实例层吗?

时间:2017-06-27 21:15:34

标签: c++ vulkan

我有一个有效的物理设备: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)

1 个答案:

答案 0 :(得分:1)

Device layers are deprecated,您通常不需要查询它们。出于兼容性原因,在创建创建实例时所做的设备时,最好提供相同的图层列表。

除此之外,没有任何类型的层是正常的:这是在没有安装Vulkan SDK或类似RenderDoc的计算机上的常见情况;通常只有开发人员才有。