您好,我从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;
}
在教程中,我跟着这些家伙有更多层,他正在使用“VK_LAYER_LUNARG_standard_validation”。
here你可以看到那个家伙得到了什么。
我可能虽然教程不是最新的,但我找不到任何与此主题相关的内容。
感谢您的帮助:)。
答案 0 :(得分:5)
考虑使用vkEnumerateInstanceLayerProperties
。
前一段时间,Vulkan中不推荐使用设备层,实质上是在创建所有图层实例图层。在这种情况下,Optimus层可能被注册为实例和设备层,这是允许的,这也是列出设备层时显示的原因。
如果这样做没有帮助,您可能会遇到阻止您看到图层的安装问题。请考虑运行vulkaninfo
或via
来帮助解决问题。
最后,并非所有图层都是验证图层。当您枚举图层时,您将找到执行其他功能的图层,如您提供的屏幕截图所示。