Vulkan验证层无法在Linux上加载/工作

我有一个基本的Vulkan应用程序,“ Hello三角形”,源自this tutorial。在调试模式下,我使用两个验证层:

VK_LAYER_KHRONOS_validationVK_LAYER_LUNARG_monitor

在Windows上,我没有问题。两层都加载,我可以在标题栏中看到FPS计数器。但是我在Linux(Ubuntu 18.04)上遇到了不同的行为。

仅加载VK_LAYER_LUNARG_monitor。标题栏中没有FPS计数器。

VK_LAYER_KHRONOS_validation无法加载,并显示以下错误:

  

错误:libVkLayer_khronos_validation.so:无法打开共享库   文件:没有这样的文件或目录

我是根据本LunarG文档中显示的准则执行Linux设置的。

  1. 将整个LunarG SDK放在Linux上的任意位置 文件系统。
  2. setup-env.sh导出到.profile文件中
  3. 在setup-env.sh脚本中,我还添加了VK_LOADER_DEBUG=all,以便查看来自Vulkan Loader的详细信息。
  4. 验证脚本设置的所有变量都指向SDK中正确的目录。他们有。

setup-env.sh:

 VULKAN_SDK="$(dirname "$(readlink -f "${BASH_SOURCE:-$_}" )" )/x86_64"
 export VULKAN_SDK
 PATH="$VULKAN_SDK/bin:$PATH"
 export PATH
 LD_libraRY_PATH="$VULKAN_SDK/lib:${LD_libraRY_PATH:-}"
 export LD_libraRY_PATH
 VK_LAYER_PATH="$VULKAN_SDK/etc/vulkan/explicit_layer.d"
 export VK_LAYER_PATH
 export VK_LOADER_DEBUG=all

这是我从调试输出中获得的大块,显示了加载图层失败:

  

调试:加载图层库   /home/platform-thirdparty/vulkan-sdk/1.1.121.1/x86_64/lib/libVkLayer_monitor.so   INFO:插入的设备层VK_LAYER_LUNARG_monitor   (/home/platform-thirdparty/vulkan-sdk/1.1.121.1/x86_64/lib/libVkLayer_monitor.so)   消息:libVkLayer_khronos_validation.so:无法打开共享对象   文件:没有这样的文件或目录错误:   libVkLayer_khronos_validation.so:无法打开共享库文件:否   这样的文件或目录

即使它说了

  

插入的设备层VK_LAYER_LUNARG_monitor

显示器无法正常工作。 如果将VK_LAYER_KHRONOS_validation替换为VK_LAYER_LUNARG_standard_validation,我将收到相同的加载失败错误。 调试器还显示,加载程序确实找到了SDK中所有层的所有清单文件。 我不知道还有什么问题。

我的系统设置:

Ubuntu 18.04 64位,Nvidia RTX 3000 Nvidia驱动程序:430.0 VulkanSDK(LunarG):1.1.121.1

ilyu1314 回答:Vulkan验证层无法在Linux上加载/工作

在此SO question中包含了user1824407的答案。

似乎在最新的Ubuntu发行版中(至少在我使用的18.04中),将LD_LIBRARY路径设置为以下配置文件:  .profile/etc/environment.bashrc

没有任何效果。确实,我尝试将lib路径添加到所有这些文件中,即使echo $LD_LIBRARY_PATH打印了我设置的密码,也没有加载lib。 而且只有当我将带有Vulkan验证层位置的路径添加到/etc/ld.so.conf.d/devlibs.conf

  

devlibs.conf

是我给文件指定的任意名称,现在我看到Vulkan加载了VK_LAYER_LUNARG_monitor和VK_LAYER_KHRONOS_validation。

本文链接:https://www.f2er.com/3158142.html

大家都在问