[AMD RX 6600] Reproducible Vulkan device loss and crash inside Deku Tree on v2.0.2 #708
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#708
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.2
What kind of problem
Crash, freeze or black screen
What happened
Description
Hi NotRexed and contributors,
First of all, thank you for your work on Hookshot! The game runs significantly better than the emulator alternatives on my PC, and audio works correctly.
Unfortunately, I am still experiencing a recurring GPU crash inside the Deku Tree on Hookshot v2.0.2, despite the recent AMD shader fixes and the bounded compare-and-swap loops introduced in PR #548.
This appears related to the RX 6600 Deku Tree issue mentioned in the v2.0.2 release notes (#614).
System specifications
GPU: AMD Radeon RX 6600 8 GB (RDNA 2)
CPU: AMD Ryzen 7 5800XT
Graphics API: Vulkan 1.4
Vulkan driver identifier: 0x800161 (as reported by Hookshot)
Hookshot version: v2.0.2 (source 998ef8f9)
Renderer: hookshot_vk.dll
Steps to reproduce
Launch the game using Hookshot v2.0.2.
Load a save and enter the Deku Tree.
Continue playing inside the dungeon.
The graphics device stops responding and Hookshot crashes.
The issue has occurred repeatedly during gameplay inside the Deku Tree.
Actual behavior
Hookshot reports Vulkan submission failures followed by device loss:
[hos Presentation Thread] vk: submit 41353 failed (-4)
[hos Presentation Thread] vk: device lost: reading the fault info (RX_VK_CHECKPOINTS=1 for markers)
[hos Presentation Thread] vk: submit 41354 failed (-4)
Several logs also show an access violation inside AMD's Vulkan driver:
CRASH: exception 0xc0000005
(read 0x38, guest 0xfffff00000000038)
at amdvlk64.dll+0x319b63
The crash backtrace begins with:
amdvlk64.dll+0x319b63
amdvlk64.dll+0x31b9f9
amdvlk64.dll+0x2d8e21
amdvlk64.dll+0x2d8a24
amdvlk64.dll+0x25617b
hookshot_vk.dll+0x183
This suggests a Vulkan device-loss issue involving the AMD driver, although I cannot determine whether the initial trigger is a shader translation issue, a driver bug, or their interaction.
Additional information
The issue persists on v2.0.2, which includes the AMD shader and GPU hang fixes.
The game runs well before the crash, with working audio.
Frame interpolation activity appears in the logs.
The logs contain the suggestion to enable RX_VK_CHECKPOINTS=1 for additional GPU markers.
Multiple crash logs are attached.
Expected behavior
The game should remain stable inside the Deku Tree without losing the Vulkan device or crashing the AMD driver.
Logs
I have attached five Hookshot logs containing repeated crash attempts and Vulkan device-loss errors.
Please let me know if you would like me to collect additional logs using RX_VK_CHECKPOINTS=1, test specific Vulkan settings, or try an experimental build.
Thank you for investigating this issue!
Where in the game
Inside the Deku tree
How often
Every time
Graphics card and driver version
RX 6600
CPU, RAM and operating system
ryzen 7 5800 xt
Changes from the defaults
No response
Other software hooked into the game
No, nothing hooked in
hookshot_log.txt
hookshot_log.1.txt
hookshot_log.2.txt
hookshot_log.3.txt
hookshot_log.4.txt
hookshot_log.txt
Screenshots or video
No response
Before you send it
I encountered the same issue in Kakariko Village; I’m also using an RX 6600, and I’ll attach the log.
hookshot_log.txt
Same crash here on an RX 6650 XT (RDNA 2, 8 GB), AMD driver 0x800161, Ryzen 7 5700X, Windows 11. It happened outside the Deku Tree too: in the Goron area of Death Mountain (Goron City / Dodongo's Cavern), after about 5 minutes of play at 60 fps.
Build: v2.0.2 with
hookshot_vk.dllrebuilt with #700, #701 and #702. Those only change how pipelines are built, and nothing was compiling when it hung: no jobs queued, no draw waiting for a pipeline.The GPU stopped answering first, and the driver crash came afterwards:
The crash address and the backtrace's driver frames are the same as in the report above. The
amdvlk64.dllcrash is the first call into the driver after the device was lost. The cause is the GPU hang before it.Three places on RDNA 2 so far (Deku Tree, Kakariko, the Goron area) point to something common, not one room. Once #734 is in (
RX_VK_CHECKPOINTSon AMD), a run withRX_VK_CHECKPOINTS=1should name the program that was on the GPU when it hung.Same here on an RX 6800 (16 GB), Windows 11, Ryzen 7 5800X3D, v2.0.2, AMD driver 0x800161, so this looks like it affects RDNA 2 generally, not just the 6600 (and not an 8 GB VRAM limit).
Runs well up to this point (steady 60 fps in Kokiri Forest with ~1000 draws/frame). Inside the Great Deku Tree the frame rate drops to ~10 fps, then:
Same pattern as the RX 6650 XT report above. Happy to rerun with
RX_VK_CHECKPOINTS=1once #734 is in a release.Still happens on v2.0.3 (source 73ddf2ad), same RX 6800 / driver 0x800161. Robust buffer access on, default options. About two minutes after loading a save near the Deku Tree, running 45–55 fps with nothing compiling, then straight to:
So the v2.0.3 fixes (buffer pointers, #487) don't cover this one.
Same family on an RX 6700 XT (12 GB), Windows 11, AMD driver 0x800161, v2.0.3 (source 73ddf2ad), Frame pacing On, Resolution 100%, Lanczos.
About 90 minutes into a session, in Kokiri Forest just outside the Great Deku Tree (right after his cutscene), running 47-50 fps with nothing compiling. No device lost this time: a silent hang. The Presentation Thread stops logging entirely, the GPU goes idle (0% 3D), audio/vibration threads keep going, and the last line from the main thread is:
The last frame before it reported
232680 presents, 50.0 fps; 669 draws (0 skipped) ... 3098 pipelines,2.0 draws left out (not ready), 52 jobs queued. Window stayed responding; only a kill recovered it.Log (first 300 and last 4000 lines): https://gist.github.com/Stickman803/d63824e10425a40739840d69e02fbc93
Now on v2.0.5; will report whether it recurs.
Same family on a Radeon 890M iGPU (Ryzen AI Z2 Extreme, ROG Xbox Ally X), Windows 11, AMD driver 32.0.32015.5008 (0x800196), v2.0.5, 8 GB UMA frame buffer (Vulkan reports a 10252 MB device heap).
Loading a save puts the GPU in a device lost. I tried 4 times, with different settings, and each time it happened within seconds of the load, while the area was still coming in. Before the load the game was fine: 60 fps at the title, 30-45 fps in Kokiri on a new game.
RX_VK_VRAM_MB=4096,RX_VK_MIRROR_MB=1024slow submit: 25174.2 ms: slot wait 25176.3, thensubmit 16377 failed (-4). The whole system froze and needed a power-button reset (bugcheck 0x1C8).RX_VK_*caps1 sync waits (2499 ms), thensubmit 11558 failed (-4)1 sync waits (2462 ms), thensubmit 9269 failed (-4)on the host thread, just afterslow submit: 110.2 ms: dispatch 110.1Other things I noticed:
vkCreateSwapchainKHR failed (VkResult -4, extent 1920x1080 ...), after a 9.8 s queue submit). Starting withHOS_FULLSCREEN=1works fine.preset_caps_memory()compares against the 10252 MB device heap, so on an 8 GB UMA setup no preset below High applies its budgets.I haven't run with
RX_VK_CHECKPOINTS=1yet. I can do that, or test #886 (native float atomic add) if a build is available.Tracked in #996, follow there. That issue collects every report of AMD driver crashes, device lost and freezes on Windows, 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.