Ubuntu20下Vulkan验证层已安装但运行程序提示不可用问题求助
解决方案
首先明确:Vulkan验证层是运行时动态加载的组件,不需要在编译链接阶段额外加参数,你当前的Makefile编译指令是完全正确的,不需要修改。
出现validation layers requested, but not available!报错,可按以下步骤排查:
- 检查代码中声明的验证层名称是否正确
优先使用官方推荐的VK_LAYER_KHRONOS_validation,如果你的代码里沿用了旧教程的VK_LAYER_LUNARG_standard_validation,部分环境下可能无法识别,直接替换为前者即可。 - 检查代码的层可用性校验逻辑
必须通过vkEnumerateInstanceLayerProperties接口枚举当前系统所有可用层后,再匹配判断你要启用的层是否存在,不要硬编码直接加载,避免拼写错误导致的加载失败。 - 双显卡环境指定独显运行
你的设备是NVIDIA双显卡配置,默认可能调用核显加载Vulkan组件,执行以下命令启动程序测试:__NV_PRIME_RENDER_OFFLOAD=1 ./VulkanTest - 检查验证层路径配置
执行echo $VK_LAYER_PATH,如果输出为空属于正常状态,系统会自动扫描默认路径下的验证层;如果输出为自定义LunarG SDK路径,需要确保对应路径下存在验证层的动态库文件。
内容的提问来源于stack exchange,提问作者BarkerChippy
相关产品推荐
相关产品推荐

