RX 6800 XT (RADV, Linux): GPU hang and full GPU reset a few seconds after loading a save in Kokiri, also with RX_VK_KEEP_RETIRED=1 #604

Closed
opened 2026-11-08 14:09:47 +00:00 by DerHalbGrieche · 1 comment
DerHalbGrieche commented 2026-11-08 14:09:47 +00:00 (Migrated from github.com)

Hookshot version

hookshot 97e7c55 (source 5ea1e377): main at 97e7c55 (newer than low-vram), built locally on Linux with the ultrawide AppImage's toolchain (clang, glibc 2.35 sysroot, FFmpeg, SDL2). hookshot_vk.so was compiled from the same commit with GCC 13's libstdc++ headers, linked statically as in linux-appimage.yml.

What kind of problem

Crash, freeze or black screen

What happened

The GPU hangs a few seconds after loading a save, as Kokiri Forest first appears. amdgpu's ring reset fails, so it does a full MODE1 GPU reset. VRAM is lost, the Wayland compositor (niri) dies with it, and the second time the whole PC rebooted.

The title screen, the menus and the opening movie run fine at 58-60 fps. After the save is confirmed, fps falls to 32, then to 2. Then batched submit ... failed (-4) and device lost follow.

It happened 2 of 2 times:

Run Mode Switches Retired imports given back before the hang Result
1 window none 33 (880 MB) hang at present ~2000; gfx_0.0.0 ring timeout; ring reset failed; MODE1 reset
2 HOS_HEADLESS=1 RX_VK_KEEP_RETIRED=1 0 (0 MB) hang at present ~2000; comp_1.0.1 ring timeout (that ring reset succeeded); then gfx_0.0.0 ring timeout; ring reset failed; MODE1 reset; PC rebooted

Given #17 (the Arc device loss, fixed with RX_VK_KEEP_RETIRED=1) and 3f5b0aa, I tried keeping the retired pools first. On RDNA2 with RADV it doesn't help: run 2 gave none back and hung at the same point. The kernel logged no GPU page fault in either run, only ring timeouts. That looks like a shader or a wait that never finishes, not a read of freed memory. In run 2 the first queue to hang was a compute queue.

VK_EXT_device_fault is not available here, so there's no faulting address. I haven't run RX_VK_CHECKPOINTS=1 yet, because every attempt resets the GPU and takes the desktop down. I can do one targeted run if you tell me which switches you want.

Possibly related: on this card, one compute program isn't translated:
vk: program 499dbfd0721d2858 not translated: SPIR-V Instruction is not implemented (GlobalAtomicAddF32) is not implemented
(#17 also mentions 499dbfd0721d2858 faulting now and then). The networks are left out ("a network left out on this card"), and matrix multiplies run in software (no cooperative matrices on RDNA2).

Where in the game

Loading a save that stands outside Link's house in Kokiri Forest: Continue, top slot, Load. The hang comes a few seconds after the load is confirmed, as the forest first appears. The save came from another emulator's save folder: slot_00-slot_03, option.sav and account.sav copied into save/<uid>/.

How often

Every time (2 of 2).

Graphics card and driver version

AMD Radeon RX 6800 XT (NAVI21, RDNA2), RADV, Mesa 26.2.5 (driver 0x6802005), Vulkan 1.4

CPU, RAM and operating system

Ryzen 7 5700X, 32 GB. NixOS with kernel 7.3.0-cachyos-lto. Wayland (niri). The game runs through steam-run, NixOS's standard-Linux library environment.

Changes from the defaults

Run 1: none. Run 2: HOS_HEADLESS=1 RX_VK_KEEP_RETIRED=1. Both runs: RX_VK_SHOTS=<dir> RX_VK_SHOT_EVERY=60, plus HOS_INPUT_LIVE=<file>, used only to press A on the title, the save list and the confirm dialog.

Other software hooked into the game

None. (steam-run's LD_PRELOAD of libextest.so fails to load and is ignored: "wrong ELF class".)

hookshot_log.txt

Excerpts (home paths shortened to ~):

Run 1 (window, defaults)
[hos host] hookshot 97e7c55 (source 5ea1e377)
[hos host] vk: device 0: AMD Radeon RX 6800 XT (RADV NAVI21), Vulkan 1.4, driver 0x6802005, type 2
[hos host] vk: program 499dbfd0721d2858 not translated: SPIR-V Instruction is not implemented (GlobalAtomicAddF32) is not implemented
[hos Presentation Thread] vi: 1141 frames presented (59.1 fps over the last 5.0 s, interval 1)
[hos ModuleSystemWorker3] hid: live input at 21.4 s: 1 presses (0:A/120)
[hos sead::MainThread] hid: live input at 24.6 s: 1 presses (0:A/120)
[hos Presentation Thread] vi: 1420 frames presented (55.7 fps over the last 5.0 s, interval 1)
[hos ModuleSystemWorker4] hid: live input at 27.7 s: 1 presses (0:A/120)
[hos Presentation Thread] vi: 1710 frames presented (58.0 fps over the last 5.0 s, interval 1)
[hos Presentation Thread] vk: imports: 46 live (1200 MB), 0 retired still imported (0 MB), 29 retired given back (752 MB)
[hos Presentation Thread] vi: 1990 frames presented (32.1 fps over the last 8.7 s, interval 1)
[hos Presentation Thread] vi: 2004 frames presented (2.4 fps over the last 5.9 s, interval 1)
radv/amdgpu: The CS has been cancelled because the context is lost. This context is innocent.
[hos Presentation Thread] vi: 2061 frames presented (8.4 fps over the last 6.8 s, interval 1)
[hos Presentation Thread] vk: slow submit: 19.9 ms: draw 5.0 descriptors 1.7 commands 2.3 queue submit 19.7
[hos sead::MainThread] vk: imports: 47 live (1248 MB), 0 retired still imported (0 MB), 33 retired given back (880 MB)
[hos sead::MainThread] vk: batched submit 8473 failed (-4)
[hos sead::MainThread] vk: device lost: reading the fault info (RX_VK_CHECKPOINTS=1 for markers)
[hos OptimizeChangeBanc] vk: batched submit 8474 failed (-4)

Kernel:

amdgpu 0000:08:00.0: ring gfx_0.0.0 timeout, signaled seq=11019194, emitted seq=11019196
amdgpu 0000:08:00.0:  Process hookshot pid 30193 thread Presentation Th pid 30201
amdgpu 0000:08:00.0: Starting gfx_0.0.0 ring reset
amdgpu 0000:08:00.0: Ring gfx_0.0.0 reset failed
amdgpu 0000:08:00.0: GPU reset begin!. Source:  1
amdgpu 0000:08:00.0: MODE1 reset
amdgpu 0000:08:00.0: VRAM is lost due to GPU reset!
Presentation Th[30201]: segfault at 59 ip ... error 4 in hookshot_vk.so[3cbbb7,...]
Run 2 (HOS_HEADLESS=1, RX_VK_KEEP_RETIRED=1)
[hos MainThread] vk: matrix multiplies in software (no cooperative matrices)
[hos Presentation Thread] vk: program 3f6f2b1d671badcd not translated: a network left out on this card
[hos Presentation Thread] vi: 1417 frames presented (58.3 fps over the last 5.0 s, interval 1)
[hos ModuleSystemWorker3] hid: live input at 25.4 s: 1 presses (0:A/120)
[hos ModuleSystemWorker4] hid: live input at 28.6 s: 1 presses (0:A/120)
[hos Presentation Thread] vi: 1716 frames presented (59.6 fps over the last 5.0 s, interval 1)
[hos ModuleSystemWorker5] hid: live input at 31.8 s: 1 presses (0:A/120)
[hos Presentation Thread] vk: imports: 9 live (160 MB), 1 retired still imported (16 MB), 0 retired given back (0 MB)
[hos Presentation Thread] vi: 2005 frames presented (57.7 fps over the last 5.0 s, interval 1)
[hos Presentation Thread] vk: pool 0x112f995000+0x2000 imported in 2.8 ms (12 imports, 42 ms in all)
[hos Presentation Thread] vk: view of texture 0x1133ccb000 (vk 139) as vk 95 type 1 levels 0+1 layers 0+1 not made
... (the same for layers 1-7; the log ends here, the PC rebooted)

Kernel:

amdgpu 0000:08:00.0: ring comp_1.0.1 timeout, signaled seq=80, emitted seq=81
amdgpu 0000:08:00.0:  Process hookshot pid 32451 thread Presentation Th pid 32500
amdgpu 0000:08:00.0: Starting comp_1.0.1 ring reset
amdgpu 0000:08:00.0: Ring comp_1.0.1 reset succeeded
amdgpu 0000:08:00.0: ring gfx_0.0.0 timeout, signaled seq=11035892, emitted seq=11035894
amdgpu 0000:08:00.0:  Process hookshot pid 32451 thread Presentation Th pid 32500
amdgpu 0000:08:00.0: Starting gfx_0.0.0 ring reset
amdgpu 0000:08:00.0: Ring gfx_0.0.0 reset failed
amdgpu 0000:08:00.0: GPU reset begin!. Source:  1
amdgpu 0000:08:00.0: MODE1 reset
amdgpu 0000:08:00.0: VRAM is lost due to GPU reset!

I can send the full logs if they help.

Before you send it

  • I'm on the newest release, or the problem is still there on it. (main 97e7c55, newer than low-vram)
  • I searched the open issues for this problem. (#17, #309, #571, #528 and #486 are close but not the same: different GPUs, or fixed by RX_VK_KEEP_RETIRED)
  • I'm not attaching game files, keys, hookshot.exe, the .bin caches or saves.
### Hookshot version `hookshot 97e7c55 (source 5ea1e377)`: `main` at 97e7c55 (newer than `low-vram`), built locally on Linux with the `ultrawide` AppImage's toolchain (clang, glibc 2.35 sysroot, FFmpeg, SDL2). `hookshot_vk.so` was compiled from the same commit with GCC 13's libstdc++ headers, linked statically as in `linux-appimage.yml`. ### What kind of problem Crash, freeze or black screen ### What happened The GPU hangs a few seconds after loading a save, as Kokiri Forest first appears. amdgpu's ring reset fails, so it does a full MODE1 GPU reset. VRAM is lost, the Wayland compositor (niri) dies with it, and the second time the whole PC rebooted. The title screen, the menus and the opening movie run fine at 58-60 fps. After the save is confirmed, fps falls to 32, then to 2. Then `batched submit ... failed (-4)` and `device lost` follow. It happened 2 of 2 times: | Run | Mode | Switches | Retired imports given back before the hang | Result | |---|---|---|---|---| | 1 | window | none | 33 (880 MB) | hang at present ~2000; `gfx_0.0.0` ring timeout; ring reset failed; MODE1 reset | | 2 | `HOS_HEADLESS=1` | `RX_VK_KEEP_RETIRED=1` | 0 (0 MB) | hang at present ~2000; `comp_1.0.1` ring timeout (that ring reset succeeded); then `gfx_0.0.0` ring timeout; ring reset failed; MODE1 reset; PC rebooted | Given #17 (the Arc device loss, fixed with `RX_VK_KEEP_RETIRED=1`) and 3f5b0aa, I tried keeping the retired pools first. On RDNA2 with RADV it doesn't help: run 2 gave none back and hung at the same point. The kernel logged no GPU page fault in either run, only ring timeouts. That looks like a shader or a wait that never finishes, not a read of freed memory. In run 2 the first queue to hang was a compute queue. `VK_EXT_device_fault` is not available here, so there's no faulting address. I haven't run `RX_VK_CHECKPOINTS=1` yet, because every attempt resets the GPU and takes the desktop down. I can do one targeted run if you tell me which switches you want. Possibly related: on this card, one compute program isn't translated: `vk: program 499dbfd0721d2858 not translated: SPIR-V Instruction is not implemented (GlobalAtomicAddF32) is not implemented` (#17 also mentions `499dbfd0721d2858` faulting now and then). The networks are left out ("a network left out on this card"), and matrix multiplies run in software (no cooperative matrices on RDNA2). ### Where in the game Loading a save that stands outside Link's house in Kokiri Forest: Continue, top slot, Load. The hang comes a few seconds after the load is confirmed, as the forest first appears. The save came from another emulator's save folder: `slot_00`-`slot_03`, `option.sav` and `account.sav` copied into `save/<uid>/`. ### How often Every time (2 of 2). ### Graphics card and driver version AMD Radeon RX 6800 XT (NAVI21, RDNA2), RADV, Mesa 26.2.5 (`driver 0x6802005`), Vulkan 1.4 ### CPU, RAM and operating system Ryzen 7 5700X, 32 GB. NixOS with kernel 7.3.0-cachyos-lto. Wayland (niri). The game runs through `steam-run`, NixOS's standard-Linux library environment. ### Changes from the defaults Run 1: none. Run 2: `HOS_HEADLESS=1 RX_VK_KEEP_RETIRED=1`. Both runs: `RX_VK_SHOTS=<dir> RX_VK_SHOT_EVERY=60`, plus `HOS_INPUT_LIVE=<file>`, used only to press A on the title, the save list and the confirm dialog. ### Other software hooked into the game None. (steam-run's `LD_PRELOAD` of `libextest.so` fails to load and is ignored: "wrong ELF class".) ### hookshot_log.txt Excerpts (home paths shortened to `~`): <details><summary>Run 1 (window, defaults)</summary> ```text [hos host] hookshot 97e7c55 (source 5ea1e377) [hos host] vk: device 0: AMD Radeon RX 6800 XT (RADV NAVI21), Vulkan 1.4, driver 0x6802005, type 2 [hos host] vk: program 499dbfd0721d2858 not translated: SPIR-V Instruction is not implemented (GlobalAtomicAddF32) is not implemented [hos Presentation Thread] vi: 1141 frames presented (59.1 fps over the last 5.0 s, interval 1) [hos ModuleSystemWorker3] hid: live input at 21.4 s: 1 presses (0:A/120) [hos sead::MainThread] hid: live input at 24.6 s: 1 presses (0:A/120) [hos Presentation Thread] vi: 1420 frames presented (55.7 fps over the last 5.0 s, interval 1) [hos ModuleSystemWorker4] hid: live input at 27.7 s: 1 presses (0:A/120) [hos Presentation Thread] vi: 1710 frames presented (58.0 fps over the last 5.0 s, interval 1) [hos Presentation Thread] vk: imports: 46 live (1200 MB), 0 retired still imported (0 MB), 29 retired given back (752 MB) [hos Presentation Thread] vi: 1990 frames presented (32.1 fps over the last 8.7 s, interval 1) [hos Presentation Thread] vi: 2004 frames presented (2.4 fps over the last 5.9 s, interval 1) radv/amdgpu: The CS has been cancelled because the context is lost. This context is innocent. [hos Presentation Thread] vi: 2061 frames presented (8.4 fps over the last 6.8 s, interval 1) [hos Presentation Thread] vk: slow submit: 19.9 ms: draw 5.0 descriptors 1.7 commands 2.3 queue submit 19.7 [hos sead::MainThread] vk: imports: 47 live (1248 MB), 0 retired still imported (0 MB), 33 retired given back (880 MB) [hos sead::MainThread] vk: batched submit 8473 failed (-4) [hos sead::MainThread] vk: device lost: reading the fault info (RX_VK_CHECKPOINTS=1 for markers) [hos OptimizeChangeBanc] vk: batched submit 8474 failed (-4) ``` Kernel: ```text amdgpu 0000:08:00.0: ring gfx_0.0.0 timeout, signaled seq=11019194, emitted seq=11019196 amdgpu 0000:08:00.0: Process hookshot pid 30193 thread Presentation Th pid 30201 amdgpu 0000:08:00.0: Starting gfx_0.0.0 ring reset amdgpu 0000:08:00.0: Ring gfx_0.0.0 reset failed amdgpu 0000:08:00.0: GPU reset begin!. Source: 1 amdgpu 0000:08:00.0: MODE1 reset amdgpu 0000:08:00.0: VRAM is lost due to GPU reset! Presentation Th[30201]: segfault at 59 ip ... error 4 in hookshot_vk.so[3cbbb7,...] ``` </details> <details><summary>Run 2 (HOS_HEADLESS=1, RX_VK_KEEP_RETIRED=1)</summary> ```text [hos MainThread] vk: matrix multiplies in software (no cooperative matrices) [hos Presentation Thread] vk: program 3f6f2b1d671badcd not translated: a network left out on this card [hos Presentation Thread] vi: 1417 frames presented (58.3 fps over the last 5.0 s, interval 1) [hos ModuleSystemWorker3] hid: live input at 25.4 s: 1 presses (0:A/120) [hos ModuleSystemWorker4] hid: live input at 28.6 s: 1 presses (0:A/120) [hos Presentation Thread] vi: 1716 frames presented (59.6 fps over the last 5.0 s, interval 1) [hos ModuleSystemWorker5] hid: live input at 31.8 s: 1 presses (0:A/120) [hos Presentation Thread] vk: imports: 9 live (160 MB), 1 retired still imported (16 MB), 0 retired given back (0 MB) [hos Presentation Thread] vi: 2005 frames presented (57.7 fps over the last 5.0 s, interval 1) [hos Presentation Thread] vk: pool 0x112f995000+0x2000 imported in 2.8 ms (12 imports, 42 ms in all) [hos Presentation Thread] vk: view of texture 0x1133ccb000 (vk 139) as vk 95 type 1 levels 0+1 layers 0+1 not made ... (the same for layers 1-7; the log ends here, the PC rebooted) ``` Kernel: ```text amdgpu 0000:08:00.0: ring comp_1.0.1 timeout, signaled seq=80, emitted seq=81 amdgpu 0000:08:00.0: Process hookshot pid 32451 thread Presentation Th pid 32500 amdgpu 0000:08:00.0: Starting comp_1.0.1 ring reset amdgpu 0000:08:00.0: Ring comp_1.0.1 reset succeeded amdgpu 0000:08:00.0: ring gfx_0.0.0 timeout, signaled seq=11035892, emitted seq=11035894 amdgpu 0000:08:00.0: Process hookshot pid 32451 thread Presentation Th pid 32500 amdgpu 0000:08:00.0: Starting gfx_0.0.0 ring reset amdgpu 0000:08:00.0: Ring gfx_0.0.0 reset failed amdgpu 0000:08:00.0: GPU reset begin!. Source: 1 amdgpu 0000:08:00.0: MODE1 reset amdgpu 0000:08:00.0: VRAM is lost due to GPU reset! ``` </details> I can send the full logs if they help. ### Before you send it - [x] I'm on the newest release, or the problem is still there on it. (`main` 97e7c55, newer than `low-vram`) - [x] I searched the open issues for this problem. (#17, #309, #571, #528 and #486 are close but not the same: different GPUs, or fixed by `RX_VK_KEEP_RETIRED`) - [x] I'm not attaching game files, keys, hookshot.exe, the .bin caches or saves.
NotRexed commented 2026-11-09 05:50:45 +00:00 (Migrated from github.com)

Tracked in #1000, follow there. That issue collects every report of Linux / Steam Deck GPU hangs, crashes, low fps and build failures, and this one is linked from it with its GPU, version and log details. If it still happens on v2.0.6 (https://github.com/NotRexed/Hookshot/releases/tag/v2.0.6; Update next to Play in the launcher), please add a comment there with your hookshot_log.txt.

Tracked in #1000, follow there. That issue collects every report of Linux / Steam Deck GPU hangs, crashes, low fps and build failures, and this one is linked from it with its GPU, version and log details. If it still happens on v2.0.6 (https://github.com/NotRexed/Hookshot/releases/tag/v2.0.6; Update next to Play in the launcher), please add a comment there with your `hookshot_log.txt`.
Commenting is not possible because the repository is archived.
No milestone
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Hookshot#604
No description provided.