[Share Experiences] 关于双显卡pot无法启动的问题解决方法
Tofloor
poster avatar
大威天龙
deepin
5 hours ago
Author

问题:双显卡电脑,比如我的amd集显+n卡独显,用闭源驱动一般都会无法启动。

原因:很多软件(特别是 pot 这种带图形渲染的工具)会默认用 EGL渲染,此渲染无法在独显上初始化导致无法启动。(一般时候屏幕输出用的集显,渲染用的独显)

解决办法:1.强制指定 NVIDIA EGL。2.或者直接禁用 EGL,强制使用 X11 后端。

方案一:用xrandr配置。更改渲染器指向。
1、查看当前 PRIME 渲染设置
xrandr --listproviders
2、根据1的显示更改下面命令的参数。
xrandr --setprovideroffloadsink <渲染源Provider> <输出SinkProvider>
看输出,如果修改不成功,估计是xrandr --setprovideroffloadsink 命令在你的环境中不被支持,这在部分笔记本双显卡(AMD+NVIDIA)配置中很常见,因为 NVIDIA 驱动或桌面环境对 PRIME Offload 的实现方式不同。

方案二:直接跳过 xrandr 配置,用环境变量强制程序走独显渲染。(不需要修改任何系统显示设置):

1、测试(指定渲染后端):

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/10_nvidia.json EGL_PLATFORM=x11 GDK_BACKEND=x11 QT_X11_NO_MITSHM=1 pot
如果测试正常,证明路子是正确的。
2、为了解决其他类似软件出现同样问题,可以在环境变量指定渲染后端。

打开环境变量配置
nano ~/.bashrc
最后面加上如下代码:
export __NV_PRIME_RENDON=1
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/10_nvidia.json
export EGL_PLATFORM=x11
export GDK_BACKEND=x11
export QT_X11_NO_MITSHM=1

ctrl+o 回车 ctrl+x退出配置文件。
3、刷新配置,让配置立即生效。
source ~/.bashrc

至此类似pot这种带图形渲染(默认用EGL渲染)的软件,都能正常使用了。

有什么软件需要解决的可以留言,有时间我会帮忙研究处理下。

Reply Favorite View the author
All Replies

No replies yet