Two discrete AMD GPUs - how do I set the default/primary card for Wayland + KDE

Thank you, this seems to have worked! I appreciate it very much =)


I never saw it written anywhere so here’s the exact steps I took, for future people:

List the cards to have a look.

ls /dev/dri
by-path  card0  card1  renderD128  renderD129

Find which device is which card:

ls -l /dev/dri/by-path/
total 0
lrwxrwxrwx 1 root root  8 Jun 27 16:07 pci-0000:04:00.0-card -> ../card1
lrwxrwxrwx 1 root root  8 Jun 27 16:07 pci-0000:04:00.0-platform-simple-framebuffer.0-card -> ../card0
lrwxrwxrwx 1 root root 13 Jun 27 16:07 pci-0000:04:00.0-render -> ../renderD128
lrwxrwxrwx 1 root root  8 Jun 27 16:07 pci-0000:0b:00.0-card -> ../card0
lrwxrwxrwx 1 root root 13 Jun 27 16:07 pci-0000:0b:00.0-render -> ../renderD129

So, pci-0000:04:00.0-card -> ../card1 and pci-0000:0b:00.0-card -> ../card0.

We confirm which one is which with lspci again:

❯ lspci -nn | rg -S vga
04:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev e7)
0b:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6950 XT] [1002:73a5] (rev c0)

Radeon RX 6950 XT0b:00.0card0 needs to be first (why isn’t it already?: A mystery).

So then I added

KWIN_DRM_DEVICES=/dev/dri/card0:/dev/dri/card1

to /etc/environment and now glxinfo | rg "OpenGL vendor|OpenGL renderer" is correct and the wrong gpu fans ain’t spinning after login - happy days.

2 Likes