amdgpu freezes on RX 7800 XT

Hello, has anybody met this, please?

On FreeBSD 14.3-RELEASE-p3 with graphics/drm-61-kmod, the system experiences frequent GPU resets and amdgpu job timeouts on a Radeon RX 7800 XT. The problem occurs during regular desktop usage (sway, Firefox, bunch of terminals).

System:

Code:
% uname -a
FreeBSD chrostik 14.3-RELEASE-p3 FreeBSD 14.3-RELEASE-p3 GENERIC amd64

% pkg info drm-61-kmod
drm-61-kmod-6.1.128.1403000_6
Name           : drm-61-kmod
Version        : 6.1.128.1403000_6
Installed on   : Mon Sep 29 18:03:22 2025 CEST
Origin         : graphics/drm-61-kmod
Architecture   : FreeBSD:14:amd64
Categories     : graphics kld
Maintainer : x11@FreeBSD.org
WWW : https://github.com/freebsd/drm-kmod/
Comment        : DRM drivers modules
Annotations    :
        FreeBSD_version: 1403000
Flat size      : 16.9MiB
Description    :
amdgpu, i915, and radeon DRM drivers modules.
Currently corresponding to Linux 6.1 DRM.
This version is for FreeBSD 14-STABLE 1400508
and above.

% pciconf -lv | grep -B3 -A1 display
vgapci0@pci0:3:0:0:    class=0x030000 rev=0xc8 hdr=0x00 vendor=0x1002 device=0x747e subvendor=0x1da2 subdevice=0xd475
    vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
    device     = 'Navi 32 [Radeon RX 7700 XT / 7800 XT]'
    class      = display
    subclass   = VGA

dmesg:

Code:
[drm ERROR :amdgpu_job_timedout] ring sdma1 timeout, signaled seq=50646, emitted seq=50648
[drm ERROR :amdgpu_job_timedout] Process information: process  pid 0 thread  pid 0
drmn0: GPU reset begin!
drmn0: free PSP TMR buffer
drmn0: MODE1 reset
drmn0: GPU mode1 reset
drmn0: GPU smu mode1 reset
drmn0: GPU reset succeeded, trying to resume
[drm] PCIE GART of 512M enabled (table at 0x0000008000300000).
[drm] VRAM is lost due to GPU reset!
[drm] PSP is resuming...
[drm] reserve 0xa700000 from 0x83e0000000 for PSP TMR
drmn0: RAP: optional rap ta ucode is not available
drmn0: SECUREDISPLAY: securedisplay ta ucode is not available
drmn0: SMU is resuming...
drmn0: smu driver if version = 0x00000032, smu fw if version = 0x0000003f, smu fw program = 0, smu fw version = 0x00503400 (80.52.0)
drmn0: SMU driver if version not matched
drmn0: SMU is resumed successfully!
[drm] DMUB hardware initialized: version=0x07001900
[drm] REG_WAIT timeout 1us * 1000 tries - dcn32_dsc_pg_control line:96
[drm] REG_WAIT timeout 1us * 1000 tries - dcn32_dsc_pg_control line:104
[drm] REG_WAIT timeout 1us * 1000 tries - dcn32_dsc_pg_control line:112
[drm] REG_WAIT timeout 1us * 1000 tries - dcn32_dsc_pg_control line:120
[drm] REG_WAIT timeout 1us * 1000 tries - dcn32_dsc_pg_control line:96
[drm] REG_WAIT timeout 1us * 1000 tries - dcn32_dsc_pg_control line:104
[drm] REG_WAIT timeout 1us * 1000 tries - dcn32_dsc_pg_control line:112
[drm] REG_WAIT timeout 1us * 1000 tries - dcn32_dsc_pg_control line:120
[drm] kiq ring mec 3 pipe 1 q 0
[drm] VCN decode and encode initialized successfully(under DPG Mode).
drmn0: [drm] jpeg_v4_0_hw_initdrmn0: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
drmn0: ring comp_1.0.0 uses VM inv eng 1 on hub 0
drmn0: ring comp_1.1.0 uses VM inv eng 4 on hub 0
drmn0: ring comp_1.2.0 uses VM inv eng 6 on hub 0
drmn0: ring comp_1.3.0 uses VM inv eng 7 on hub 0
drmn0: ring comp_1.0.1 uses VM inv eng 8 on hub 0
drmn0: ring comp_1.1.1 uses VM inv eng 9 on hub 0
drmn0: ring comp_1.2.1 uses VM inv eng 10 on hub 0
drmn0: ring comp_1.3.1 uses VM inv eng 11 on hub 0
drmn0: ring sdma0 uses VM inv eng 12 on hub 0
drmn0: ring sdma1 uses VM inv eng 13 on hub 0
drmn0: ring vcn_unified_0 uses VM inv eng 0 on hub 1
drmn0: ring vcn_unified_1 uses VM inv eng 1 on hub 1
drmn0: ring jpeg_dec uses VM inv eng 4 on hub 1
drmn0: ring mes_kiq_3.1.0 uses VM inv eng 14 on hub 0
drmn0: recover vram bo from shadow start
drmn0: recover vram bo from shadow done
drmn0: GPU reset(1) succeeded!
[drm ERROR :amdgpu_job_timedout] ring sdma1 timeout, signaled seq=50649, emitted seq=50649
[drm ERROR :amdgpu_job_timedout] Process information: process  pid 0 thread  pid 0
drmn0: GPU reset begin!

No overclocking, all updated. Recent UEFI. ASUS ROG STRIX X870 E-GAMING + Ryzen 7900.
 
Are you using ports or packages for graphics/drm-kmod ? Sometimes compiling that port (as opposed to using pre-compiled packages) on your own machine helps, and OP has a pretty capable machine.

Frankly, I'm surprised that a GPU this recent even works under FreeBSD. Well, this GPU's techpowerup.com reference page provides a lot of useful information about the GPU's specs, it's a good starting point for researching: https://www.techpowerup.com/gpu-specs/radeon-rx-7800-xt.c3839
 
Interesting, I have a 7900GRE and running very well.

I just checked, my FreeBSD uptime is more than 3 weeks. I have a single monitor that I have to switch between my desk machine and my laptop, and no crashes at all.
Using the standard driver and drm-kmod kernel installed via pkg. As a new FreeBSD user, I don't know how to use ports.

It could be something related to Wayland. I'm using X with DWM.
 
Interesting, I have a 7900GRE and running very well.

I just checked, my FreeBSD uptime is more than 3 weeks. I have a single monitor that I have to switch between my desk machine and my laptop, and no crashes at all.
Using the standard driver and drm-kmod kernel installed via pkg. As a new FreeBSD user, I don't know how to use ports.

It could be something related to Wayland. I'm using X with DWM.
Thank you for your feedback! Yes, I indeed do think that it might be more Wayland related. Hopefully, 15.0 once release will solve those issues.
 
Hello astyle, yes, it is.

I started using pkg, and the system is running so smooth that I don't wanna to touch on it :D

In my notebook, that I'm using for tests, I will probably use ports.
 
Hello astyle, yes, it is.

I started using pkg, and the system is running so smooth that I don't wanna to touch on it :D

In my notebook, that I'm using for tests, I will probably use ports.
Well, if it works for you right now, great. I actually started out with pkg, and it worked great - for a while. After a time, I wanted to upgrade them - and that's when I discovered that upgrading is a mess with pkg. That prompted me to switch to ports, and that's when I discovered that you can change the defaults on most of them. drm-kmod does not have options that you can change in ports, but with the way it's compiled, the compiled stuff still depends on the kernel version of the underlying FreeBSD installation. A mismatch between the two means the graphics won't work. Grabbing a copy of the Ports tarball, OTOH - that saved me a lot of the headaches associated with pkg.
 
Back
Top