Apex Legends (1172470) - GPU hang ([gfxhub] page fault / ring gfx_0.0.0 timeout) on 7900 XTX
Description
I have been consistently encountering full GPU hangs and desktop environment/X11 resets when running Apex Legends.
I also experience massive stuttering in certain games (including Apex). I believe the stuttering is due to drm/amd#1500, as the udev rules mentioned in the comments have helped reduce the severity.
System information
Original:~ inxi -GSC -xx
~ inxi -GSC -xx
System:
Host: ionian Kernel: 6.4.3-arch1-1 arch: x86_64 bits: 64 compiler: gcc
v: 13.1.1 Desktop: i3 v: 4.22 dm: LightDM Distro: EndeavourOS
base: Arch Linux
CPU:
Info: 8-core model: AMD Ryzen 7 3800X bits: 64 type: MT MCP arch: Zen 2
rev: 0 cache: L1: 512 KiB L2: 4 MiB L3: 32 MiB
Speed (MHz): avg: 3881 high: 3900 min/max: 2200/4559 boost: enabled cores:
1: 3599 2: 3900 3: 3900 4: 3900 5: 3900 6: 3900 7: 3900 8: 3900 9: 3900
10: 3900 11: 3900 12: 3900 13: 3900 14: 3900 15: 3900 16: 3900
bogomips: 124849
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
Device-1: AMD Navi 31 [Radeon RX 7900 XT/7900 XTX] vendor: Tul / PowerColor
driver: amdgpu v: kernel arch: RDNA-3 pcie: speed: 16 GT/s lanes: 16 ports:
active: DP-2,DP-3,HDMI-A-1 empty: DP-1 bus-ID: 2f:00.0 chip-ID: 1002:744c
Device-2: Logitech StreamCam
driver: hid-generic,snd-usb-audio,usbhid,uvcvideo type: USB rev: 2.1
speed: 480 Mb/s lanes: 1 bus-ID: 7-3.3:5 chip-ID: 046d:0893
Display: x11 server: X.Org v: 21.1.8 driver: X: loaded: amdgpu
unloaded: modesetting,radeon alternate: fbdev,vesa dri: radeonsi gpu: amdgpu
display-ID: :0 screens: 1
Screen-1: 0 s-res: 5560x1920 s-dpi: 96
Monitor-1: DP-2 mapped: DisplayPort-1 pos: primary,middle-c
model: Samsung LC32G5xT res: 2560x1440 dpi: 93 diag: 806mm (31.7")
Monitor-2: DP-3 mapped: DisplayPort-2 pos: bottom-r model: Asus VS247
res: 1920x1080 dpi: 94 diag: 598mm (23.5")
Monitor-3: HDMI-A-1 mapped: HDMI-A-0 pos: top-left model: Asus VS247
res: 1080x1920 dpi: 94 diag: 598mm (23.5")
API: OpenGL v: 4.6 Mesa 23.2.0-devel (git-0ffcfdba9e) renderer: AMD
Radeon RX 7900 XTX (gfx1100 LLVM 17.0.0 DRM 3.52 6.4.3-arch1-1)
direct-render: Yes
Most recent:~ inxi -GSC -xx
~ inxi -GSC -xx
System:
Host: ionian Kernel: 6.5.9-arch2-1 arch: x86_64 bits: 64 compiler: gcc
v: 13.2.1 Desktop: i3 v: 4.23 dm: LightDM Distro: EndeavourOS
base: Arch Linux
CPU:
Info: 8-core model: AMD Ryzen 7 3800X bits: 64 type: MT MCP arch: Zen 2
rev: 0 cache: L1: 512 KiB L2: 4 MiB L3: 32 MiB
Speed (MHz): avg: 3419 high: 4517 min/max: 2200/4559 boost: enabled cores:
1: 3372 2: 4502 3: 3203 4: 3069 5: 3599 6: 3569 7: 2200 8: 2490 9: 4424
10: 4517 11: 2200 12: 3006 13: 3753 14: 3598 15: 3598 16: 3607
bogomips: 124844
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
Device-1: AMD Navi 31 [Radeon RX 7900 XT/7900 XTX] vendor: Tul / PowerColor
driver: amdgpu v: kernel arch: RDNA-3 pcie: speed: 16 GT/s lanes: 16 ports:
active: DP-2,DP-3,HDMI-A-1 empty: DP-1 bus-ID: 2f:00.0 chip-ID: 1002:744c
Device-2: Logitech StreamCam
driver: hid-generic,snd-usb-audio,usbhid,uvcvideo type: USB rev: 3.2
speed: 5 Gb/s lanes: 1 bus-ID: 8-4.1:4 chip-ID: 046d:0893
Display: x11 server: X.Org v: 21.1.9 compositor: Picom v: git-b700a
driver: X: loaded: amdgpu unloaded: modesetting,radeon alternate: fbdev,vesa
dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
Screen-1: 0 s-res: 5560x1920 s-dpi: 96
Monitor-1: DP-2 mapped: DisplayPort-1 pos: primary,middle-c
model: Samsung LC32G5xT res: 2560x1440 dpi: 93 diag: 806mm (31.7")
Monitor-2: DP-3 mapped: DisplayPort-2 pos: bottom-r model: Asus VS247
res: 1920x1080 dpi: 94 diag: 598mm (23.5")
Monitor-3: HDMI-A-1 mapped: HDMI-A-0 pos: top-left model: Asus VS247
res: 1080x1920 dpi: 94 diag: 598mm (23.5")
API: EGL v: 1.5 platforms: device: 0 drv: radeonsi device: 1 drv: swrast
surfaceless: drv: radeonsi x11: drv: radeonsi inactive: gbm,wayland
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd v: N/A glx-v: 1.4
direct-render: yes renderer: AMD Radeon RX 7900 XTX (radeonsi navi31 LLVM
18.0.0 DRM 3.54 6.5.9-arch2-1) device-ID: 1002:744c
API: Vulkan v: 1.3.269 surfaces: xcb,xlib device: 0 type: discrete-gpu
driver: amd device-ID: 1002:744c
Most recent:~ glxinfo -B
~ glxinfo -B
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: AMD (0x1002)
Device: AMD Radeon RX 7900 XTX (radeonsi, navi31, LLVM 18.0.0, DRM 3.54, 6.5.9-arch2-1) (0x744c)
Version: 24.0.0
Accelerated: yes
Video memory: 24576MB
Unified memory: no
Preferred profile: core (0x1)
Max core profile version: 4.6
Max compat profile version: 4.6
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
VBO free memory - total: 23845 MB, largest block: 23845 MB
VBO free aux. memory - total: 32052 MB, largest block: 32052 MB
Texture free memory - total: 23845 MB, largest block: 23845 MB
Texture free aux. memory - total: 32052 MB, largest block: 32052 MB
Renderbuffer free memory - total: 23845 MB, largest block: 23845 MB
Renderbuffer free aux. memory - total: 32052 MB, largest block: 32052 MB
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 24576 MB
Total available memory: 56686 MB
Currently available dedicated video memory: 23845 MB
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon RX 7900 XTX (radeonsi, navi31, LLVM 18.0.0, DRM 3.54, 6.5.9-arch2-1)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 24.0.0-devel (git-6a31c7a841)
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.0.0-devel (git-6a31c7a841)
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 24.0.0-devel (git-6a31c7a841)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
All attached logs are from running the game via Steam using Proton Experimental; I am able to replicate this issue against GE and other stable versions of Proton.
I have further tested against every available stable mesa version 23.0.3-23.1.3; I am able to replicate this issue reliably on all versions tested.
Reproduction
Most reliable method to reproduce:
- Queue into a game on the Broken Moon map
- Launch from dropship, aim for ground
I usually crash by the time I hit the ground or soon after. Seems more frequent on the north side of the map.
More context:
- The hang can happen at any time, but usually happens soon off drop
- I can reproduce almost every time on "Broken Moon" - other maps are less reliable
- I usually see a full desktop hang, which culminates in a full DE reset after ~10-15 seconds
- Rarely (~5% of the time), the hang is soft recovered with no crash after ~10-15 seconds
- I have also experienced full hangs only remedied with a hard restart or pkill from another tty
Log Files
- Kernel 6.1.39-1-lts: linux-lts.log
- kernel 6.4.3: soft_recovery_then_gpu_reset.log gpu_reset.log dmesg.log
- kernel 6.5.9: gpu_crash.log
Related issues
I suspect this issue is directly related to #9341, #8227
I believe I am also impacted by #9189
As stated above, I am also impacted by drm/amd#1500
- I have had to create udev rules as stated in the comment here in order to reduce stuttering to playable levels