问题:双显卡电脑,比如我的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渲染)的软件,都能正常使用了。
有什么软件需要解决的可以留言,有时间我会帮忙研究处理下。
No replies yet
Featured Collection
Popular Events
问题:双显卡电脑,比如我的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渲染)的软件,都能正常使用了。
有什么软件需要解决的可以留言,有时间我会帮忙研究处理下。