Skip to content

RX 9070 XT: games running across suspend lose VRAM to GTT on resume, performance collapses until restart #2811

Description

@jedhamzawi

Your system information

  • Steam client version: 1789086785 (steamdeck_publicbeta)
  • SteamOS version: 3.9.0 (build 20260828.100), kernel 7.2.0-valve1. Also reproduced on 3.8.26 (20260827.1), kernel 6.18.46-valve1
  • Opted into Steam client beta?: Yes
  • Opted into SteamOS beta?: Yes (Preview)
  • Have you checked for updates in Settings > System?: Yes

Hardware: desktop, ASRock B850I Lightning WiFi (BIOS 4.43), Ryzen 7 7800X3D, XFX RX 9070 XT (Navi 48, 1002:7550), HDMI to a 4K HDR 120Hz TV. Raphael iGPU is also bound to amdgpu.
Graphics stack: vulkan-radeon 26.2.0_devel.222131.steamos_26.05.16, mesa 26.1.2, linux-firmware-neptune 20260827.1, gamescope 3.16.26.

Please describe your issue in as much detail as possible:

Expected: a game left running when the system goes to sleep performs the same after wake as before.

Actual: after wake the game is severely degraded until it is restarted. A game launched after wake runs normally. Reproduced with:

  • Onimusha: Way of the Sword
  • The Witcher 3
  • Counter-Strike 2 (native Linux/Vulkan)

I have two OS versions I've tested that fail differently:

3.9.0: frame rate collapses (Onimusha drops from 60fps to about 12fps). The game's VRAM is evicted to GTT at suspend and never comes back:

  • Before suspend, Onimusha's fdinfo shows drm-resident-vram at about 7.4 GiB and mem_info_vram_used at 8.6 GiB.
  • After wake, Onimusha shows drm-resident-vram at about 190 MiB and drm-resident-gtt at about 7.9 GiB. mem_info_vram_used is about 1.0 GiB and mem_info_gtt_used about 8.3 GiB.
  • CS2 after wake: mem_info_vram_used is 1.8 GiB and mem_info_gtt_used 8.5 GiB, almost all of it CS2's. CS2 relaunched after the same wake holds a solid 60fps with mem_info_vram_used at 9.8 GiB and mem_info_gtt_used at 0.5 GiB.
  • It stays that way for as long as the game runs. The GPU reports 100% busy, but power drops from about 230-266W to about 140-170W.
  • No kernel errors are logged.

3.8.26: VRAM does return, but the game hitches badly on camera movement. Both measurements below were taken while the game was running after wake:

  • The game's gfx engine time is about 2.8x its pre-suspend value, and power falls to about 120W at 100% busy.
  • amdgpu fires about 85k IRQs per second. kworkers on the sdma1, gfx_0.0.0 and comp_1.1.0 workqueues stay busy.
  • mem_info_vram_used / mem_info_gtt_used change between 20Hz samples about half the time (±30 MiB).

Both kernels log amdgpu 0000:03:00.0: MODE1 reset at suspend entry.

On 3.9.0 I ruled out each of the following with a separate suspend cycle; the result was identical every time:

  • my own GPU tuning, both the undervolt/power cap/fan curve and OverDrive disabled at module load via stock ppfeaturemask
  • dmemcg-booster, with both units masked and the dmem controller not enabled
  • Steam background game recording
  • the iGPU: the game's memory stays behind the dGPU's GTT, and the iGPU holds about 14 MiB

Sleep/wake worked on this system at some point, but I don't know which version last worked.

Steps for reproducing this issue:

  1. On an RX 9070 XT, launch Counter-Strike 2 (offline practice map, 4K), Onimusha: Way of the Sword, or The WItcher 3 and play briefly.
  2. Put the system to sleep with the game still running, then wake it.
  3. Return to the game: on 3.9.0 performance collapses and /sys/class/drm/card0/device/mem_info_vram_used stays around 1-2 GiB with the game's memory in GTT; on 3.8.26 it hitches on camera movement. Restarting the game restores normal performance.

Other Notes

I haven't found others with this specific issue, so it could be something specific to my setup. That being said, I have pretty well-supported hardware and am running pretty much stock SteamOS besides a small undervolt and power limit settings (bug manifested with that disabled though, so that's not the problem). This bug in particular is a huge bummer for me because sleep/resume is the most important feature for me in SteamOS. I would appreciate any guidance/advice/possible fixes!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions