Gpu slows down after sleeping

,

Hello there! 3 or 4 month ago I encountered a loss of GPU performance after sleeping. I thought that updates will fix it but after waiting for a while I decided to fix it myself. Unfortunately, I am not good at Linux, the only thing I could do was change several kernels and change the driver for the GPU. I installed kernels 5.15-lts, 6.1-lts, 6.5, zen-kernel and xanmod and then installed AMD proprietary driver but I got the same gpu performance after sleep.

There is the sudo inxi --admin --verbosity=7 --filter --no-host --width output:

  Kernel: 6.4.12-zen2-xanmod1-1 arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
    clocksource: hpet available: acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-xanmod
    root=UUID=9f520fb1-282a-4902-bd89-70d8d2fef54b rw rootflags=subvol=@ quiet
    udev.log_priority=3 zram.num_devices=1
  Desktop: KDE Plasma v: 5.27.8 tk: Qt v: 5.15.10 info: latte-dock
    wm: kwin_x11 dm: SDDM Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Laptop System: LENOVO product: 82KC v: Lenovo V14 G2 ALC
    serial: <filter> Chassis: type: 10 v: Lenovo V14 G2 ALC serial: <filter>
  Mobo: LENOVO model: LNVNB161216 v: NO DPK serial: <filter> UEFI: LENOVO
    v: GLCN46WW date: 03/23/2022
Battery:
  ID-1: BAT0 charge: 34.9 Wh (97.2%) condition: 35.9/38.0 Wh (94.5%) volts: 8.5
    min: 7.7 model: SMP L20M2PF8 type: Li-poly serial: <filter>
    status: not charging cycles: 268
Memory:
  System RAM: total: 12 GiB available: 10.57 GiB used: 4.07 GiB (38.5%)
  Array-1: capacity: 16 GiB slots: 2 modules: 2 EC: None
    max-module-size: 8 GiB note: est.
  Device-1: DIMM 0 type: DDR4 detail: synchronous unbuffered (unregistered)
    size: 8 GiB speed: 3200 MT/s volts: curr: 1.2 min: 1.2 max: 1.2 width (bits):
    data: 64 total: 64 manufacturer: Hynix part-no: HMA81GS6DJR8N-XN
    serial: <filter>
  Device-2: DIMM 0 type: DDR4 detail: synchronous unbuffered (unregistered)
    size: 4 GiB speed: 3200 MT/s volts: curr: 1.2 min: 1.2 max: 1.2 width (bits):
    data: 64 total: 64 manufacturer: Hynix part-no: HMA851S6DJR6N-XN
    serial: N/A
CPU:
  Info: model: AMD Ryzen 5 5500U with Radeon Graphics socket: FP6 bits: 64
    type: MT MCP arch: Zen 2 gen: 3 level: v3 note: check built: 2020-22
    process: TSMC n7 (7nm) family: 0x17 (23) model-id: 0x68 (104) stepping: 1
    microcode: 0x8608103
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
    L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB desc: 6x512 KiB L3: 8 MiB
    desc: 2x4 MiB
  Speed (MHz): avg: 2100 min/max: 1400/4056 boost: enabled
    base/boost: 2100/4050 scaling: driver: acpi-cpufreq governor: performance
    volts: 1.2 V ext-clock: 100 MHz cores: 1: 2100 2: 2100 3: 2100 4: 2100
    5: 2100 6: 2100 7: 2100 8: 2100 9: 2100 10: 2100 11: 2100 12: 2100
    bogomips: 50305
  Flags: 3dnowprefetch abm adx aes aperfmperf apic arat avic avx avx2 bmi1
    bmi2 bpext cat_l3 cdp_l3 clflush clflushopt clwb clzero cmov cmp_legacy
    constant_tsc cpb cppc cpuid cqm cqm_llc cqm_mbm_local cqm_mbm_total
    cqm_occup_llc cr8_legacy cx16 cx8 de decodeassists extapic extd_apicid
    f16c flushbyasid fma fpu fsgsbase fxsr fxsr_opt ht hw_pstate ibpb ibrs ibs
    irperf lahf_lm lbrv lm mba mca mce misalignsse mmx mmxext monitor movbe
    msr mtrr mwaitx nonstop_tsc nopl npt nrip_save nx osvw overflow_recov pae
    pat pausefilter pclmulqdq pdpe1gb perfctr_core perfctr_llc perfctr_nb
    pfthreshold pge pni popcnt pse pse36 rapl rdpid rdpru rdrand rdseed rdt_a
    rdtscp rep_good sep sha_ni skinit smap smca smep ssbd sse sse2 sse4_1
    sse4_2 sse4a ssse3 stibp succor svm svm_lock syscall tce topoext tsc
    tsc_scale umip v_spec_ctrl v_vmsave_vmload vgif vmcb_clean vme vmmcall
    wbnoinvd wdt xgetbv1 xsave xsavec xsaveerptr xsaveopt
  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: retbleed status: Vulnerable
  Type: spec_rstack_overflow status: Vulnerable
  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 status: Vulnerable, IBPB: conditional, STIBP:
    conditional, RSB filling, PBRSB-eIBRS: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: AMD Lucienne vendor: Lenovo driver: amdgpu v: kernel arch: GCN-5
    code: Vega process: GF 14nm built: 2017-20 pcie: gen: 3 speed: 8 GT/s
    lanes: 16 link-max: gen: 4 speed: 16 GT/s ports: active: eDP-1
    empty: HDMI-A-1 bus-ID: 04:00.0 chip-ID: 1002:164c class-ID: 0300
    temp: 37.0 C
  Device-2: Syntek Integrated Camera driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-3:2 chip-ID: 174f:2459
    class-ID: fe01 serial: <filter>
  Display: server: X.Org v: 21.1.8 with: Xwayland v: 23.2.1
    compositor: kwin_x11 driver: X: loaded: amdgpu unloaded: modesetting
    alternate: fbdev,vesa dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 108 s-size: 451x254mm (17.76x10.00")
    s-diag: 518mm (20.38")
  Monitor-1: eDP-1 mapped: eDP model: ChiMei InnoLux 0x14e5 built: 2018
    res: 1920x1080 hz: 60 dpi: 158 gamma: 1.2 size: 309x173mm (12.17x6.81")
    diag: 354mm (13.9") ratio: 16:9 modes: max: 1920x1080 min: 640x480
  API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
    device: 1 drv: swrast gbm: drv: radeonsi surfaceless: drv: radeonsi x11:
    drv: radeonsi inactive: wayland
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 23.1.8-manjaro1.1
    glx-v: 1.4 direct-render: yes renderer: AMD Radeon Graphics (renoir LLVM
    16.0.6 DRM 3.52 6.4.12-zen2-xanmod1-1) device-ID: 1002:164c
    memory: 1000 MiB unified: no
  API: Vulkan v: 1.3.264 layers: 7 device: 0 type: integrated-gpu name: AMD
    Radeon Graphics (RADV RENOIR) driver: mesa radv v: 23.1.8-manjaro1.1
    device-ID: 1002:164c surfaces: xcb,xlib
Audio:
  Device-1: AMD Renoir Radeon High Definition Audio vendor: Lenovo
    driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16
    link-max: gen: 4 speed: 16 GT/s bus-ID: 04:00.1 chip-ID: 1002:1637
    class-ID: 0403
  Device-2: AMD ACP/ACP3X/ACP6x Audio Coprocessor vendor: Lenovo driver: N/A
    alternate: 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 pcie: gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4
    speed: 16 GT/s bus-ID: 04:00.5 chip-ID: 1022:15e2 class-ID: 0480
  Device-3: AMD Family 17h/19h HD Audio vendor: Lenovo driver: snd_hda_intel
    v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4
    speed: 16 GT/s bus-ID: 04:00.6 chip-ID: 1022:15e3 class-ID: 0403
  API: ALSA v: k6.4.12-zen2-xanmod1-1 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: 0.3.80 status: n/a (root, process)
    with: pipewire-media-session status: active tools: pw-cli
  Server-4: PulseAudio v: 16.1 status: active (root, process)
    with: pulseaudio-alsa type: plugin tools: pacat,pactl
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: Lenovo driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1
    port: 2000 bus-ID: 01:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp1s0 state: down mac: <filter>
  Device-2: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter
    vendor: Lenovo driver: ath10k_pci v: kernel pcie: gen: 1 speed: 2.5 GT/s
    lanes: 1 bus-ID: 02:00.0 chip-ID: 168c:003e class-ID: 0280 temp: 45.0 C
  IF: wlp2s0 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: noprefixroute scope: link
  WAN IP: <filter>
Bluetooth:
  Device-1: Qualcomm Atheros QCA61x4 Bluetooth 4.0 driver: btusb v: 0.8
    type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-4:2
    chip-ID: 0cf3:e300 class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 4 state: up address: see --recommends
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 685.61 GiB used: 302.79 GiB (44.2%)
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Lenovo
    model: UMIS RPJTJ256MEE1OWX size: 238.47 GiB block-size: physical: 512 B
    logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 2.1C0628 temp: 32.9 C scheme: GPT
  SMART: yes health: PASSED on: 141d 21h cycles: 1,939
    read-units: 66,521,970 [34.0 TB] written-units: 17,037,065 [8.72 TB]
  ID-2: /dev/sda maj-min: 8:0 vendor: Kingston model: SA400S37480G
    family: Driven SSDs size: 447.13 GiB block-size: physical: 512 B
    logical: 512 B sata: 3.2 speed: 6.0 Gb/s tech: SSD serial: <filter>
    fw-rev: 0102 temp: 28 C scheme: GPT
  SMART: yes state: enabled health: PASSED on: 33d 0h cycles: 1214
    read: 3328 GiB written: 4048 GiB
  Message: No optical or floppy data found.
Partition:
  ID-1: / raw-size: 132.36 GiB size: 132.36 GiB (100.00%)
    used: 123.9 GiB (93.6%) fs: btrfs block-size: 4096 B dev: /dev/nvme0n1p5
    maj-min: 259:5 label: Manjaro uuid: 9f520fb1-282a-4902-bd89-70d8d2fef54b
  ID-2: /boot/efi raw-size: 400.3 MiB size: 399.5 MiB (99.80%)
    used: 620 KiB (0.2%) fs: vfat block-size: 512 B dev: /dev/nvme0n1p6
    maj-min: 259:6 label: NO_LABEL uuid: 67E3-21FC
  ID-3: /home raw-size: 132.36 GiB size: 132.36 GiB (100.00%)
    used: 123.9 GiB (93.6%) fs: btrfs block-size: 4096 B dev: /dev/nvme0n1p5
    maj-min: 259:5 label: Manjaro uuid: 9f520fb1-282a-4902-bd89-70d8d2fef54b
  ID-4: /home/<filter>/Ssd raw-size: 223.56 GiB size: 223.56 GiB (100.00%)
    used: 178.88 GiB (80.0%) fs: btrfs block-size: 4096 B dev: /dev/sda1
    maj-min: 8:1 label: Media uuid: 0359f6de-9558-4144-b315-e97788721267
  ID-5: /var/cache raw-size: 132.36 GiB size: 132.36 GiB (100.00%)
    used: 123.9 GiB (93.6%) fs: btrfs block-size: 4096 B dev: /dev/nvme0n1p5
    maj-min: 259:5 label: Manjaro uuid: 9f520fb1-282a-4902-bd89-70d8d2fef54b
  ID-6: /var/log raw-size: 132.36 GiB size: 132.36 GiB (100.00%)
    used: 123.9 GiB (93.6%) fs: btrfs block-size: 4096 B dev: /dev/nvme0n1p5
    maj-min: 259:5 label: Manjaro uuid: 9f520fb1-282a-4902-bd89-70d8d2fef54b
Swap:
  Kernel: swappiness: 30 (default 60) cache-pressure: 50 (default 100)
    zswap: no
  ID-1: swap-1 type: partition size: 5.72 GiB used: 0 KiB (0.0%) priority: -2
    dev: /dev/nvme0n1p4 maj-min: 259:4 label: N/A
    uuid: 7cce2ff2-71f2-4e89-907d-5904c98e8111
  ID-2: swap-2 type: zram size: 1024 MiB used: 1.4 MiB (0.1%) priority: 10
    comp: lzo-rle avail: lzo,lz4,lz4hc,842,zstd max-streams: 12 dev: /dev/zram0
Unmounted:
  ID-1: /dev/nvme0n1p1 maj-min: 259:1 size: 100 MiB fs: vfat label: N/A
    uuid: D217-E5C8
  ID-2: /dev/nvme0n1p2 maj-min: 259:2 size: 16 MiB fs: N/A label: N/A
    uuid: N/A
  ID-3: /dev/nvme0n1p3 maj-min: 259:3 size: 99.89 GiB fs: ntfs label: WinDa
    uuid: 246E32556E321FCA
  ID-4: /dev/sda2 maj-min: 8:2 size: 223.56 GiB fs: ntfs label: WinMedia
    uuid: 6DC8D0D84DE551E5
USB:
  Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 4 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Device-1: 1-3:2 info: Syntek Integrated Camera type: video driver: uvcvideo
    interfaces: 3 rev: 2.0 speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0
    power: 500mA chip-ID: 174f:2459 class-ID: fe01 serial: <filter>
  Hub-2: 2-0:1 info: super-speed hub ports: 2 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-3: 3-0:1 info: hi-speed hub with single TT ports: 4 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Device-1: 3-4:2 info: Qualcomm Atheros QCA61x4 Bluetooth 4.0
    type: bluetooth driver: btusb interfaces: 2 rev: 2.0
    speed: 12 Mb/s (1.4 MiB/s) lanes: 1 mode: 1.1 power: 100mA
    chip-ID: 0cf3:e300 class-ID: e001
  Hub-4: 4-0:1 info: super-speed hub ports: 2 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
Sensors:
  System Temperatures: cpu: 43.5 C mobo: N/A gpu: amdgpu temp: 39.0 C
  Fan Speeds (rpm): N/A
Info:
  Processes: 321 Uptime: 1h 48m wakeups: 4 Init: systemd v: 254
  default: graphical tool: systemctl Compilers: gcc: 13.2.1 clang: 16.0.6
  Packages: 1921 pm: pacman pkgs: 1906 libs: 428 tools: pamac pm: flatpak
  pkgs: 15 Shell: Sudo (sudo) v: 1.9.14p3 default: Bash v: 5.1.16
  running-in: konsole inxi: 3.3.30
There is demonstration of the problem with NFS The Run (run on proton)

Screenshot_20231010_141307 Screenshot_20231010_144524

And with War thunder (native)

Screenshot_20231010_142613 Screenshot_20231010_142928

So, you suspend while the game is running?

I guess it is simply that: When the computer suspends, then the VRAM is copied to the RAM and when it wakes up, then it copies it back, so that a shutdown of the GPU is possible. You can see that at the slightly increase of RAM/VRAM. It has to relocate connections and that results in higher latency, therefore lower fps.

It makes no difference if I suspend while the game is running or not, after waking up I anyway get low fps.

Аnd if this is what you wrote, is there a way to fix it myself or should I wait for fixes from the developers?

I don’t know how to fix that and waiting for developers is also not a good advice here, since it is only noticeable on games. I would rather say that your problem is rather a niche on the Linux platform. SteamDeck for example must have their own patches for that, since suspend works there, at least I assume that.

An idea would be using s2idle (S0) instead of deep (S3) suspend (if possible), since s2idle is not firmware depended, thus pure software mode. When it is working correctly, then it should stay at S0, but everything will set to lowest possible power mode. That is the same approach like on Smartphones for example. Therefore the GPU doesn’t shutdown completely.

I tried to switch to s2idle and it really solved this issue, but this power mode not what i need. I’m using Manjaro on a laptop and it’s important for me to save the energy in sleep mode. And sometimes this mode just freezes my computer then it wakes up. So maybe I’ll wait for now, maybe the developers will fix this :man_shrugging:

I solver this problem. I just updated bios on my laptop and now I don’t see any performance drop after suspend

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