[AMD RX 9070 / RADV Linux] Low FPS (22-25) in Kokiri Forest + color distortion & background flicker #528
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot#528
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
hookshot_log.txt
From hookshot_log.txt:
CachyOS Linux (Kernel 7.3.0, Hyprland), 170 GB free
Another RADV data point, with a regression in
b5ed417and a setting that fixes most of it.System: RX 9060 XT 16 GB (RADV GFX1200), Mesa 26.2.6, kernel 7.2.15 (Bazzite, Gaming Mode / gamescope), Ryzen 7 5700X3D, 32 GB, THP
madvise. Kokiri Forest, frame generation 2x, Resolution 100%.queue submitper frame3601726(ultrawide), defaultsb5ed417(main, with faster-fps), defaultsb5ed417+RX_VK_BATCH_POLL_US=2000RX_VK_WAIT_GPU=2RX_VK_BATCH_POLL_US=2000brings it back to about one flush a frame. As myylkn suggested in #413, defaulting it to ~2000 with RADV looks worth it.imports: 59 live (1472 MB)). The GPU is ~30% busy, and the Presentation thread is the busiest one (~64% of a core). That matches what Naneek-code measured in #312.I can run more builds or env settings on this machine if that helps.
System: RX 7900 XTX (RDNA 3, RADV NAVI31), Mesa 26.2.6, Ryzen 7 7700X, kernel 7.3.1, NixOS, Hyprland 0.56, Linux AppImage.
Another RADV data point, this time RDNA 3 (RX 7900 XTX, Mesa 26.2.6, Hyprland/XWayland), build
a598b9f, same spot inKokiri Forest, frame generation 2x. Started through Steam, each value the mean of several 120-present stat blocks:
RX_VK_BATCH_POLL_US=2000HOS_SHORT_SLEEP_TIMER=1SDL_VIDEODRIVER=waylandSo +65 % from the poll setting alone, and it confirms the suggestion to default it to ~2000 on RADV. What is left is the
submit itself: with the poll fixed, the replay still spends ~23–25 ms per frame in
submitand ~9 ms inpresent(
a frame's replay time), the GPU sits at ~57 % and no CPU thread is saturated. That is the same per-CS cost youmeasured.
#448 (udmabuf dma-bufs) on RADV – I built
a598b9f+ #448 (+ #438, #485 and the swapchain fix from #679) on thismachine and ran the same spot, loaded through a scripted
HOS_INPUT_LIVEsequence so every run is identical:submit/ framea598b9f,RX_VK_BATCH_POLL_US=0a598b9f,RX_VK_BATCH_POLL_US=2000guest memory as dma-bufs: yes)So on RDNA 3 / RADV #448 halves the submit cost and is worth +55 % on top of the poll setting; together with it,
16–18 → 43–48 fps. No crashes or visual differences in these runs (short runs, Kokiri Forest only).
Other observations from the same session (defaults, before the poll setting):
ModuleSystemWorkerthreads spend ~40 % of their time in the kernel:strace -con one of them plus the mainthread for 3 s: 131,763
sched_yield, 18,187futex(~44k yields/s), fromsleep_ns()'s sub-millisecond pathyielding until the deadline.
HOS_SHORT_SLEEP_TIMER=1did not change fps here (see table), so it is CPU waste ratherthan the limit on this machine.
🤖 Measured and written with Claude Code
Same 22-25 fps in Kokiri Forest on an AMD Radeon 860M (RDNA 3.5 iGPU), RADV, CachyOS. The log shows the same matrix multiplies in software (the cooperative matrices lack 16x8x16 f16). Full log and frame statistics in #628.
Follow-up on RADV / RDNA 3 (RX 7900 XTX, Mesa 26.2.6): with #448 the replay thread is the limit here (
submit~13 ms +draw~9 ms +present~6 ms a frame, GPU ~75 % busy), so I tried the existingRX_VK_PARALLEL, which is off by default because on your NVIDIA card it gave no fps and black frames in Kakariko.Build: v2.0.1 + #448 + #438 + #485 + #642 + #679/#680, native Wayland,
RX_VK_BATCH_POLL_US=2000, frame generation 2x. Kokiri Forest, the same spot every run (scripted withHOS_INPUT_LIVE), 20 s each:HOS_FPS_LOG)HOS_FPS_TARGET=60RX_VK_PARALLEL=4GPU-bound wait 0.0 msRX_VK_PARALLEL=4 HOS_FPS_TARGET=60So on RADV the parallel replay is worth +18 % here, but only together with
HOS_FPS_TARGET=60: on its own the game's adaptive limiter (vrr on) settles at 50 and stays there.Flashes:
RX_VK_FRAMELOG+scripts/framelog.pyover 20 s in Kokiri: 0 events with and withoutRX_VK_PARALLEL=4(2,701 and 3,177 frames; frame gaps median 7.6 → 6.5 ms, worst 13.3 → 10.7 ms). That is standing in Kokiri only; I cannot reach Kakariko with this save, where you saw the black frames, so that part is still open on AMD.🤖 Measured and written with Claude Code
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.