设备验证层vulkan

Kas*_*mir 1 c++ vulkan

您好,我从Vulkan API开始,我正在尝试显示验证层.但问题是我只能访问一个设备验证层:"VK_LAYER_NV_optimus"

{//Enumerating Device Verification Layers
    uint32_t layer_count = 0;
    vkEnumerateDeviceLayerProperties(_gpu, &layer_count, nullptr);
    std::vector<VkLayerProperties> layer_property_list(layer_count);
    vkEnumerateDeviceLayerProperties(_gpu, &layer_count, layer_property_list.data());
    std::cout << "Device Layers : \n";
    for (auto &i : layer_property_list) {
        std::cout << "  " << i.layerName << "\t\t | " << i.description << std::endl;
    }
    std::cout << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

在教程中,我跟随这些人有更多层,他正在使用"VK_LAYER_LUNARG_standard_validation".

在这里你可以看到这个家伙得到了什么.

我可能虽然教程不是最新的但我找不到任何与此主题相关的内容.

谢谢你的帮助:)

Kar*_*ltz 5

考虑使用vkEnumerateInstanceLayerProperties.

很久以前,Vulkan中不推荐使用设备层,主要是为所有图层设置实例层.在这种情况下,Optimus层可能被注册为实例和设备层,这是允许的,这也是列出设备层时显示的原因.

如果这没有帮助,您可能会遇到阻止您看到图层的安装问题.考虑运行vulkaninfovia帮助解决问题.

最后,并非所有图层都是验证图层.枚举图层时,您将找到执行其他功能的图层,如您提供的屏幕截图所示.