[CachyOS Linux/AMD] GPU hang (gfx ring timeout → MODE2 reset, device lost) on Radeon 680M iGPU / RADV after the intro movie; window stays black (works on Windows, same hardware) #984
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#984
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 version
v2.0.5
What kind of problem
Crash, freeze or black screen
What happened
Summary
On an AMD Radeon 680M (integrated, RADV), Hookshot boots, plays the startup logo and intro movie, starts loading the first scene, and then the GPU hangs. amdgpu reports a gfx ring timeout, the per-ring reset fails, and the kernel does a full MODE2 GPU reset. The game's VkDevice is lost (every later submit fails with
-4), the monitor briefly loses signal, and the window stays black until I close it.The README lists AMD cards as "never tested", so this is a first data point. The hang is reproducible (4 times in one boot) and does not happen on Windows on the same hardware.
Environment
a598b9f(source7df921e1), Linux build, language es-4190x1002:0x1681)What happens
prepared 31985 shader programs ... in 93.7 s, 7 failed).slow submitentries from hundreds of ms up to 2.5 s, andslow present: 2471.0 ms.-4, andvk: the window is not shown (no image back in 100 ms)appears. The window stays black. I closed it manually (display: window closed, exiting).Works on Windows (same hardware)
The same Hookshot build [same build/commit: confirm] does not hit this device lost on Windows on the same machine [confirm it is the same PC], using AMD's Windows driver [Adrenalin version]. There it gets past the loading stage where Linux hangs [describe how far it goes, and any stutter or other issues].
So the Radeon 680M itself seems able to run this workload, and the problem looks specific to the Linux path: Mesa/RADV 26.2.6 or the Linux host/Vulkan code. I can't tell which one from my side.
Kernel log (same boot, reproducible)
The hang is a gfx ring timeout, and
dmesghas no page fault lines (see the coredump analysis below for one misleading line in the dump header). It happened 4 times in one boot, always from the game's Vulkan thread:ring comp_1.2.0 timeout); that one recovered with a ring reset.Coredump analysis (amdgpu devcoredump of the 4th hang, attached as
amdgpu_coredump.txt.gz)Header:
time: 7985.91,pasid: 87,vmid: 7,process_name: hookshot TGID: 13387 thread: mkw_vk display PID: 13507, ringgfx_0.0.0.[gfxhub] Page fault observed / address 0x0 / status 0x0, but that looks like an empty record:GCVM_L2_PROTECTION_FAULT_STATUS, all*_UTCL1/UTCL0_STATUSregisters andCP_GFX_ERRORare 0.CP_IB1_BASE = 0x8001_0146e000andCP_IB1_CMD_BUFSZ = 0x2d00match "IB #3" in the dump exactly (VA0xffff80010146e000, 11520 dw).CP_IB2_BASE = 0x8001_00025000, size0xa8, matches the IB called from "IB #0".GRBM_STATUS = 0xe7f100ac(by my reading of the bits: GUI_ACTIVE, CP_BUSY, and GE/PA/SC/SPI/DB/CB busy, CB/DB not clean). The ring had 256 dwords pending (Rptr 0x100,Wptr 0x200, ring size 2048 dw).DRAW_INDEX_2, 13DRAW_INDEX_AUTO, 2DISPATCH_DIRECT, 252DMA_DATA, ~34 packets with opcodes0x4d/0x9fthat I could not identify. IB #0 contains an opcode0xA9packet, which I believe isDISPATCH_TASK_STATE_INIT, so task/mesh shaders are probably involved in this submission.RADV_DEBUG=hangdump would answer that; I haven't captured one.comp_1.2.0timeout 3 s later may be related if task shaders run on the async compute queue, but that is only a guess.Possible factors
Linux/RADV-specific. Since Windows (AMD's driver) does not hang, a RADV bug or a difference in how the Linux path submits work (mesh/task shaders, synchronization, memory budget) seems more likely than a plain GPU limitation.
A long-running or non-terminating GPU job inside the graphics pipeline. There is no real page fault, so an invalid address seems unlikely. The mesh/task shaders (the log says they are built without the driver optimizer on AMD:
RX_VK_MESH_OPT=1: with it) or one of the heavy compute passes are my first suspects.Memory context (probably secondary). Right before the first hang the log shows:
heap 0 (system): used 5652 of 4659 MBheap 1 (device): used 6995 of 7656 MBworking set 9796 MB,1607 textures (3565 MB), texture budget 6144 MBThe iGPU has a 4 GB carve-out plus shared system memory, so the budget may be optimistic, but the lack of a real fault, and the fact that Windows runs on the same RAM, suggest this is not the direct cause.
Unsupported or untranslated shaders (probably not the direct cause):
program 499dbfd0721d2858 not translated: ... GlobalAtomicAddF32 is not implementedunsupported native opcode (native op 0x3a9)a network left out on this card) andthe TAAU network fd029a317a9a4b94 is stood in forstorage buffer NOT bound (reads zeros)for several mesh programsview of texture ... as vk 95 ... not madeAttachments
hookshot_log.3.txt: full game log of the failing Linux rundmesgexcerpt (amdgpu / ring / reset lines) from the same bootamdgpu_coredump.txt.gz: devcoredump of the 4th hang (includes the dumped IBs)vulkaninfo --summaryoutputWhere in the game
Link's house
How often
Every time
Graphics card and driver version
GPU: AMD Radeon 680M (integrated, RDNA2) , Driver: Mesa 26.2.6-arch3.1, RADV, Vulkan API 1.4.354
CPU, RAM and operating system
AMD Ryzen 7 7735HS with Radeon Graphics (16 threads), RAM: 24 GiB (19.3 GiB usable), CachyOS Linux (latest), kernel 7.3.3-1-cachyos
Changes from the defaults
No response
Other software hooked into the game
No, nothing hooked in
hookshot_log.txt
amdgpu_coredump.tar.gz
dmesg.txt
hookshot_log.3.txt
vulkaninfo --summary.txt
Screenshots or video
Before you send it
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.