Xセッションを使用する場合、DRI_PRIME=1
を設定してもIntel HD Graphics 520からAMD Radeon R5 M330に切り替わりませんが、Waylandでは正常に機能します。
Xセッションでのxrandr --listproviders
の出力:
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日前)に起こったので、何かの更新が原因だと思います。
彼の回答で提供されたリンクppetrakiの回答の1つに従って、Option "DRI" "3"
を/etc/X11/xorg.conf.d/20-intel.conf
に追加しました。セッションを再開した後、すべてが再び機能していました。 xrandr --listproviders
はまだAMD GPUをリストしていませんが、DRI3はそれを必要としないようです。
DRI_PRIME=1 glxgears
の実行中にradeontop
を介してGPUアクティビティを監視することで、この修正の効果を確認できました。
正気を保つために、私はradeonカーネルドライバーをブラックリストに登録し、lspci -k -nn -s GPU_SLOT
を実行してGPUにバインドされていないことを確認します。
これで準備は完了です。自動検出の犠牲にならないように、定義された構成を使用するように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