Games no longer accelerate well on my AMD RX 7800 XT

I say “accelerate well”, because I used “amdgpu_top” to see if it was doing anything while I ran these games, and all the metrics were ramped up, as shown in the screenshot

I don’t know when the issue started, because I noticed just today. The last time I had played a graphically demanding game was Indiana Jones on January 2, and I ran it at a locked 60 FPS just fine. Today, I launched Tiny Glade, Planetside 2, and Fallout 4. All games that I usually run above 60 FPS, and they were all stutter fests, averaging at 10 FPS

Is anyone experiencing something similar?

[Edit]: Running it on the GE-Proton9-22 did not help, which pretty much eliminates the possibility of the issue being a Proton bug. I had downloaded that version of GE late last year, and it was working fine, so seeing it have slideshow-like frame rates now means it’s something else.

Another unusual thing is that my CPU core usually all run at above 50% when I run one of these games, but now I’m seeing all below 20% use. But I rarely run a CPU metric like that while gaming, so maybe I’m wrong and these games have never been using the CPU much.

inxi -Fazy
System:
  Kernel: 6.12.4-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 14.2.1
    clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-6.12-x86_64
    root=UUID=3395799b-9170-4a6c-bee8-caf514a7de32 rw rootflags=subvol=@ quiet
    splash resume=UUID=796df7b5-d45c-48a8-8088-faafc4df37a2
    udev.log_priority=3
  Desktop: KDE Plasma v: 6.2.4 tk: Qt v: N/A info: frameworks v: 6.8.0
    wm: kwin_wayland vt: 1 dm: SDDM Distro: Manjaro base: Arch Linux
Machine:
  Type: Desktop System: Gigabyte product: X570 AORUS MASTER v: -CF
    serial: <superuser required>
  Mobo: Gigabyte model: X570 AORUS MASTER v: x.x serial: <superuser required>
    uuid: <superuser required> UEFI: American Megatrends v: F32 date: 01/18/2021
Battery:
  Device-1: hidpp_battery_0 model: Logitech G305 Lightspeed Wireless Gaming
    Mouse serial: <filter> charge: 55% (should be ignored) rechargeable: yes
    status: discharging
CPU:
  Info: model: AMD Ryzen 9 5900X bits: 64 type: MT MCP arch: Zen 3+ gen: 3
    level: v3 note: check built: 2022 process: TSMC n6 (7nm) family: 0x19 (25)
    model-id: 0x21 (33) stepping: 0 microcode: 0xA20102D
  Topology: cpus: 1x dies: 1 clusters: 1 cores: 12 threads: 24 tpc: 2
    smt: enabled cache: L1: 768 KiB desc: d-12x32 KiB; i-12x32 KiB L2: 6 MiB
    desc: 12x512 KiB L3: 64 MiB desc: 2x32 MiB
  Speed (MHz): avg: 3597 min/max: 550/3701 boost: enabled scaling:
    driver: amd-pstate-epp governor: powersave cores: 1: 3597 2: 3597 3: 3597
    4: 3597 5: 3597 6: 3597 7: 3597 8: 3597 9: 3597 10: 3597 11: 3597 12: 3597
    13: 3597 14: 3597 15: 3597 16: 3597 17: 3597 18: 3597 19: 3597 20: 3597
    21: 3597 22: 3597 23: 3597 24: 3597 bogomips: 177694
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow mitigation: Safe RET
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines; IBPB: conditional; IBRS_FW;
    STIBP: always-on; RSB filling; PBRSB-eIBRS: Not affected; BHI: Not
    affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Navi 32 [Radeon RX 7700 XT / 7800
    XT] vendor: Sapphire driver: amdgpu v: kernel arch: RDNA-3 code: Navi-3x
    process: TSMC n5 (5nm) built: 2022+ pcie: gen: 4 speed: 16 GT/s lanes: 16
    ports: active: DP-1 empty: DP-2, HDMI-A-1, HDMI-A-2, Writeback-1
    bus-ID: 0d:00.0 chip-ID: 1002:747e class-ID: 0300
  Display: wayland server: X.org v: 1.21.1.14 with: Xwayland v: 24.1.4
    compositor: kwin_wayland driver: X: loaded: amdgpu
    unloaded: modesetting,radeon alternate: fbdev,vesa dri: radeonsi
    gpu: amdgpu display-ID: 0
  Monitor-1: DP-1 model: LG (GoldStar) Ultra HD serial: <filter> built: 2018
    res: mode: 3840x2160 hz: 60 scale: 120% (1.2) to: 3200x1800 dpi: 163
    gamma: 1.2 size: 600x340mm (23.62x13.39") diag: 690mm (27.2") ratio: 16:9
    modes: max: 3840x2160 min: 640x480
  API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
    device: 1 drv: swrast gbm: drv: kms_swrast surfaceless: drv: radeonsi
    wayland: drv: radeonsi x11: drv: radeonsi
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 24.2.8-arch1.1
    glx-v: 1.4 direct-render: yes renderer: AMD Radeon RX 7800 XT (radeonsi
    navi32 LLVM 18.1.8 DRM 3.59 6.12.4-1-MANJARO) device-ID: 1002:747e
    memory: 15.62 GiB unified: no display-ID: :1.0
  API: Vulkan v: 1.4.303 layers: 5 device: 0 type: discrete-gpu name: AMD
    Radeon RX 7800 XT (RADV NAVI32) driver: N/A device-ID: 1002:747e
    surfaces: xcb,xlib,wayland
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor gpu: amdgpu_top,nvidia-smi
    wl: wayland-info x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: Advanced Micro Devices [AMD/ATI] Navi 31 HDMI/DP Audio
    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
    bus-ID: 0d:00.1 chip-ID: 1002:ab30 class-ID: 0403
  Device-2: Advanced Micro Devices [AMD] Starship/Matisse HD Audio
    vendor: Gigabyte driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s
    lanes: 16 bus-ID: 0f:00.4 chip-ID: 1022:1487 class-ID: 0403
  Device-3: Razer USA USB Sound Card driver: hid-generic,snd-usb-audio,usbhid
    type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-2:3
    chip-ID: 1532:0529 class-ID: 0300 serial: <filter>
  API: ALSA v: k6.12.4-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: JACK v: 1.9.22 status: off tools: N/A
  Server-3: PipeWire v: 1.2.7 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel pcie: gen: 2
    speed: 5 GT/s lanes: 1 bus-ID: 05:00.0 chip-ID: 8086:2723 class-ID: 0280
  IF: wlp5s0 state: down mac: <filter>
  Device-2: Intel I211 Gigabit Network vendor: Gigabyte driver: igb v: kernel
    pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: e000 bus-ID: 06:00.0
    chip-ID: 8086:1539 class-ID: 0200
  IF: enp6s0 state: down mac: <filter>
  Device-3: Realtek RTL8125 2.5GbE vendor: Gigabyte driver: r8169 v: kernel
    pcie: gen: 2 speed: 5 GT/s lanes: 1 port: d000 bus-ID: 07:00.0
    chip-ID: 10ec:8125 class-ID: 0200
  IF: enp7s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  IF-ID-1: br-970b558aea1c state: down mac: <filter>
  IF-ID-2: docker0 state: down mac: <filter>
  Info: services: NetworkManager,sshd
Bluetooth:
  Device-1: Intel AX200 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0
    speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-5:5 chip-ID: 8087:0029
    class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 0 state: up address: see --recommends
Drives:
  Local Storage: total: 3.64 TiB used: 2.29 TiB (62.8%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:2 vendor: Seagate model: WDS200T1X0E-00AFY0
    size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: 614600WD temp: 57.9 C
    scheme: GPT
  ID-2: /dev/nvme1n1 maj-min: 259:0 vendor: Seagate model: WDS200T1X0E-00AFY0
    size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: 613000WD temp: 55.9 C
    scheme: GPT
Partition:
  ID-1: / raw-size: 300 GiB size: 300 GiB (100.00%) used: 134.04 GiB (44.7%)
    fs: btrfs dev: /dev/nvme0n1p1 maj-min: 259:3
  ID-2: /boot/efi raw-size: 512 MiB size: 511 MiB (99.80%)
    used: 584 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p4 maj-min: 259:6
  ID-3: /home raw-size: 1.49 TiB size: 1.49 TiB (100.00%)
    used: 586.8 GiB (38.3%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:4
  ID-4: /var/log raw-size: 300 GiB size: 300 GiB (100.00%)
    used: 134.04 GiB (44.7%) fs: btrfs dev: /dev/nvme0n1p1 maj-min: 259:3
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: partition size: 32 GiB used: 0 KiB (0.0%) priority: -2
    dev: /dev/nvme0n1p3 maj-min: 259:5
Sensors:
  System Temperatures: cpu: 45.5 C mobo: N/A gpu: amdgpu temp: 51.0 C
    mem: 68.0 C
  Fan Speeds (rpm): N/A gpu: amdgpu fan: 0
Info:
  Memory: total: 96 GiB note: est. available: 94.24 GiB used: 11.3 GiB (12.0%)
  Processes: 575 Power: uptime: 1h 5m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 37.68 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 256 default: graphical
    tool: systemctl
  Packages: 1999 pm: pacman pkgs: 1967 libs: 505 tools: pamac pm: flatpak
    pkgs: 20 pm: snap pkgs: 12 Compilers: clang: 18.1.8 gcc: 14.2.1 alt: 13
    Shell: fish v: 3.7.1 default: Bash v: 5.2.37 running-in: wezterm-gui
    inxi: 3.3.37

Rebooting did not fix anything

Your gpu is definitely used in this game - graphics pipe is used in 100%, but you have very low clocks like on POWER_SAVING profile. Which power profile you use? Based on screens and my experience I would say this is POWER_SAVING profile. Try to switch to 3D_FULL_SCREEN - that will set much higher limits, you can do in in many ways, I use corectrl for it, but you can easily do it manually by writing to correct file.

Thank you, that made so much sense!

I fixed it by changing the Performace power profile from the KDE settings. I also turned off going on low power after a while, because I had noticed performance degrade after 30 minutes in 3D games, and did not realize it was KDE not detecting that I’m not idle, I’m playing a game.

You may also want to look at changing the amd-pstate settings.

I noticed much better cpu performance scaling after I added the following three settings to the boot parameters:

amd_pstate=passive initcall_blacklist=acpi_cpufreq_init amd_prefcore=enable

The cores on my 3700x idle lower and boost higher than without.

I doubt this is needed on any of the modern kernels that support amd_pstate.

This is the default.

The default mode is amd_pstate=active on devices that are supported.
This should result in amd_pstate_epp.

See more about it here:
https://wiki.archlinux.org/title/CPU_frequency_scaling#amd_pstate

1 Like

Well, I was noticing that my cpu speeds used to look like @alexleduc’s:

And now they look like:

    driver: amd-pstate governor: schedutil cores: 1: 550 2: 550 3: 550 4: 550
    5: 550 6: 550 7: 550 8: 550 9: 550 10: 550 11: 550 12: 550 13: 550 14: 550
    15: 550 16: 550 bogomips: 115251

I wasnt saying you should not use passive, or that you didnt configure amd_pstate_epp.
Just defining the options and pointing out the other 2 should not be needed.
Or are you saying you have tested and somehow amd_pstate=passive does not work on its own for you?

PS

For comparison, here is mine under no particular stress

(plugged)

Speed (MHz): avg: 2394 min/max: 400/4289 boost: enabled scaling:
    driver: amd-pstate-epp governor: performance cores: 1: 2394 2: 2394 3: 2394
    4: 2394 5: 2394 6: 2394 7: 2394 8: 2394 9: 2394 10: 2394 11: 2394 12: 2394

(unplugged)

Speed (MHz): avg: 400 min/max: 400/4289 boost: enabled scaling:
    driver: amd-pstate-epp governor: powersave cores: 1: 400 2: 400 3: 400
    4: 400 5: 400 6: 400 7: 400 8: 400 9: 400 10: 400 11: 400 12: 400

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.