使用 X 会话时,设置DRI_PRIME=1
不会从 Intel HD Graphics 520 切换到 AMD Radeon R5 M330,但在 Wayland 上运行良好。
xrandr --listproviders
X 会话的输出:
Providers: number : 1
Provider 0: id: 0x46 cap: 0x9, Source Output, Sink Offload crtcs: 4 outputs: 3 associated providers: 0 name:Intel
radeontop
检测到 AMD GPU,因此lspci | grep AMD
:
01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Sun XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / R7 M520] (rev 83)
它正在使用amdgpu
内核模块。
这件事最近才发生(大约 3 天前),所以我认为是某些东西的更新导致了它。
答案1
为了让您保持理智,我将把 radeon 内核驱动程序列入黑名单,并通过运行确保它不会绑定到 GPU lspci -k -nn -s GPU_SLOT
。
一旦全部设置完毕。强制您的 amdgpu 使用定义的配置,这样您就不会成为自动检测的受害者。
# /etc/X11/xorg.conf.d/20-amdgpu.conf
Section "Module"
Load "dri3"
Load "glamoregl"
EndSection
Section "Device"
Identifier "AMD"
Driver "amdgpu"
Option "Accel" "on"
Option "AccelMethod" "glamor"
Option "TearFree" "auto"
Option "DRI" "3"
EndSection
答案2
按照 ppetraki 在他的回答中提供的链接中的一个答案,我添加到Option "DRI" "3"
,/etc/X11/xorg.conf.d/20-intel.conf
会话重新启动后一切都恢复正常。xrandr --listproviders
仍然没有列出 AMD GPU,但似乎 DRI3 不需要它。
radeontop
通过运行时观察 GPU 活动,我能够确认此修复的效果DRI_PRIME=1 glxgears
。