昨天我决定学习如何使用 Prime 在笔记本电脑中切换低功耗 GPU 和独立 GPU。我首先运行以下命令:xrandr --listproviders
。
我得到了以下结果:
Providers: number : 2
Provider 0: id: 0x75 cap: 0x9, Source Output, Sink Offload crtcs: 3 outputs: 3 associated providers: 1 name:AMD Radeon R6 Graphics @ pci:0000:00:01.0
Provider 1: id: 0x3f cap: 0x4, Source Offload crtcs: 0 outputs: 0 associated providers: 1 name:AMD Radeon (TM) R7 M360 @ pci:0000:03:00.0
然后我运行这个命令来切换到我的独立 GPU:
xrandr --setprovideroffloadsink 1 0
执行该命令后我的 GPU 得到了以下结果DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
:
OpenGL renderer string: AMD Radeon (TM) R7 M360 (AMD ICELAND / DRM 3.18.0 / 4.13.8-041308-generic, LLVM 5.0.0)
但是现在,当我尝试切换回使用低功率的 Radeon R6 时,xrandr --setprovideroffloadsink 0 1
我得到了:
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 34 (RRSetProviderOffloadSink)
Value in failed request: 0x75
Serial number of failed request: 16
Current serial number in output stream: 17
我应该提到我正在使用 Ubuntu 17.10 上的 Xorg 登录 GNOME 会话。我很想能够切换回我的 R6,所以任何帮助我都非常感谢。
答案1
我从未使用过--setprovideroffloadsink
。我只是将其添加DRI_PRIME=1
到我想与我的 dGPU 一起使用的程序中。它一直运行良好。
你可以使用来检查你的 GPU 使用情况,radeontop
看看它是否真的被使用了。虽然我有 Intel+AMD 的混合显卡。但我不知道radeontop
2 个 AMD GPU 会显示什么。