PRIME (简体中文)

From ArchWiki
Jump to navigation Jump to search


附注: please use the first argument of the template to provide more detailed indications.

PRIME 是一项用于管理新型号笔记本电脑中的混合显卡的技术(Optimus for NVIDIA, AMD动态切换显卡技术) 以下驱动程序可支持PRIME技术:



$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x7d cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 4 associated providers: 1 name:Intel
Provider 1: id: 0x56 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 1 associated providers: 1 name:radeon

我们可以看到有两块显卡:Intel,也就是集成的图形卡(id为0x7d),以及 Radeon,也就是独立显卡(id为0x56),通常情况下对GPU要求高的程序应该使用独立显卡。我们可以看到,默认情况下被使用的显卡总是Intel集成显卡:

$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile

为了使用独立显卡(此处以radeon为例),你必须先将集成显卡定义为offload provider,因为当前连接到显示器的是集成显卡:

$ xrandr --setprovideroffloadsink 0x56 0x7d


$ DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Gallium 0.4 on AMD TURKS

其他程序仍然会使用更节能的集成显卡。每次X11重启都必须再运行一次 xrandr --setprovideroffloadsink 0x56 0x7d ; 你可以写一个脚本并且在启动桌面环境时自动运行(或者将脚本放在 /etc/X11/xinit/xinitrc.d/目录下).


XRandR 只识别出一个显卡

删除或者移走 /etc/X11/xorg.conf 以及 /etc/X11/xorg.conf.d/ 目录下任何与GPU有关的文件



Black screen with GL-based compositors

Currently there are issues with GL-based compositors and PRIME offloading. While Xrender-based compositors (xcompmgr, xfwm, compton's default backend, cairo-compmgr, and a few others) will work without issue, GL-based compositors (Mutter/muffin, Compiz, compton with GLX backend, Kwin's OpenGL backend, etc) will initially show a black screen, as if there was no compositor running. While you can force an image to appear by resizing the offloaded window, this is not a practical solution as it will not work for things such as full screen Wine applications. This means that desktop environments such as GNOME3 and Cinnamon have issues with using PRIME offloading.

Additionally if you are using an Intel IGP you might be able to fix the GL Compositing issue by running the IGP as UXA instead of SNA, however this may cause issues with the offloading process (ie, xrandr --listproviders may not list the discrete GPU).