Multiple AMD GPU in desktop - wrong primary GPU

I installed a second AMD video card in my desktop running Fedora 37 (Kinoite). I have it set up as follows:

PCIe Slot 1: RX6900XT → monitor plugged into DP
PCIe Slot 5: RX6400 → no outputs connected

I’m experiencing a couple issues, though I think they’re related.

  1. Although I have my monitor connected to the RX6900XT card, I can see using radeontop and rocm-smi that the RX6400 is doing all the rendering. How do I change this so that the RX6900XT is the primary GPU?

  1. Probably related to this, but sddm does not show up on my monitor. After the Fedora boot splash, it just goes to black screen - no signal detected. I can manually change TTY, login, and startplasma-wayland and it works.
lspci Info
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
00:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
        Kernel driver in use: pcieport
00:01.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
        Kernel driver in use: pcieport
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
00:03.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
        Kernel driver in use: pcieport
00:04.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
00:05.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
00:07.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
00:07.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B]
        Subsystem: Device 7c35:1462
        Kernel driver in use: pcieport
00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B]
        Subsystem: Device 7c35:1462
        Kernel driver in use: pcieport
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 61)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
        Kernel driver in use: piix4_smbus
        Kernel modules: i2c_piix4, sp5100_tco
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 0
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 1
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 2
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 3
        Kernel driver in use: k10temp
        Kernel modules: k10temp
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 4
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 5
00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 6
00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 7
01:00.0 Non-Volatile memory controller: Phison Electronics Corporation E16 PCIe4 NVMe Controller (rev 01)
        Subsystem: Phison Electronics Corporation E16 PCIe4 NVMe Controller
        Kernel driver in use: nvme
        Kernel modules: nvme
20:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse Switch Upstream
        Kernel driver in use: pcieport
21:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
        Kernel driver in use: pcieport
21:01.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
        Kernel driver in use: pcieport
21:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
        Kernel driver in use: pcieport
21:05.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
        Kernel driver in use: pcieport
21:08.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge
        Subsystem: Device 7c35:1462
        Kernel driver in use: pcieport
21:09.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge
        Subsystem: Device 7c35:1462
        Kernel driver in use: pcieport
21:0a.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge
        Subsystem: Device 7c35:1462
        Kernel driver in use: pcieport
22:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
        Subsystem: Samsung Electronics Co Ltd SSD 970 EVO Plus 1TB
        Kernel driver in use: nvme
        Kernel modules: nvme
23:00.0 Non-Volatile memory controller: Phison Electronics Corporation E12 NVMe Controller (rev 01)
        Subsystem: Phison Electronics Corporation E12 NVMe Controller
        Kernel driver in use: nvme
        Kernel modules: nvme
24:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch (rev c7)
        Kernel driver in use: pcieport
25:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
        Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
        Kernel driver in use: pcieport
26:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 24 [Radeon RX 6400/6500 XT/6500M] (rev c7)
        Subsystem: Hewlett-Packard Company Device 8a52
        Kernel driver in use: amdgpu
        Kernel modules: amdgpu
26:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller
        Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
27:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
        Kernel driver in use: r8169
        Kernel modules: r8169
2a:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
2a:00.1 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
        Kernel driver in use: xhci_hcd
2a:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
        Subsystem: Advanced Micro Devices, Inc. [AMD] Device 148c
        Kernel driver in use: xhci_hcd
2b:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51)
        Subsystem: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
        Kernel driver in use: ahci
2c:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51)
        Subsystem: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
        Kernel driver in use: ahci
2d:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch (rev c0)
        Kernel driver in use: pcieport
2e:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
        Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
        Kernel driver in use: pcieport
2f:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] (rev c0)
        Subsystem: XFX Limited Speedster MERC 319 AMD Radeon RX 6900 XT Black
        Kernel driver in use: amdgpu
        Kernel modules: amdgpu
2f:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller
        Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
2f:00.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] Device 73a6
        Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device 73a6
        Kernel driver in use: xhci_hcd
2f:00.3 Serial bus controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 USB
        Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device 0408
        Kernel driver in use: i2c-designware-pci
30:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
31:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
31:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c35
        Kernel driver in use: xhci_hcd
31:00.4 Audio device: Advanced Micro Devices, Inc. [AMD] Starship/Matisse HD Audio Controller
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device cc35
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel

Do you get the same device for:
DRI_PRIME=1 glxinfo | grep Device
DRI_PRIME=0 glxinfo | grep Device

For SDDM can you check:
systemctl status display-manager.service
journalctl -b -u sddm.service

I get the different devices when I run those:

> DRI_PRIME=1 glxinfo | grep Device      
    Device: AMD Radeon RX 6900 XT (navi21, LLVM 15.0.0, DRM 3.48, 6.0.10-300.fc37.x86_64) (0x73bf)
> DRI_PRIME=0 glxinfo | grep Device
    Device: AMD Radeon RX 6400 (navi24, LLVM 15.0.0, DRM 3.48, 6.0.10-300.fc37.x86_64) (0x743f)

As for the SDDM problem, I think I was correct in assuming that the issue is linked. It seems that SDDM is outputting to the default display (RX6400), even though the monitor is plugged into the RX6900 XT.

I forced the output to the correct display by following this guide to set the primary display in /etc/sddm/Xsetup and it worked. Though problem #1 still remained - everything was still being rendered on the RX6400 and the framebuffer was being sent to the RX6900 XT to the monitor.

1 Like

You could install switcheroo-control which would give you the option to choose which card you’re running with.

You could try adding export DRI_PRIME=1 to your users .bashrc file (assuming you’re using bash)

You could try setting it globally by adding DRI_PRIME=1 to /etc/environment

You can also individually modify desktop files to use a certain gpu.

1 Like