Linux dGPU Nvidia 独显运行应用
Linux dGPU Nvidia 独显运行应用
在 Ubuntu 22.04 上
系统带有工具 switcherooctl 可以切换系统使用的 gpu
卡,若默认连接显示到集成显卡,使用此工具时,将使用独显运行应用
若无法运行,可以使用 vkcube 来检查 Vulcan
的可用性,工具来自于包 vulkan-tools 直接 apt 安装即可。
可能出现无法调用情况如下:
vkEnumerateInstanceExtensionProperties failed to find the VK_KHR_surface extension. Do you have a compatible Vulkan installable client driver (ICD) installed? Please look at the Getting Started guide for additional information. |
此时需要检查 icd 文件是否可用
ls /usr/share/vulkan/icd.d/nvidia_icd.json |
若无文件,则需要安装库
sudo apt install vulkan-tools libvulkan1 libvulkan1:i386 |
若安装后仍不可用,检查是否有 Nvidia-wrapper
ls /usr/share/vulkan/icd.d/ |
恢复配置:
sudo mv /usr/share/vulkan/icd.d/nvidia_icd.disabled_by_nv_vulkan_wrapper /usr/share/vulkan/icd.d/nvidia_icd.json |
此时再切换独显运行可行。
注意,我并未发现哪部分程序给出了
nv_vulkan_wrapper,若可行,从添加 wrapper
的程序关闭可能更合理
使用环境变量运行 windows 软件
在解决 icd 问题后,环境变量也可以用作切换运行的方式,毕竟
switcherooctl launch 的原理本质也是切换环境变量。
例如使用 Steam 的 Proton 9.0-4 运行 Windows
应用,独显启动:
先要确保手动在 Steam 中添加可执行文件到游戏库中,并在命令行启动的
Steam 上获取其编号,或者在集显运行时查看其环境变量中的
SteamGameId
之后,为应用添加必要的环境变量,无需启动 Steam 即可运行应用本体
注意,最好替换 SteamGameId ,这是 Steam
做运行环境隔离的措施,使用程序自己的环境运行更稳定
此外,一定要替换 proton 的运行路径,我的路径只是
Proton 9.0 配置,随着版本更新,指令会有所不同。
此指令从 ps -aux | grep proton 获取,对于后续 Steam 启动
proton 的指令,可以通过如上方案获取启动指令模版。
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json SteamGameId=2907931734 STEAM_COMPAT_DATA_PATH=$HOME/.local/share/Steam/steamapps/compatdata/$SteamGameId STEAM_COMPAT_CLIENT_INSTALL_PATH=~/.local/share/Steam/ python3 "$HOME/.local/share/Steam/steamapps/common/Proton 9.0 (Beta)/proton" waitforexitandrun "/media/zsig/生活日常/Games/Grand Theft Auto V/GTA5.exe" |
Wine 运行
Wine + dxvk 手动运行也可以,例如使用 jadeite 启动 Unity 程序
DXVK_HUD="fps,frametimes,version,gpuload" GST_PLUGIN_PATH="" HOST_LANG="zh_CN.UTF-8" HOST_LC_ALL="zh_CN.UTF-8" LANG="zh_CN.UTF-8" LC_ALL="zh_CN.UTF-8" LD_LIBRARY_PATH="/home/zsig/.var/app/moe.launcher.the-honkers-railway-launcher/data/honkers-railway-launcher/runners/wine-10.1-staging-tkg-amd64/lib:/home/zsig/.var/app/moe.launcher.the-honkers-railway-launcher/data/honkers-railway-launcher/runners/wine-10.1-staging-tkg-amd64/lib/wine/x86_64-unix:/home/zsig/.var/app/moe.launcher.the-honkers-railway-launcher/data/honkers-railway-launcher/runners/wine-10.1-staging-tkg-amd64/lib/wine/i386-unix" WINEARCH="win64" WINEFSYNC="1" WINEPREFIX="/home/zsig/.var/app/moe.launcher.the-honkers-railway-launcher/data/honkers-railway-launcher/prefix" WINE_FULLSCREEN_FSR="1" WINE_FULLSCREEN_FSR_MODE="balanced" WINE_FULLSCREEN_FSR_STRENGTH="2" JADEITE_ALLOW_UNKNOWN=1 bash -c "'/home/zsig/.var/app/moe.launcher.the-honkers-railway-launcher/data/honkers-railway-launcher/runners/wine-10.1-staging-tkg-amd64/bin/wine64' '/home/zsig/.var/app/moe.launcher.the-honkers-railway-launcher/data/honkers-railway-launcher/patch/jadeite.exe' '/home/zsig/Documents/SkyLines/Cities - Skylines II/Cities2.exe' -- " |