Dedicated AMD GPU not being detected

Hello there, I’ve recently started using NixOS as my daily driver, but I’ve noticed a problem – my games can’t use my dedicated AMD GPU! This doesn’t happen on any other distribution. I’m using Prism Launcher to launch Minecraft (yes, I am telling it to use the dedicated graphics card) but MangoHUD tells me that it uses LLVMPipe instead. I have tried enabling OpenGL in my configuration, but that does nothing. My integrated graphics card, however, runs fine and is properly running Hyprland.

My GPU is a RX6500M.

Output of lspci -nnk

00:00.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne Root Complex [1022:1630]
	Subsystem: Hewlett-Packard Company Device [103c:8a3f]
00:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne IOMMU [1022:1631]
	Subsystem: Hewlett-Packard Company Device [103c:8a3f]
00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge [1022:1632]
00:01.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge [1022:1633]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Device [1022:1453]
	Kernel driver in use: pcieport
00:01.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge [1022:1634]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Device [1022:1453]
	Kernel driver in use: pcieport
00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge [1022:1632]
00:02.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge [1022:1634]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Device [1022:1453]
	Kernel driver in use: pcieport
00:02.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge [1022:1634]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Device [1022:1453]
	Kernel driver in use: pcieport
00:02.4 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge [1022:1634]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Device [1022:1453]
	Kernel driver in use: pcieport
00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge [1022:1632]
00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus [1022:1635]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus [1022:1635]
	Kernel driver in use: pcieport
00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 51)
	Subsystem: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b]
	Kernel driver in use: piix4_smbus
	Kernel modules: i2c_piix4, sp5100_tco
00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51)
	Subsystem: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e]
00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 0 [1022:166a]
00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 1 [1022:166b]
00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 2 [1022:166c]
00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 3 [1022:166d]
	Kernel driver in use: k10temp
	Kernel modules: k10temp
00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 4 [1022:166e]
00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 5 [1022:166f]
00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 6 [1022:1670]
00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 7 [1022:1671]
01:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch [1002:1478] (rev c3)
	DeviceName: 0x10 Graphics Device
	Kernel driver in use: pcieport
02:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch [1002:1479]
	Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch [1002:1479]
	Kernel driver in use: pcieport
03:00.0 Display controller [0380]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 24 [Radeon RX 6400/6500 XT/6500M] [1002:743f] (rev c3)
	Subsystem: Hewlett-Packard Company Device [103c:8a3f]
	Kernel driver in use: amdgpu
	Kernel modules: amdgpu
03:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller [1002:ab28]
	Subsystem: Hewlett-Packard Company Device [103c:8a3f]
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
04:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 16)
	DeviceName: OnBoard Enthernets
	Subsystem: Hewlett-Packard Company Device [103c:8a3f]
	Kernel driver in use: r8169
	Kernel modules: r8169
05:00.0 Network controller [0280]: MEDIATEK Corp. MT7922 802.11ax PCI Express Wireless Network Adapter [14c3:0616]
	DeviceName: Tequini MediaTek Wi-Fi 6 MT7922 + BT5.3
	Subsystem: Foxconn International, Inc. Device [105b:e0cb]
	Kernel driver in use: mt7921e
	Kernel modules: mt7921e
06:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device [10ec:5228] (rev 01)
	DeviceName: Realtek PCIE CardReader
	Subsystem: Hewlett-Packard Company Device [103c:8a3f]
	Kernel driver in use: rtsx_pci
	Kernel modules: rtsx_pci
07:00.0 Non-Volatile memory controller [0108]: SK hynix Platinum P41/PC801 NVMe Solid State Drive [1c5c:1959]
	Subsystem: SK hynix Platinum P41/PC801 NVMe Solid State Drive [1c5c:1959]
	Kernel driver in use: nvme
	Kernel modules: nvme
08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1638] (rev c6)
	DeviceName:  Onboard IGD
	Subsystem: Hewlett-Packard Company Device [103c:8a3f]
	Kernel driver in use: amdgpu
	Kernel modules: amdgpu
08:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir Radeon High Definition Audio Controller [1002:1637]
	Subsystem: Hewlett-Packard Company Device [103c:8a3f]
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
08:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) Platform Security Processor [1022:15df]
	Subsystem: Hewlett-Packard Company Device [103c:8a3f]
	Kernel driver in use: ccp
	Kernel modules: ccp
08:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1 [1022:1639]
	Subsystem: Hewlett-Packard Company Device [103c:8a3f]
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci
08:00.4 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1 [1022:1639]
	Subsystem: Hewlett-Packard Company Device [103c:8a3f]
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci
08:00.5 Multimedia controller [0480]: Advanced Micro Devices, Inc. [AMD] ACP/ACP3X/ACP6x Audio Coprocessor [1022:15e2] (rev 01)
	Subsystem: Hewlett-Packard Company Device [103c:8a3f]
	Kernel driver in use: snd_rn_pci_acp3x
	Kernel modules: snd_pci_acp3x, snd_rn_pci_acp3x, snd_pci_acp5x, snd_pci_acp6x, snd_acp_pci, snd_rpl_pci_acp6x, snd_pci_ps, snd_sof_amd_renoir, snd_sof_amd_rembrandt, snd_sof_amd_vangogh
08:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller [1022:15e3]
	Subsystem: Hewlett-Packard Company Device [103c:8a3f]
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel

I am using NixOS 24.05 with the latest Linux kernel, and I am using NixOS unstable.

Well, it’s definitely being detected. The question is why isn’t it being used. In the past I’ve had no trouble plugging a display into my integrated graphics and getting games to run on the dedicated GPU.

Even when setting DRI_PRIME, games refuse to use my dGPU, opting for LLVMPipe instead.

My dedicated GPU is /dev/dri/card0 whilst my integrated GPU is /dev/dri/card1 , which is weird as it is generally vice versa on other distributions. Perhaps this is what’s causing the problem?

I ran glxgears and got this error at the start:

DRI3 not available
failed to load driver: zink

What does this imply?


amdgpu_top shows that my GPU is in fact, at 0% GPU usage.

Upon further inspection, Xonotic manages to run the game completely fine when I provide it with DRI_PRIME=1, whilst Minecraft does not. When I set SDL_VIDEODRIVER to use X11, it indeed defaults to LLVMPipe. This means that XWayland is not able to use my dGPU for some reason.

I fixed this! I had the following line in my /etc/nixos/configuration.nix:

services.xserver.enable = true;

I simply removed it, re-built my system and now Xwayland apps can use my dedicated GPU!

My system got upgraded and the issue is magically back yet again. No, Xorg is not enabled.

hello, have you perhaps find a solution to this? I think i have the same problem.
Would really appreciate it if you share the solution

Thank you

I think you can rebuild Mesa such that software rendering doesn’t work. That way you know there’s an issue than it just silently happening.

There’s a way of choosing your GPU with some environment variable I think, maybe it’s just choosing your iGPU incidentally.