我在Ubuntu 19.10上安装了Nvidia专有驱动程序。
在Prime Profiles部分,有三个选项:
* NVIDIA(性能模式)
* NVIDIA按需
* Intel(省电模式)
第一个和最后一个选项很明显,但是我不知道第二个选项是如何工作的。它如何检测哪个应用程序需要NVIDIA驱动程序,哪个不需要?
第一个和最后一个选项很明显,但是我不知道第二个选项是如何工作的。它如何检测哪个应用程序需要NVIDIA驱动程序,哪个不需要?
/etc/environment
文件中添加以下变量:
__NV_PRIME_RENDER_OFFLOAD=1
对于OpenGL应用程序,您需要添加以下变量:
__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME=nvidia
重新启动后,它将开始进行离线渲染。glxinfo | grep vendor
glxgears
转移到NVIDIA硬件上,请执行__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears -info
(-info
应该让您检查它是否实际上在NVIDIA硬件上进行渲染)。 - Dominick PastorePRIME渲染卸载是指一个X屏幕由一个GPU渲染,但可以选择在该X屏幕上渲染特定应用程序的不同GPU。这在与动态功耗管理结合使用时特别有用,可以让NVIDIA GPU在不需要渲染性能敏感的应用程序时保持关闭状态。
渲染大部分X屏幕的GPU被称为“接收端”,而将特定应用程序渲染“卸载”到的GPU被称为“源”。渲染卸载源生成的内容会显示在渲染卸载接收端上。NVIDIA驱动程序可以作为PRIME渲染卸载源,将GLX+OpenGL或Vulkan的渲染卸载到由xf86-video-modesetting X驱动程序驱动的X屏幕上。
NVIDIA的PRIME渲染卸载支持需要在X.Org X服务器中进行以下git提交:
7f962c70 - xsync:在SyncCreate中添加资源,导出SyncCreate
37a36a6b - GLX:添加每个客户端的供应商映射
8b67ec7c - GLX:使用发送客户端来查找XID
56c0a71f - GLX:添加一个函数来更改客户端的供应商列表
b4231d69 - GLX:设置GlxServerExports::{major,minor}Version
截至本文撰写时,这些提交仅存在于X.Org X服务器的主分支中,尚未包含在任何官方的X.Org X服务器发布版本中。
Nvidia X Server Settings - PRIME Profiles: NVIDIA On-Demand
stefan@stefan-Zen:~$ glxheads :0
Name: :0
Display: 0x556081a45d40
Window: 0x7000002
Context: 0x556081a64a70
GL_VERSION: 3.0 Mesa 19.2.8
GL_VENDOR: Intel Open Source Technology Center
GL_RENDERER: Mesa DRI Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2)
stefan@stefan-Zen:~$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxheads :0
Name: :0
Display: 0x55f6dd9097a0
Window: 0x7000002
Context: 0x55f6dd944878
GL_VERSION: 4.6.0 NVIDIA 440.64
GL_VENDOR: NVIDIA Corporation
GL_RENDERER: GeForce RTX 2060/PCIe/SSE2
nvidia-prime-applet
软件包的一部分随附提供。nvidia-optimus-offload-glx glxheads :0
nvidia-optimus-offload-vulkan vkcube
cat /var/log/Xorg.0.log | grep -i NVIDIA
# it should output a bunch of lines with "NVIDIA(G0)"
/etc/X11/xorg.conf.d/nvidia.conf
文件,并按照@stefan-krüger提到的第34章 PRIME渲染卸载中的说明填充其内容。
nvidia-driver-440
,选择"NVIDIA On-Demand"会在GNOME启动器中给我一个右键选项,可以选择"使用独立显卡启动"。通过这个选项启动应用程序后,在检查nvidia-settings
工具时可以确认它们将使用独立显卡。 - Michael Noguera