您好,我从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".
在这里你可以看到这个家伙得到了什么.
我可能虽然教程不是最新的但我找不到任何与此主题相关的内容.
谢谢你的帮助:)
考虑使用vkEnumerateInstanceLayerProperties.
很久以前,Vulkan中不推荐使用设备层,主要是为所有图层设置实例层.在这种情况下,Optimus层可能被注册为实例和设备层,这是允许的,这也是列出设备层时显示的原因.
如果这没有帮助,您可能会遇到阻止您看到图层的安装问题.考虑运行vulkaninfo或via帮助解决问题.
最后,并非所有图层都是验证图层.枚举图层时,您将找到执行其他功能的图层,如您提供的屏幕截图所示.