[Tracking] GPUs without mesh shaders (GTX 9xx/10xx, RX 400/500/5000, Iris Xe/UHD): v2.0.6 fallback reports #1001

Open
opened 2026-11-09 05:39:07 +00:00 by NotRexed · 84 comments
NotRexed commented 2026-11-09 05:39:07 +00:00 (Migrated from github.com)

This issue collects every open report of GPUs without mesh shaders, so there is one place to follow it. The individual reports were closed pointing here; their logs, screenshots and discussion stay in each linked issue.

Summary

The game draws its foliage, grass and many effects with mesh shaders. Before v2.0.6, GPUs without VK_EXT_mesh_shader got:

  • black screens;
  • missing terrain or cel shading;
  • colour noise;
  • 0-10 fps.

The log says this GPU has no mesh shaders. v2.0.6 brings the compute fallback back (PR #779 by Nitnek), with the cause of the device lost that got it removed fixed. The release notes say these cards are untested by the team, so it is not known yet how well they run. Please update to v2.0.6 and post the result here.

GTX 16xx and every RTX card do have mesh shaders, so they are not in this group.

Affected GPUs and versions

  • GPUs: GTX 930M, GTX 1060, GTX 1070 Ti and other Pascal/Maxwell cards; RX 570 / 580 / 580 2048SP (Polaris); RX 5500 XT / 5600 XT / 5700 XT (RDNA1); Intel Iris Xe and UHD 620.
  • Versions: all releases before v2.0.6.

Evidence from the logs

  • #454: the original request for a compute fallback; Lichii build 117 had one.
  • #636: the log line vk: AMD Radeon RX 580 2048SP ... mesh shaders no.
  • #897, #938 (RX 5700 XT, v2.0.5): black terrain, colourful textures and black faces, with VRAM at the allowance.
  • #192: RX 580 8 GB crash after the cutscene. A comment there from an RX 6950 XT on Bazzite is a different problem; see the Linux tracker.

Workarounds

Update to v2.0.6 (https://github.com/NotRexed/Hookshot/releases/tag/v2.0.6).

Reports merged here (19 issues, about 35 people)

Issue Title People GPU Version Key detail
#454 Feature request: compute fallback for GPUs without VK_EXT_mesh_shader… 6 GTX 1070 Ti, Iris Xe, RX 5500 XT, Pascal device-lost-fix Compute fallback for GPUs without VK_EXT_mesh_shader; Lichii build 117 has one; JimLee0629: #640's fallback did not help an RX 5500 XT; PR #792 fallback crashes in RADV…
#192 Crash after cutscene on RX 580 8GB 5 RX 580 8GB, RX 6950 XT (Bazzite), ? v2.0.3 Crash after/during Deku Tree / Navi cutscene. LoadGlobalS16 + narrow stores fixed (low-vram); RX 580 now gets to Deku Tree then crashes (95% of 24 GB RAM), crashes where…
#529 Game runs smoothly then black screen with Audio 3 GTX 1060 no-visual-studio GTX 1060 black with audio at the same cutscene: Pascal has no mesh shaders; maintainer keeps it open as the fallback request (same as #454)
#148 Black screen after Great Deku Tree dialogue on AMD RX 5700 XT – game… 2 RX 5700 XT foliage-linux-updater RDNA1 no mesh shaders: black after Deku Tree; faster-fps warns at start; fallback request #454
#365 LOW FPS, 0% GPU USAGE ON AMD RX 580 2048SP 2 RX 580 2048SP (Linux), Legion Go Z1E foliage-linux-updater ~7 fps with near 0% GPU use on Polaris (no mesh shaders); Z1E "same here"
#383 Intel IRIS XE Bloom error & performance 2 Iris Xe foliage-linux-updater Iris Xe: 8-15 fps, bloom/exposure; Gen12 iGPUs have no mesh shaders (#454); X360Z also posts in #17
#424 The emulator fixed the RX 5700 XT almost completely. 2 RX 5700 XT early Lichii 117 renders the map on RX 5700 XT; only black square lines left: mesh fallback request (#454)
#694 AMD RX 570 Black screen 2 RX 570, Radeon 860M v2.0.2 RX 570 (Polaris, no mesh shaders): black at the Deku Tree part with AMD driver error; startup "no mesh shader" dialog screenshot; 860M comment (generated-looking text)
#332 After the scenes, it stays on this black screen and no longer loads o… 1 RX 5500 XT? pre-foliage Black after cutscenes, 0.8 fps, 317 pipelines 140 s, 116 failed programs (no mesh shaders on RX 5500 XT likely); no follow-up
#380 Texture glitches on RX580 1 RX 580 4GB v1 Polaris: colour noise/solid blue world, AV1 movies black (AV1 extension notice added in no-visual-studio), CPU-bound replay, VRAM full; asks for mesh fallback (#454)
#401 Menu crash in pc low config 1 GeForce 930M ? Menu crash on low-spec laptop (930M, no mesh shaders likely); asked log
#504 VIsual Glitches and Games Freezes when i try to save 1 RX 5600 XT 6GB new-installer Freezes and invisible/white Link: reporter says mostly normal now, a few white textures, 1 s black screens, save works
#553 FPS issues and freezing when hitting enemies; it freezes after about… 1 RX 5500 XT ? Freezes when hitting enemies (effects compile) on RX 5500 XT (RDNA1, no mesh shaders); no log
#609 IRIS XE Visual Fragments & Bloom error 1 Iris Xe honest-eta Iris Xe 3-4 fps, HUD flashing, random polygons, bloom (no mesh shaders, #454)
#636 crash after deku tree scene 1 ? honest-eta Crash after the Deku Tree scene before Navi appears, RAM filling (log, 10 GB free disk)
#765 No Cel Shading (at least) 1 RX 5700 XT (RADV) v2.0.3 No cel shading, wood textures missing (RDNA1, no mesh shaders)
#802 Title: AMD RX 5500 XT – Performance and shader compilation issues 1 RX 5500 XT v2.0.4 RDNA1: fps drops, missing shaders, freezes with music playing; no log
#897 Graphics Rendering Bug – Black Terrain and Broken Textures (AMD Radeo… 1 RX 5700 XT (no mesh) v2.0.5 Black terrain and corrupted textures after a stutter, again after 10 min (RDNA1); log: VRAM at the allowance, 1371 eviction events
#938 PRoblem with a Menu Pause (Crashes after back to game) Texture Bugs 1 RX 5700 XT v2.0.5 Black faces, colourful textures on houses, crash when closing the pause menu (RDNA1, no mesh shaders); log: VRAM at the allowance, 558 eviction events

Adding a report

Please update to v2.0.6 first (https://github.com/NotRexed/Hookshot/releases/tag/v2.0.6; Update next to Play in the launcher). Please post: GPU, driver, OS, does it start and reach gameplay on v2.0.6, fps in Kokiri Forest, and hookshot_log.txt.

All tracking issues

  • #993 Garbled / rainbow textures that get worse over play time (VRAM over budget, mostly 4-8 GB cards)
  • #994 Floating trees, missing mountains and vanishing near vegetation
  • #995 Low FPS with low GPU usage (CPU-bound), FPS drops in Castle Town / Hyrule Field, shader stutter
  • #996 AMD on Windows: driver crash, device lost or freeze (RX 5000-9000, Deku Tree / after cutscenes)
  • #997 AMD handhelds and APUs (ROG Ally / Ally X, Legion Go, Radeon 780M/860M/890M): black screen, device lost, reboot
  • #998 Black screen with audio after the intro / at the Deku Tree cutscene
  • #999 Intel Arc and Core Ultra iGPUs: device lost, black screen after the intro, Linux ANV crashes
  • #1000 Linux and Steam Deck: GPU hangs, crashes, low FPS and build failures
  • #1001 GPUs without mesh shaders (GTX 9xx/10xx, RX 400/500/5000, Iris Xe/UHD): v2.0.6 fallback reports
  • #1002 Invisible or missing objects, walls and effects
  • #1003 Antivirus false positives on HookshotBuilder.exe (Defender Trojan:Script/Wacatac.H!ml)
  • #1004 Lighting: overexposure, over-bright bloom, crushed or black shadows, black faces
  • #1005 Flicker and flashing: brightness pulses, one-frame flashes, doubled image with frame pacing
  • #1006 AMD rendering: white silhouettes, block squares / grid lines, no anti-aliasing (networks in software)
  • #1007 Feature requests (collected)
This issue collects every open report of GPUs without mesh shaders, so there is one place to follow it. The individual reports were closed pointing here; their logs, screenshots and discussion stay in each linked issue. ## Summary The game draws its foliage, grass and many effects with mesh shaders. Before v2.0.6, GPUs without `VK_EXT_mesh_shader` got: - black screens; - missing terrain or cel shading; - colour noise; - 0-10 fps. The log says `this GPU has no mesh shaders`. **v2.0.6 brings the compute fallback back** (PR #779 by Nitnek), with the cause of the device lost that got it removed fixed. The release notes say these cards are untested by the team, so it is not known yet how well they run. Please update to v2.0.6 and post the result here. GTX 16xx and every RTX card do have mesh shaders, so they are not in this group. ## Affected GPUs and versions - **GPUs:** GTX 930M, GTX 1060, GTX 1070 Ti and other Pascal/Maxwell cards; RX 570 / 580 / 580 2048SP (Polaris); RX 5500 XT / 5600 XT / 5700 XT (RDNA1); Intel Iris Xe and UHD 620. - **Versions:** all releases before v2.0.6. ## Evidence from the logs - **#454:** the original request for a compute fallback; Lichii build 117 had one. - **#636:** the log line `vk: AMD Radeon RX 580 2048SP ... mesh shaders no`. - **#897, #938** (RX 5700 XT, v2.0.5): black terrain, colourful textures and black faces, with VRAM at the allowance. - **#192:** RX 580 8 GB crash after the cutscene. A comment there from an RX 6950 XT on Bazzite is a different problem; see the Linux tracker. ## Workarounds Update to v2.0.6 (https://github.com/NotRexed/Hookshot/releases/tag/v2.0.6). ## Reports merged here (19 issues, about 35 people) | Issue | Title | People | GPU | Version | Key detail | |---|---|---|---|---|---| | #454 | Feature request: compute fallback for GPUs without VK_EXT_mesh_shader… | 6 | GTX 1070 Ti, Iris Xe, RX 5500 XT, Pascal | device-lost-fix | Compute fallback for GPUs without VK_EXT_mesh_shader; Lichii build 117 has one; JimLee0629: #640's fallback did not help an RX 5500 XT; PR #792 fallback crashes in RADV… | | #192 | Crash after cutscene on RX 580 8GB | 5 | RX 580 8GB, RX 6950 XT (Bazzite), ? | v2.0.3 | Crash after/during Deku Tree / Navi cutscene. LoadGlobalS16 + narrow stores fixed (low-vram); RX 580 now gets to Deku Tree then crashes (95% of 24 GB RAM), crashes where… | | #529 | Game runs smoothly then black screen with Audio | 3 | GTX 1060 | no-visual-studio | GTX 1060 black with audio at the same cutscene: Pascal has no mesh shaders; maintainer keeps it open as the fallback request (same as #454) | | #148 | Black screen after Great Deku Tree dialogue on AMD RX 5700 XT – game… | 2 | RX 5700 XT | foliage-linux-updater | RDNA1 no mesh shaders: black after Deku Tree; faster-fps warns at start; fallback request #454 | | #365 | LOW FPS, 0% GPU USAGE ON AMD RX 580 2048SP | 2 | RX 580 2048SP (Linux), Legion Go Z1E | foliage-linux-updater | ~7 fps with near 0% GPU use on Polaris (no mesh shaders); Z1E "same here" | | #383 | Intel IRIS XE Bloom error & performance | 2 | Iris Xe | foliage-linux-updater | Iris Xe: 8-15 fps, bloom/exposure; Gen12 iGPUs have no mesh shaders (#454); X360Z also posts in #17 | | #424 | The emulator fixed the RX 5700 XT almost completely. | 2 | RX 5700 XT | early | Lichii 117 renders the map on RX 5700 XT; only black square lines left: mesh fallback request (#454) | | #694 | AMD RX 570 Black screen | 2 | RX 570, Radeon 860M | v2.0.2 | RX 570 (Polaris, no mesh shaders): black at the Deku Tree part with AMD driver error; startup "no mesh shader" dialog screenshot; 860M comment (generated-looking text) | | #332 | After the scenes, it stays on this black screen and no longer loads o… | 1 | RX 5500 XT? | pre-foliage | Black after cutscenes, 0.8 fps, 317 pipelines 140 s, 116 failed programs (no mesh shaders on RX 5500 XT likely); no follow-up | | #380 | Texture glitches on RX580 | 1 | RX 580 4GB | v1 | Polaris: colour noise/solid blue world, AV1 movies black (AV1 extension notice added in no-visual-studio), CPU-bound replay, VRAM full; asks for mesh fallback (#454) | | #401 | Menu crash in pc low config | 1 | GeForce 930M | ? | Menu crash on low-spec laptop (930M, no mesh shaders likely); asked log | | #504 | VIsual Glitches and Games Freezes when i try to save | 1 | RX 5600 XT 6GB | new-installer | Freezes and invisible/white Link: reporter says mostly normal now, a few white textures, 1 s black screens, save works | | #553 | FPS issues and freezing when hitting enemies; it freezes after about… | 1 | RX 5500 XT | ? | Freezes when hitting enemies (effects compile) on RX 5500 XT (RDNA1, no mesh shaders); no log | | #609 | IRIS XE Visual Fragments & Bloom error | 1 | Iris Xe | honest-eta | Iris Xe 3-4 fps, HUD flashing, random polygons, bloom (no mesh shaders, #454) | | #636 | crash after deku tree scene | 1 | ? | honest-eta | Crash after the Deku Tree scene before Navi appears, RAM filling (log, 10 GB free disk) | | #765 | No Cel Shading (at least) | 1 | RX 5700 XT (RADV) | v2.0.3 | No cel shading, wood textures missing (RDNA1, no mesh shaders) | | #802 | Title: AMD RX 5500 XT – Performance and shader compilation issues | 1 | RX 5500 XT | v2.0.4 | RDNA1: fps drops, missing shaders, freezes with music playing; no log | | #897 | Graphics Rendering Bug – Black Terrain and Broken Textures (AMD Radeo… | 1 | RX 5700 XT (no mesh) | v2.0.5 | Black terrain and corrupted textures after a stutter, again after 10 min (RDNA1); log: VRAM at the allowance, 1371 eviction events | | #938 | PRoblem with a Menu Pause (Crashes after back to game) Texture Bugs | 1 | RX 5700 XT | v2.0.5 | Black faces, colourful textures on houses, crash when closing the pause menu (RDNA1, no mesh shaders); log: VRAM at the allowance, 558 eviction events | ## Adding a report Please update to v2.0.6 first (https://github.com/NotRexed/Hookshot/releases/tag/v2.0.6; Update next to Play in the launcher). Please post: GPU, driver, OS, does it start and reach gameplay on v2.0.6, fps in Kokiri Forest, and `hookshot_log.txt`. ## All tracking issues - #993 Garbled / rainbow textures that get worse over play time (VRAM over budget, mostly 4-8 GB cards) - #994 Floating trees, missing mountains and vanishing near vegetation - #995 Low FPS with low GPU usage (CPU-bound), FPS drops in Castle Town / Hyrule Field, shader stutter - #996 AMD on Windows: driver crash, device lost or freeze (RX 5000-9000, Deku Tree / after cutscenes) - #997 AMD handhelds and APUs (ROG Ally / Ally X, Legion Go, Radeon 780M/860M/890M): black screen, device lost, reboot - #998 Black screen with audio after the intro / at the Deku Tree cutscene - #999 Intel Arc and Core Ultra iGPUs: device lost, black screen after the intro, Linux ANV crashes - #1000 Linux and Steam Deck: GPU hangs, crashes, low FPS and build failures - #1001 GPUs without mesh shaders (GTX 9xx/10xx, RX 400/500/5000, Iris Xe/UHD): v2.0.6 fallback reports - #1002 Invisible or missing objects, walls and effects - #1003 Antivirus false positives on HookshotBuilder.exe (Defender Trojan:Script/Wacatac.H!ml) - #1004 Lighting: overexposure, over-bright bloom, crushed or black shadows, black faces - #1005 Flicker and flashing: brightness pulses, one-frame flashes, doubled image with frame pacing - #1006 AMD rendering: white silhouettes, block squares / grid lines, no anti-aliasing (networks in software) - #1007 Feature requests (collected)
s074 commented 2026-11-09 07:11:40 +00:00 (Migrated from github.com)

GPU: GTX 1080 Ti
Driver: 582.78
OS: Windows 11
Does it start and reach gameplay on v2.0.6? No, it gets to the menus, but as soon as you load a game, it freezes and stays on a black loading screen. In previous builds (v2.0.5) I was able to play it fine, although it had the visual defects from lack of mesh shader support.
FPS in Kokiri Forest: Does not get there anymore
Logs: hookshot_log.txt

One important detail is that the logs show that the window was closed, but I didn't close it.

I also tested a PR that was closed in favor of the merged one, and that one works flawlessly, see #792

**GPU**: GTX 1080 Ti **Driver**: 582.78 **OS**: Windows 11 **Does it start and reach gameplay on v2.0.6?** No, it gets to the menus, but as soon as you load a game, it freezes and stays on a black loading screen. In previous builds (v2.0.5) I was able to play it fine, although it had the visual defects from lack of mesh shader support. **FPS in Kokiri Forest**: Does not get there anymore **Logs**: [hookshot_log.txt](https://github.com/user-attachments/files/34567554/hookshot_log.txt) One important detail is that the logs show that the window was closed, but I didn't close it. I also tested a PR that was closed in favor of the merged one, and that one works flawlessly, see https://git.magicbean.dev/MagicBeanDev/Hookshot/pulls/792
Flo-za commented 2026-11-09 09:23:30 +00:00 (Migrated from github.com)

Fallback report from a card that has mesh shaders but runs with RX_VK_NO_MESH=1 forced, as the workaround for the AMD device lost in #996: RX 6800 (16 GB), Adrenalin 26.10.1 (0x800161), Windows 11, v2.0.7.

Stable and ~60 fps with the fallback (it gets past burning the web, which crashes every time on the mesh path). But in the Great Deku Tree, B1 (around the torch / chest room), with the fallback:

  • large parts of the rock walls are missing: a black void where the walls should be (first screenshot, right half);
  • one surface renders as a flat untextured teal block next to Navi (second screenshot).

Screenshots:

Image Image
Fallback report from a card that *has* mesh shaders but runs with `RX_VK_NO_MESH=1` forced, as the workaround for the AMD device lost in #996: **RX 6800 (16 GB), Adrenalin 26.10.1** (0x800161), Windows 11, **v2.0.7**. Stable and ~60 fps with the fallback (it gets past burning the web, which crashes every time on the mesh path). But in the **Great Deku Tree, B1** (around the torch / chest room), with the fallback: - large parts of the rock walls are missing: a black void where the walls should be (first screenshot, right half); - one surface renders as a flat untextured teal block next to Navi (second screenshot). Screenshots: <img width="2510" height="1382" alt="Image" src="https://github.com/user-attachments/assets/4747cce8-9390-4754-96f4-e038d35210da" /> <img width="2544" height="1394" alt="Image" src="https://github.com/user-attachments/assets/387ae5c5-3e59-42d7-b7ad-d015515c50f9" />
ALBIHANY commented 2026-11-09 09:58:04 +00:00 (Migrated from github.com)

GPU: GTX 1060
CPU: I7 Gen8
Memory :32GB
OS: Windows 11
log:
hookshot_log.1.txt

The game run smoothly up to the for the first cutscene until the tree start talking to Navi the screen turn black and nothing happen, previous build would give me black screen too but i could hear the audio of dialogs in the background, i want also to add that on Litch emulator, it would go until before this same point it will take little time load the shaders and load my issue with the emulator is the performance and the low FPS

GPU: GTX 1060 CPU: I7 Gen8 Memory :32GB OS: Windows 11 log: [hookshot_log.1.txt](https://github.com/user-attachments/files/34573223/hookshot_log.1.txt) The game run smoothly up to the for the first cutscene until the tree start talking to Navi the screen turn black and nothing happen, previous build would give me black screen too but i could hear the audio of dialogs in the background, i want also to add that on Litch emulator, it would go until before this same point it will take little time load the shaders and load my issue with the emulator is the performance and the low FPS
dukevyner commented 2026-11-09 10:18:14 +00:00 (Migrated from github.com)

GPU: GTX 1070
driver: game ready 582.78
OS: Windows 10
does it start and reach gameplay on v2.0.6: black screen after link wakes up in cut scene
fps in Kokiri Forest: N/A
hookshot_log.txt

GPU: GTX 1070 driver: game ready 582.78 OS: Windows 10 does it start and reach gameplay on v2.0.6: black screen after link wakes up in cut scene fps in Kokiri Forest: N/A [hookshot_log.txt](https://github.com/user-attachments/files/34574218/hookshot_log.txt)
zhiying-326 commented 2026-11-09 12:11:34 +00:00 (Migrated from github.com)

Intel Iris Xe (Gen12.2), Linux ANV, v2.0.7: the fallback reaches the first mesh draw and the driver segfaults inside libvulkan_intel.so, with RSS climbing 5.7 -> 22.5 GB at the same time

This is the Iris Xe / Gen12.0-12.2 case from the tracker. Those parts have no VK_EXT_mesh_shader at all (features.txt: VK_EXT_mesh_shader DONE (anv/gfx12.5+, ...)), so everything below is the fallback path.

System. Intel Iris Xe Graphics (Raptor Lake-U, gfx12.2), Mesa 26.2.6 (ANV), Vulkan 1.4.354; i5-1345U, 30 GB, Arch Linux, kernel 7.2.14, niri/Wayland. Hookshot v2.0.7, built from the Linux AppImage with my own copy of the game (0400486024DEC000 / v131072 / e0f3ccfa), 0 failures.

vk: Intel(R) Iris(R) Xe Graphics (RPL-U), Vulkan 1.4, driver 0x6802006; mesh shaders no, host memory import yes, pipeline libraries yes
vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback)
vk: mesh fallback scratch: 256 MB, GPU argument setup ready

What works

With RX_VK_PRECOMPILE=0 the window opens, the title screen renders, and the intro movie plays to the end. That part is solid now.

What happens at the first 3D frame

The first mesh draw is submitted and the driver crashes. The kernel log:

Presentation Th[95709]: segfault at 4 ip 00007f3d52e1fa14 sp 00007f3d3bfd1880 error 4
                       in libvulkan_intel.so[a1fa14,7f3d5240b000+acf000] likely on CPU 1 (core 0, socket 0)
systemd-coredump: Process 95673 (hookshot) terminated abnormally with signal 11/SEGV
systemd:          Consumed 13min 6.192s CPU time over 3min 8.632s wall clock time, 26G memory peak

Hookshot's own handler agrees (0xc0000005, read 0x4):

CRASH: exception 0xc0000005 (read 0x4, guest 0xfffff00000000004) at /usr/lib/libvulkan_intel.so+0xa1fa14
CRASH: host backtrace: hookshot+0x62664c9 hookshot+0x1bfb2761 libc.so.6+0x3e6f0
       libvulkan_intel.so+0xa1fa14 libvulkan_intel.so+0xa2172b libvulkan_intel.so+0x9f59f2
       libvulkan_intel.so+0x9e4b2e libvulkan_intel.so+0xa16c9b libvulkan_intel.so+0xa04afa
       libvulkan_intel.so+0x9f86ee libvulkan_intel.so+0x4eca6f libvulkan_intel.so+0x4f3bc9
       libvulkan_intel.so+0x4f41b0 libvulkan_intel.so+0x4f8cd5
       hookshot_vk.so+0x2fbdfb hookshot_vk.so+0x2e6801 hookshot_vk.so+0x3717a6
       hookshot_vk.so+0x36d151 hookshot_vk.so+0x36add5 hookshot_vk.so+0x3679e7

The two lines before it are the draw and the pool imports it ran after:

vk: mesh draw kind 0: 0 2 1680, indirect 0 count 0 max 0 stride 0
vk: mesh draw: program 1f5f, 3 stages:
    [0: stage 1, code 0x7ffb119000, sph type 5 bits24-25 0, isbe 0 payload 0]
    [1: stage 6, code 0x7ffae43c00, sph type 1 bits24-25 0, isbe 1 payload 256]
    [2: stage 7, code 0x7ffae4fd00, sph type 3 bits24-25 2, isbe 1 payload 256]
vk: pool 0x104164a000+0x60 imported in 2.3 ms (16 imports, 59 ms in all)

Note it is a small draw: d.y is 2, so groups = {2, 1, 1} - two task workgroups with a 256-word payload each. It does not look like a case that needs much scratch.

Memory, sampled once a second (RSS, anonymous RSS, GPU clock):

time RSS anon GPU
19:57:41 - 19:58:04 5701 -> 5688 MB, flat 1297 MB 300 MHz, spikes to 1250
19:58:06 6618 MB 1305 MB 1250 MHz
19:58:07 9215 MB 1305 MB 300 MHz
19:58:08 11580 MB 1305 MB 300 MHz
19:58:09 14200 MB 1305 MB 883 MHz
19:58:11 16196 MB 1305 MB 333 MHz
19:58:12 18348 MB 1305 MB 300 MHz
19:58:13 20480 MB 1305 MB 300 MHz
19:58:14 22566 MB 1305 MB 300 MHz

RssAnon stays flat at ~1.3 GB the whole time - the growth is not a malloc leak in the renderer, it is file/shmem pages, i.e. the guest memory imported in place. RSS then peaked at 26 GB before the process was reaped. It was not the OOM killer that ended the run; the SEGV did.

A second, independent reproduction: the leak needs no game at all

./bin/hookshot --prepare-shaders (no game, no window, nothing drawn) leaks on its own:

  • 14 minutes flat at 4.0 GB, progress @@progress 0.020 -> 0.028
  • then 4.0 -> 18.7 GB in 6 minutes (~4.5 GB/min) while the progress value did not move at all
  • I stopped it at 18.7 GB; RssAnon was 18.16 GB and RssFile 27 MB here, so on this path it is heap

Minute-by-minute: 19:35:50 rss=4.0GB prog=0.028 / 19:36:50 8.5GB / 19:37:50 13.0GB / 19:39:50 14.2GB / 19:40:50 17.6GB / all at prog=0.028.

The active work at that point was mesh program translation (vk: mesh <key>: threads 32 max v 126 p 126 payload 64, ... in the log). With --prepare-shaders there is no game, no window and no draw, so this one is entirely inside the preparation of the fallback programs.

For comparison, a v2.0.6-era build without the fallback prepared 14179 programs in 55.5 s with flat memory, so the translation and Mesa compilation themselves are fine on this machine.

Workaround, and what it does not fix

RX_VK_PRECOMPILE=0 gets past the preparation leak and gives a window and a playable intro. It cannot get past the crash at the first mesh draw.

Cross-reference

#1072 (RX 5700 XT, RDNA1) reports the same shape - the video plays, then a black screen and RAM filling to the limit. That is a different vendor and a different driver, both without mesh shaders, so whatever is growing here is likely in gpu/vk and not in ANV alone. The difference in my log is that the run also takes a SIGSEGV inside the driver at that exact frame, so the crash and the growth should probably be looked at together.

I have not built #1023, so this is a guess from reading it, not a result. That PR says the fallback's payload address was read from the push constants using its byte offset (64) as a member index, so every task-driven program read and wrote its payload at a garbage address, and that almost every fallback program failed spirv-val before its fixes and all 1,347 pass after them.

The draw that crashes this machine reads as [1: stage 6, ..., isbe 1 payload 256] - it is task-driven with a payload. Passing invalid SPIR-V to ANV would be a plausible way to get a SEGV inside libvulkan_intel.so rather than a clean rejection, which is what I see here. If #1023 is the right fix for that, this report is a second data point for it on a non-AMD driver; if not, the report stands on its own.

I can build and run any branch on this machine (Iris Xe / Gen12.2, Mesa ANV, Linux) and report logs, per-second memory samples, RX_VK_DUMP_* output, or A/B against a build with the fallback off. If a build of #1023 is useful, say which commit and I will run it here - that is the part I can actually test that nobody in that PR has an Intel card for. I have a hookshot_log.txt and the core file from this run.

### Intel Iris Xe (Gen12.2), Linux ANV, v2.0.7: the fallback reaches the first mesh draw and the driver segfaults inside `libvulkan_intel.so`, with RSS climbing 5.7 -> 22.5 GB at the same time This is the Iris Xe / Gen12.0-12.2 case from the tracker. Those parts have no `VK_EXT_mesh_shader` at all (`features.txt`: `VK_EXT_mesh_shader DONE (anv/gfx12.5+, ...)`), so everything below is the fallback path. **System.** Intel Iris Xe Graphics (Raptor Lake-U, gfx12.2), Mesa 26.2.6 (ANV), Vulkan 1.4.354; i5-1345U, 30 GB, Arch Linux, kernel 7.2.14, niri/Wayland. Hookshot v2.0.7, built from the Linux AppImage with my own copy of the game (0400486024DEC000 / v131072 / e0f3ccfa), 0 failures. ``` vk: Intel(R) Iris(R) Xe Graphics (RPL-U), Vulkan 1.4, driver 0x6802006; mesh shaders no, host memory import yes, pipeline libraries yes vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback) vk: mesh fallback scratch: 256 MB, GPU argument setup ready ``` ### What works With `RX_VK_PRECOMPILE=0` the window opens, the title screen renders, and the intro movie plays to the end. That part is solid now. ### What happens at the first 3D frame The first mesh draw is submitted and the driver crashes. The kernel log: ``` Presentation Th[95709]: segfault at 4 ip 00007f3d52e1fa14 sp 00007f3d3bfd1880 error 4 in libvulkan_intel.so[a1fa14,7f3d5240b000+acf000] likely on CPU 1 (core 0, socket 0) systemd-coredump: Process 95673 (hookshot) terminated abnormally with signal 11/SEGV systemd: Consumed 13min 6.192s CPU time over 3min 8.632s wall clock time, 26G memory peak ``` Hookshot's own handler agrees (`0xc0000005`, read 0x4): ``` CRASH: exception 0xc0000005 (read 0x4, guest 0xfffff00000000004) at /usr/lib/libvulkan_intel.so+0xa1fa14 CRASH: host backtrace: hookshot+0x62664c9 hookshot+0x1bfb2761 libc.so.6+0x3e6f0 libvulkan_intel.so+0xa1fa14 libvulkan_intel.so+0xa2172b libvulkan_intel.so+0x9f59f2 libvulkan_intel.so+0x9e4b2e libvulkan_intel.so+0xa16c9b libvulkan_intel.so+0xa04afa libvulkan_intel.so+0x9f86ee libvulkan_intel.so+0x4eca6f libvulkan_intel.so+0x4f3bc9 libvulkan_intel.so+0x4f41b0 libvulkan_intel.so+0x4f8cd5 hookshot_vk.so+0x2fbdfb hookshot_vk.so+0x2e6801 hookshot_vk.so+0x3717a6 hookshot_vk.so+0x36d151 hookshot_vk.so+0x36add5 hookshot_vk.so+0x3679e7 ``` The two lines before it are the draw and the pool imports it ran after: ``` vk: mesh draw kind 0: 0 2 1680, indirect 0 count 0 max 0 stride 0 vk: mesh draw: program 1f5f, 3 stages: [0: stage 1, code 0x7ffb119000, sph type 5 bits24-25 0, isbe 0 payload 0] [1: stage 6, code 0x7ffae43c00, sph type 1 bits24-25 0, isbe 1 payload 256] [2: stage 7, code 0x7ffae4fd00, sph type 3 bits24-25 2, isbe 1 payload 256] vk: pool 0x104164a000+0x60 imported in 2.3 ms (16 imports, 59 ms in all) ``` Note it is a small draw: `d.y` is 2, so `groups = {2, 1, 1}` - two task workgroups with a 256-word payload each. It does not look like a case that needs much scratch. **Memory, sampled once a second** (RSS, anonymous RSS, GPU clock): | time | RSS | anon | GPU | |---|---|---|---| | 19:57:41 - 19:58:04 | 5701 -> 5688 MB, flat | 1297 MB | 300 MHz, spikes to 1250 | | 19:58:06 | 6618 MB | 1305 MB | **1250 MHz** | | 19:58:07 | 9215 MB | 1305 MB | 300 MHz | | 19:58:08 | 11580 MB | 1305 MB | 300 MHz | | 19:58:09 | 14200 MB | 1305 MB | 883 MHz | | 19:58:11 | 16196 MB | 1305 MB | 333 MHz | | 19:58:12 | 18348 MB | 1305 MB | 300 MHz | | 19:58:13 | 20480 MB | 1305 MB | 300 MHz | | 19:58:14 | 22566 MB | 1305 MB | 300 MHz | `RssAnon` stays flat at ~1.3 GB the whole time - **the growth is not a malloc leak in the renderer**, it is file/shmem pages, i.e. the guest memory imported in place. RSS then peaked at 26 GB before the process was reaped. It was not the OOM killer that ended the run; the SEGV did. ### A second, independent reproduction: the leak needs no game at all `./bin/hookshot --prepare-shaders` (no game, no window, nothing drawn) leaks on its own: - 14 minutes flat at 4.0 GB, progress `@@progress 0.020 -> 0.028` - then 4.0 -> 18.7 GB in 6 minutes (~4.5 GB/min) while the progress value did not move at all - I stopped it at 18.7 GB; `RssAnon` was 18.16 GB and `RssFile` 27 MB here, so on this path it *is* heap Minute-by-minute: `19:35:50 rss=4.0GB prog=0.028` / `19:36:50 8.5GB` / `19:37:50 13.0GB` / `19:39:50 14.2GB` / `19:40:50 17.6GB` / all at `prog=0.028`. The active work at that point was mesh program translation (`vk: mesh <key>: threads 32 max v 126 p 126 payload 64, ...` in the log). With `--prepare-shaders` there is no game, no window and no draw, so this one is entirely inside the preparation of the fallback programs. For comparison, a v2.0.6-era build without the fallback prepared 14179 programs in 55.5 s with flat memory, so the translation and Mesa compilation themselves are fine on this machine. ### Workaround, and what it does not fix `RX_VK_PRECOMPILE=0` gets past the preparation leak and gives a window and a playable intro. It cannot get past the crash at the first mesh draw. ### Cross-reference #1072 (RX 5700 XT, RDNA1) reports the same shape - the video plays, then a black screen and RAM filling to the limit. That is a different vendor and a different driver, both without mesh shaders, so whatever is growing here is likely in `gpu/vk` and not in ANV alone. The difference in my log is that the run also takes a SIGSEGV inside the driver at that exact frame, so the crash and the growth should probably be looked at together. ### Possibly related: PR #1023's payload-address fix I have not built #1023, so this is a guess from reading it, not a result. That PR says the fallback's payload address was read from the push constants using its byte offset (64) as a member index, so **every task-driven program read and wrote its payload at a garbage address**, and that almost every fallback program failed `spirv-val` before its fixes and all 1,347 pass after them. The draw that crashes this machine reads as `[1: stage 6, ..., isbe 1 payload 256]` - it is task-driven with a payload. Passing invalid SPIR-V to ANV would be a plausible way to get a SEGV inside `libvulkan_intel.so` rather than a clean rejection, which is what I see here. If #1023 is the right fix for that, this report is a second data point for it on a non-AMD driver; if not, the report stands on its own. I can build and run any branch on this machine (Iris Xe / Gen12.2, Mesa ANV, Linux) and report logs, per-second memory samples, `RX_VK_DUMP_*` output, or A/B against a build with the fallback off. If a build of #1023 is useful, say which commit and I will run it here - that is the part I can actually test that nobody in that PR has an Intel card for. I have a `hookshot_log.txt` and the core file from this run.
AndreitaRoll commented 2026-11-09 12:31:02 +00:00 (Migrated from github.com)

Hello! First of all, thank you for your work on Hookshot! I'm experiencing a severe slowdown / freeze after the first opening cinematic, when the game transitions into the next scene. The game initially runs at approximately 60 FPS, but after the opening cinematic it becomes extremely slow and eventually stops responding.

System information:

  • Hookshot version: v2.0.7
  • GPU: NVIDIA GeForce GTX 1060 6GB
  • Graphics API: Vulkan 1.4
  • Operating system: Windows 11

I'm attaching the complete redacted log file for investigation.

hookshot_log.txt

Thank you for your time and for investigating compatibility with older NVIDIA GPUs!

Hello! First of all, thank you for your work on Hookshot! I'm experiencing a severe slowdown / freeze after the first opening cinematic, when the game transitions into the next scene. The game initially runs at approximately 60 FPS, but after the opening cinematic it becomes extremely slow and eventually stops responding. System information: - Hookshot version: v2.0.7 - GPU: NVIDIA GeForce GTX 1060 6GB - Graphics API: Vulkan 1.4 - Operating system: Windows 11 - I'm attaching the complete redacted log file for investigation. [hookshot_log.txt](https://github.com/user-attachments/files/34578817/hookshot_log.txt) Thank you for your time and for investigating compatibility with older NVIDIA GPUs!
spacefarergames commented 2026-11-09 12:57:57 +00:00 (Migrated from github.com)

hookshot_log.txt
Same issue happens here on AMD Ryzen 5.

[hookshot_log.txt](https://github.com/user-attachments/files/34579724/hookshot_log.txt) Same issue happens here on AMD Ryzen 5.
napr0 commented 2026-11-09 14:45:37 +00:00 (Migrated from github.com)

That is exactly what happens. These screenshots are from Lichii because I was comparing it with Hookshot, but aside from that detail, this is exactly the issue I’m experiencing.

It’s fixed in [Lichii build 125](https://github.com/zortos293/Lichii/releases/tag/build-125), but performance drops significantly.
hookshot_log.txt

Image Image Image
That is exactly what happens. These screenshots are from Lichii because I was comparing it with Hookshot, but aside from that detail, this is exactly the issue I’m experiencing. It’s fixed in [[Lichii build 125](https://github.com/zortos293/Lichii/releases/tag/build-125)](https://github.com/zortos293/Lichii/releases/tag/build-125), but performance drops significantly. [hookshot_log.txt](https://github.com/user-attachments/files/34584004/hookshot_log.txt) <img width="1918" height="1029" alt="Image" src="https://github.com/user-attachments/assets/0259065a-e09d-4768-97d9-82e917b66ae5" /> <img width="1915" height="1026" alt="Image" src="https://github.com/user-attachments/assets/7b8e6a92-cff4-493d-ab11-28b211087fcd" /> <img width="1673" height="1066" alt="Image" src="https://github.com/user-attachments/assets/39708288-9eef-45bf-828a-0df6181d4e04" />
NotRexed commented 2026-11-09 15:47:33 +00:00 (Migrated from github.com)

Common lead across the fallback reports: logs from a GTX 970 (v2.0.8), a GTX 1070 and #1056 all repeat vk: view of texture ... (vk 139) as vk 95 type 1 ... not made, the same BC4 block view (a BC4 array viewed as R16G16B16A16_UINT) that #1101 found refused on RADV. That failed view is being looked at as the shared cause of the hangs at 0 fps after loading a save.

Common lead across the fallback reports: logs from a GTX 970 (v2.0.8), a GTX 1070 and #1056 all repeat `vk: view of texture ... (vk 139) as vk 95 type 1 ... not made`, the same BC4 block view (a BC4 array viewed as R16G16B16A16_UINT) that #1101 found refused on RADV. That failed view is being looked at as the shared cause of the hangs at 0 fps after loading a save.
jovafigueroa commented 2026-11-09 16:40:48 +00:00 (Migrated from github.com)

Hookshot Version
v2.0.9

GPU
GTX 960M (4GB)

OS
Windows 10

Hookshot Log

hookshot_log.txt

The game starts, but it freezes when the logo appears.

Image
**Hookshot Version** v2.0.9 **GPU** GTX 960M (4GB) **OS** Windows 10 **Hookshot Log** [hookshot_log.txt](https://github.com/user-attachments/files/34588870/hookshot_log.txt) The game starts, but it freezes when the logo appears. <img width="1920" height="1080" alt="Image" src="https://github.com/user-attachments/assets/a45560e2-fc76-43d8-95c2-0f59c4d87f78" />
ramsmtz commented 2026-11-09 16:59:51 +00:00 (Migrated from github.com)

Additional report — GTX 1070, Windows, v2.0.7

Hookshot starts normally, but loading my Ocarina of Time Remake save results in a black loading screen. The audio cuts out, and it remains frozen after waiting 10 minutes.

  • Hookshot: v2.0.7
  • GPU: NVIDIA GeForce GTX 1070
  • NVIDIA driver: 582.78
  • OS: Windows 11
  • Result: hangs while loading the save; does not reach gameplay
    In hookshot_log.1.txt, line 992 reports: vk: fallback: the compute pipeline of 4fd4fe678f729933 could not be made, followed by a mesh draw program entry.

I’ve attached the full log for investigation.

hookshot_log.1.txt

Additional report — GTX 1070, Windows, v2.0.7 Hookshot starts normally, but loading my Ocarina of Time Remake save results in a black loading screen. The audio cuts out, and it remains frozen after waiting 10 minutes. - Hookshot: v2.0.7 - GPU: NVIDIA GeForce GTX 1070 - NVIDIA driver: 582.78 - OS: Windows 11 - Result: hangs while loading the save; does not reach gameplay In hookshot_log.1.txt, line 992 reports: vk: fallback: the compute pipeline of 4fd4fe678f729933 could not be made, followed by a mesh draw program entry. I’ve attached the full log for investigation. [hookshot_log.1.txt](https://github.com/user-attachments/files/34589660/hookshot_log.1.txt)
gugatrevis commented 2026-11-09 17:41:59 +00:00 (Migrated from github.com)

First of all, thank you for the great work—it's coming along wonderfully.

I m submitting my report and hope it helps in some way with ongoing development and bug fixing.
I experiencing a black screen issue after the intro video, everything is frozen.

System Information:

Graphics Card: GTX 1070

Driver: 582.78

OS: Windows 10

HookShot v2.0.9

hash a5da9f84b72d1471

hookshot_log.txt

First of all, thank you for the great work—it's coming along wonderfully. I m submitting my report and hope it helps in some way with ongoing development and bug fixing. I experiencing a black screen issue after the intro video, everything is frozen. System Information: Graphics Card: GTX 1070 Driver: 582.78 OS: Windows 10 HookShot v2.0.9 hash a5da9f84b72d1471 [hookshot_log.txt](https://github.com/user-attachments/files/34591062/hookshot_log.txt)
warashan commented 2026-11-09 17:42:30 +00:00 (Migrated from github.com)

AMD Radeon RX 580 2048SP – Vulkan driver crash on Hookshot v2.0.8 and v2.0.9

First of all, thank you for your continued work on this project and for improving compatibility with GPUs that lack native mesh shader support.

I'd like to report a reproducible crash affecting my AMD Radeon RX 580 2048SP (8 GB, Polaris architecture) on Windows.

Unfortunately, updating from Hookshot v2.0.8 to v2.0.9 did not resolve the issue. Both versions crash during the initial Vulkan shader preparation process.

System specifications:

  • CPU: AMD Ryzen 5 5500
  • GPU: AMD Radeon RX 580 2048SP (8 GB)
  • RAM: 16 GB
  • OS: Windows 64-bit
  • Graphics API: Vulkan 1.3
  • Vulkan driver ID: 0x800117
  • Hookshot versions tested: v2.0.8 and v2.0.9

Error details

Both versions produce the same access violation:

CRASH: exception 0xc0000005
(read 0x21, guest 0xfffff00000000021)
at amdvlk64.dll+0x1cb8bf9

hookshot_log.txt

The logs also confirm that my GPU does not support native mesh shaders:

vk: no mesh shaders:
task and mesh programs run as compute shaders
(issue 640 fallback)

The crash occurs while Hookshot is initializing mesh programs through the compute shader fallback.

Thank you for your work and for continuing to support older GPU architectures. I'm happy to provide additional logs or test future builds if needed.

AMD Radeon RX 580 2048SP – Vulkan driver crash on Hookshot v2.0.8 and v2.0.9 First of all, thank you for your continued work on this project and for improving compatibility with GPUs that lack native mesh shader support. I'd like to report a reproducible crash affecting my AMD Radeon RX 580 2048SP (8 GB, Polaris architecture) on Windows. Unfortunately, updating from Hookshot v2.0.8 to v2.0.9 did not resolve the issue. Both versions crash during the initial Vulkan shader preparation process. System specifications: - CPU: AMD Ryzen 5 5500 - GPU: AMD Radeon RX 580 2048SP (8 GB) - RAM: 16 GB - OS: Windows 64-bit - Graphics API: Vulkan 1.3 - Vulkan driver ID: 0x800117 - Hookshot versions tested: v2.0.8 and v2.0.9 Error details Both versions produce the same access violation: CRASH: exception 0xc0000005 (read 0x21, guest 0xfffff00000000021) at amdvlk64.dll+0x1cb8bf9 [hookshot_log.txt](https://github.com/user-attachments/files/34591269/hookshot_log.txt) The logs also confirm that my GPU does not support native mesh shaders: vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback) The crash occurs while Hookshot is initializing mesh programs through the compute shader fallback. Thank you for your work and for continuing to support older GPU architectures. I'm happy to provide additional logs or test future builds if needed.
ramsmtz commented 2026-11-09 17:59:14 +00:00 (Migrated from github.com)

GTX 1070: Mesh shader compute fallback still fails in v2.0.9, while Lichii renders correctly

Hardware and environment

  • GPU: NVIDIA GeForce GTX 1070 (Pascal)
  • Graphics API: Vulkan 1.4
  • GPU does not support VK_EXT_mesh_shader
  • Hookshot versions tested: v2.0.7 and v2.0.9

Problem

I am testing Hookshot with a GTX 1070. The game reaches the loading process, but when loading my save, it gets stuck on a black screen with the loading icon.

The same behavior occurs in both Hookshot v2.0.7 and v2.0.9.

Relevant log output (v2.0.9)

The log contains the following error:

vk: fallback: the compute pipeline of 4fd4fe678f729933 could not be made

This is followed by a mesh draw involving program 18cb with three stages.

The renderer also reports:

  • 38,809 programs prepared.
  • 151 shader failures.
  • 10,095 compute variants.
  • Approximately 202 seconds of shader preparation.
  • The final frame statistics show only one draw and zero dispatches.

The same compute pipeline hash was also reported as failing in my v2.0.7 log.

Comparison with Lichii

On the exact same GTX 1070 system, I tested Lichii and Ocarina of Time renders correctly.

Lichii has recently implemented and improved its compute-based mesh shader fallback:

Hookshot has also reintroduced its fallback:

However, the fallback still appears to fail on my GTX 1070.

Questions / possible investigation

Could the Hookshot fallback implementation be compared against Lichii's implementation, particularly:

  1. Compute pipeline generation for task/mesh programs.
  2. Auxiliary storage buffer and descriptor set limit handling.
  3. Pipeline cache loading and rebuilding for GPUs without mesh shader support.
  4. Synchronization and resource handling between compute dispatches and subsequent graphics draws.

The failing pipeline hash 4fd4fe678f729933 may help identify the specific shader or pipeline that is failing.

I can provide the complete v2.0.9 log and test additional builds on this GTX 1070.

Since Lichii renders correctly on the same hardware, I believe this is worth investigating as a Hookshot fallback implementation issue rather than an inherent GTX 1070 limitation.

hookshot_log.txt

# GTX 1070: Mesh shader compute fallback still fails in v2.0.9, while Lichii renders correctly ### Hardware and environment - GPU: NVIDIA GeForce GTX 1070 (Pascal) - Graphics API: Vulkan 1.4 - GPU does not support `VK_EXT_mesh_shader` - Hookshot versions tested: v2.0.7 and v2.0.9 ### Problem I am testing Hookshot with a GTX 1070. The game reaches the loading process, but when loading my save, it gets stuck on a black screen with the loading icon. The same behavior occurs in both Hookshot v2.0.7 and v2.0.9. ### Relevant log output (v2.0.9) The log contains the following error: ```text vk: fallback: the compute pipeline of 4fd4fe678f729933 could not be made ``` This is followed by a mesh draw involving program `18cb` with three stages. The renderer also reports: - 38,809 programs prepared. - 151 shader failures. - 10,095 compute variants. - Approximately 202 seconds of shader preparation. - The final frame statistics show only one draw and zero dispatches. The same compute pipeline hash was also reported as failing in my v2.0.7 log. ### Comparison with Lichii On the exact same GTX 1070 system, I tested Lichii and Ocarina of Time renders correctly. Lichii has recently implemented and improved its compute-based mesh shader fallback: - [[Lichii PR #569](https://github.com/zortos293/Lichii/pull/569)](https://github.com/zortos293/Lichii/pull/569): Draw task/mesh pipelines through compute without `VK_EXT_mesh_shader`. - [[Lichii PR #642](https://github.com/zortos293/Lichii/pull/642)](https://github.com/zortos293/Lichii/pull/642): Count mesh fallback buffers against descriptor set limits. - [[Lichii PR #841](https://github.com/zortos293/Lichii/pull/841)](https://github.com/zortos293/Lichii/pull/841): Build cached task/mesh pipelines at boot without `VK_EXT_mesh_shader`. Hookshot has also reintroduced its fallback: - [[Hookshot PR #779](https://git.magicbean.dev/MagicBeanDev/Hookshot/pulls/779)](https://git.magicbean.dev/MagicBeanDev/Hookshot/pulls/779). However, the fallback still appears to fail on my GTX 1070. ### Questions / possible investigation Could the Hookshot fallback implementation be compared against Lichii's implementation, particularly: 1. Compute pipeline generation for task/mesh programs. 2. Auxiliary storage buffer and descriptor set limit handling. 3. Pipeline cache loading and rebuilding for GPUs without mesh shader support. 4. Synchronization and resource handling between compute dispatches and subsequent graphics draws. The failing pipeline hash `4fd4fe678f729933` may help identify the specific shader or pipeline that is failing. I can provide the complete v2.0.9 log and test additional builds on this GTX 1070. Since Lichii renders correctly on the same hardware, I believe this is worth investigating as a Hookshot fallback implementation issue rather than an inherent GTX 1070 limitation. [hookshot_log.txt](https://github.com/user-attachments/files/34591811/hookshot_log.txt)
Crono141 commented 2026-11-09 18:24:48 +00:00 (Migrated from github.com)

RX 590 8 GB (Polaris), Linux RADV: the fallback works with the four fixes from the closed PR #792 (preliminary)

System: RX 590 8 GB (RADV POLARIS10), Mesa 26.2.5, CachyOS kernel 7.3.1, Ryzen 5 3600, Resizable BAR on.

Build: main at 8b2e1d3 (2026-11-09, between v2.0.8-rc.4 and v2.0.10), plus #792's four fallback commits on top:

  • e6e816a: payload push member index, started word, Aligned 4
  • 2511050: SPIR-V that passes spirv-val
  • 6be15ce: a fallback draw after a dispatch rebuilds its descriptors
  • b9d6c6f: mesh workgroup index within its task workgroup

As far as I can tell, none of these four are on main or in v2.0.10. e6e816a's message says that without it, RADV crashed at the first task/mesh draw.

Result, Kokiri Forest, 1280x720 window, 75% resolution, no frame generation:

  • The log shows no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback).
  • Foliage, tree canopies and grass are drawn. These were never drawn on this card before.
  • No draws skipped in play (0 skipped), and no device lost.
  • About 24–25 fps in the forest (around 1,300–1,750 draws a frame) and about 32 fps in lighter scenes (around 500 draws a frame).
  • GPU-bound: GPU time is 32–34 ms a frame. Queue submit is about 1.8 ms a frame thanks to #448's dma-buf guest memory.
  • VRAM sits at 7.9 GB of 8 GB, with textures at their budget.

Caveats:

  • This build also carries some changes from my private branch that aren't in main: RADV-only defaults (VRAM mirrors off, batching off with dma-bufs), the 32-lane warp emulation for GCN, and a vcore release around submits. So it isn't a clean A/B against main.
  • Stock v2.0.10, without the #792 fixes, is building now. I'll report whether it crashes on this card.
  • Link's house door is still invisible, but it was invisible before the fallback too, and every draw has a program. So it's probably not a mesh problem.
  • On Linux, the first launch prepares the shaders (about 10 minutes here) with no window and no progress shown, so it looks hung. v2.0.10's start-up screen should fix that.

I have the log if it helps.

**RX 590 8 GB (Polaris), Linux RADV: the fallback works with the four fixes from the closed PR #792 (preliminary)** **System:** RX 590 8 GB (RADV POLARIS10), Mesa 26.2.5, CachyOS kernel 7.3.1, Ryzen 5 3600, Resizable BAR on. **Build:** main at `8b2e1d3` (2026-11-09, between v2.0.8-rc.4 and v2.0.10), plus #792's four fallback commits on top: - `e6e816a`: payload push member index, started word, Aligned 4 - `2511050`: SPIR-V that passes spirv-val - `6be15ce`: a fallback draw after a dispatch rebuilds its descriptors - `b9d6c6f`: mesh workgroup index within its task workgroup As far as I can tell, none of these four are on main or in v2.0.10. `e6e816a`'s message says that without it, RADV crashed at the first task/mesh draw. **Result, Kokiri Forest, 1280x720 window, 75% resolution, no frame generation:** - The log shows `no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback)`. - Foliage, tree canopies and grass are drawn. These were never drawn on this card before. - No draws skipped in play (`0 skipped`), and no device lost. - About **24–25 fps** in the forest (around 1,300–1,750 draws a frame) and about 32 fps in lighter scenes (around 500 draws a frame). - GPU-bound: GPU time is 32–34 ms a frame. Queue submit is about 1.8 ms a frame thanks to #448's dma-buf guest memory. - VRAM sits at 7.9 GB of 8 GB, with textures at their budget. **Caveats:** - This build also carries some changes from my private branch that aren't in main: RADV-only defaults (VRAM mirrors off, batching off with dma-bufs), the 32-lane warp emulation for GCN, and a vcore release around submits. So it isn't a clean A/B against main. - Stock v2.0.10, without the #792 fixes, is building now. I'll report whether it crashes on this card. - Link's house door is still invisible, but it was invisible before the fallback too, and every draw has a program. So it's probably not a mesh problem. - On Linux, the first launch prepares the shaders (about 10 minutes here) with no window and no progress shown, so it looks hung. v2.0.10's start-up screen should fix that. I have the log if it helps.
Crono141 commented 2026-11-09 19:04:55 +00:00 (Migrated from github.com)

Follow-up, RX 590 / RADV: stock v2.0.10 does crash, and the #792 fixes prevent it

Stock v2.0.10 (same PC: RX 590, Mesa 26.2.5) gets into Kokiri Forest with the fallback running and foliage drawn. Then RADV starts faulting while it compiles one fallback compute pipeline:

vk: in play: mesh a5da9f84b72d1471 (6942222ec7d54fe9+ c2a9f81ce89730ad+), ...
vk: the driver faulted compiling a compute pipeline: that one is left out
vk: fallback: the compute pipeline of a5da9f84b72d1471 could not be made

The fault repeats every time that program is drawn: 12,160 times in this log, all for that one program. Then the game exits, with nothing more in the log.

The build with #792's four commits (e6e816a 2511050 6be15ce b9d6c6f) on top has zero driver faults, and no failed fallback pipelines, in the same area. That matches e6e816a's description: the payload's push member index and the bool stored into a u32 word make RADV's SPIR-V parser fail.

Two smaller notes from the same run:

  • A pipeline that faults seems to be retried on every draw (12,160 faults for one program). Remembering the failure would probably turn a crash like this into a single missing effect.
  • Stock's RADV defaults (VRAM mirrors on, writing back about 68 MB a frame here, and batched submits on despite the dma-bufs) cost a lot on an 8 GB Polaris card. An fps comparison is coming once I can run both builds without a compile going on in the background.
**Follow-up, RX 590 / RADV: stock v2.0.10 does crash, and the #792 fixes prevent it** Stock v2.0.10 (same PC: RX 590, Mesa 26.2.5) gets into Kokiri Forest with the fallback running and foliage drawn. Then RADV starts faulting while it compiles one fallback compute pipeline: ``` vk: in play: mesh a5da9f84b72d1471 (6942222ec7d54fe9+ c2a9f81ce89730ad+), ... vk: the driver faulted compiling a compute pipeline: that one is left out vk: fallback: the compute pipeline of a5da9f84b72d1471 could not be made ``` The fault repeats every time that program is drawn: 12,160 times in this log, all for that one program. Then the game exits, with nothing more in the log. The build with #792's four commits (`e6e816a` `2511050` `6be15ce` `b9d6c6f`) on top has **zero** driver faults, and no failed fallback pipelines, in the same area. That matches `e6e816a`'s description: the payload's push member index and the bool stored into a u32 word make RADV's SPIR-V parser fail. Two smaller notes from the same run: - A pipeline that faults seems to be retried on every draw (12,160 faults for one program). Remembering the failure would probably turn a crash like this into a single missing effect. - Stock's RADV defaults (VRAM mirrors on, writing back about 68 MB a frame here, and batched submits on despite the dma-bufs) cost a lot on an 8 GB Polaris card. An fps comparison is coming once I can run both builds without a compile going on in the background.
Crono141 commented 2026-11-09 19:31:27 +00:00 (Migrated from github.com)

RX 590 / RADV, the fps comparison: stock v2.0.10 vs v2.0.10 + #792's fixes

Same PC (RX 590 8 GB, Mesa 26.2.5), same spot in Kokiri Forest, nothing else running, second launch of each (shaders already prepared). One correction to my last comment: I put stock's low fps down to a compile running in the background. With nothing else running, it's just as slow.

stock v2.0.10 v2.0.10 + #792's four commits (+ my RADV settings, below)
fps 2–3, then crashed on the first run ~23 in the forest, 25–35 elsewhere
replay (CPU) a frame 288 ms (draw 175, commands 91, dispatch 82) 16 ms
GPU time a frame ~30 ms ~35 ms
"driver faulted compiling a compute pipeline" 10,000+ (all a5da9f84b72d1471) 0
draws skipped in play 31–37 a frame 0
what it looks like foliage drawn, but bright white foliage and flashing foliage drawn, no corruption seen

Almost all of stock's frame is the replay re-attempting the pipeline that RADV faults on, for every draw that uses it. GPU time is about the same in both.

To be fair about what else differs: my build also turns off VRAM mirrors and batched submits on RADV. Stock's mirrors write back about 67 MB a frame here, which costs fps and probably causes some of the flashing. But the driver faults, the skipped draws and the crash are the fallback's own, and they go away with #792's commits.

So I'd like to suggest landing #792's fallback fixes (e6e816a 2511050 6be15ce b9d6c6f, by AmiriisCustoms/hckrman101). #792 was closed in favour of #779, but these four never came over. Without them, the fallback crashes the driver on RADV; with them, it runs here with 0 faults. They also apply cleanly on v2.0.10. It might also be worth remembering a pipeline that faulted, so one bad program costs a missing effect instead of the frame rate and then a crash.

One more data point: the neon/glowing plant stems from #667/#696 don't show up on this card with the fallback.

**RX 590 / RADV, the fps comparison: stock v2.0.10 vs v2.0.10 + #792's fixes** Same PC (RX 590 8 GB, Mesa 26.2.5), same spot in Kokiri Forest, nothing else running, second launch of each (shaders already prepared). One correction to my last comment: I put stock's low fps down to a compile running in the background. With nothing else running, it's just as slow. | | stock v2.0.10 | v2.0.10 + #792's four commits (+ my RADV settings, below) | |---|---|---| | fps | **2–3**, then crashed on the first run | **~23** in the forest, 25–35 elsewhere | | replay (CPU) a frame | 288 ms (draw 175, commands 91, dispatch 82) | 16 ms | | GPU time a frame | ~30 ms | ~35 ms | | "driver faulted compiling a compute pipeline" | 10,000+ (all `a5da9f84b72d1471`) | 0 | | draws skipped in play | 31–37 a frame | 0 | | what it looks like | foliage drawn, but bright white foliage and flashing | foliage drawn, no corruption seen | Almost all of stock's frame is the replay re-attempting the pipeline that RADV faults on, for every draw that uses it. GPU time is about the same in both. To be fair about what else differs: my build also turns off VRAM mirrors and batched submits on RADV. Stock's mirrors write back about 67 MB a frame here, which costs fps and probably causes some of the flashing. But the driver faults, the skipped draws and the crash are the fallback's own, and they go away with #792's commits. **So I'd like to suggest landing #792's fallback fixes** (`e6e816a` `2511050` `6be15ce` `b9d6c6f`, by AmiriisCustoms/hckrman101). #792 was closed in favour of #779, but these four never came over. Without them, the fallback crashes the driver on RADV; with them, it runs here with 0 faults. They also apply cleanly on v2.0.10. It might also be worth remembering a pipeline that faulted, so one bad program costs a missing effect instead of the frame rate and then a crash. One more data point: the neon/glowing plant stems from #667/#696 don't show up on this card with the fallback.
aprenderdepsico-spec commented 2026-11-09 19:55:18 +00:00 (Migrated from github.com)

GTX 1070 8GB, RYZEN 5 3600X, 16GB RAM DDR4.
HOOKSHOT V2.0.10

Menu cinematic runs at steady 60fps, no stutter while the scene changes.
Hit new game and the first cinematic have stutter and desynchronization.
The game crash after the "new game" cinematic.

Lichii v5 runs well at 30 fps, normal stutter of residual shader compilation. Kinda playable.
I reccomend to see how Lichii fixed the render on GTX saga.

hookshot_log.txt

GTX 1070 8GB, RYZEN 5 3600X, 16GB RAM DDR4. HOOKSHOT V2.0.10 Menu cinematic runs at steady 60fps, no stutter while the scene changes. Hit new game and the first cinematic have stutter and desynchronization. The game crash after the "new game" cinematic. Lichii v5 runs well at 30 fps, normal stutter of residual shader compilation. Kinda playable. I reccomend to see how Lichii fixed the render on GTX saga. [hookshot_log.txt](https://github.com/user-attachments/files/34597347/hookshot_log.txt)
sharkih commented 2026-11-09 19:59:09 +00:00 (Migrated from github.com)

GPU:RX 5600XT
driver: 26.10.2
OS: Windows 11 25h2
does it start and reach gameplay on v2.0.6: No, The game Crash my pc in deku tree scene after reach all 20gb ram of my pc, the first cutscene its 60fps, but the deku tree scene its 10 fps and all my ram. This don't happen in the older versions. (<< 2.0.4)

and after the first cutscene the games freeze for a moment.

2.0.4 and lower versions freeze after first cutscene, the only version when i reach the gameplay its the ultrawide version.

hookshot_log.txt

GPU:RX 5600XT driver: 26.10.2 OS: Windows 11 25h2 does it start and reach gameplay on v2.0.6: No, The game Crash my pc in deku tree scene after reach all 20gb ram of my pc, the first cutscene its 60fps, but the deku tree scene its 10 fps and all my ram. This don't happen in the older versions. (<< 2.0.4) and after the first cutscene the games freeze for a moment. 2.0.4 and lower versions freeze after first cutscene, the only version when i reach the gameplay its the ultrawide version. [hookshot_log.txt](https://github.com/user-attachments/files/34597364/hookshot_log.txt)
floydoiler commented 2026-11-09 20:03:38 +00:00 (Migrated from github.com)

GPU: RX 580
Driver: 31.0.21921.1000
OS: Windows 10
Before 2.0.6: Crashed after first cutscene, before gameplay starts
After 2.0.6: Crashes while loading initial shaders

hookshot_log.txt

GPU: RX 580 Driver: 31.0.21921.1000 OS: Windows 10 Before 2.0.6: Crashed after first cutscene, before gameplay starts After 2.0.6: Crashes while loading initial shaders [hookshot_log.txt](https://github.com/user-attachments/files/34597682/hookshot_log.txt)
CiLiBi18 commented 2026-11-09 21:37:03 +00:00 (Migrated from github.com)

GTX 1070 (Pascal), NVIDIA 580.178.04, Linux: #792's four fallback fixes make the fallback run. Stock freezes at the intro's forest scene.

This confirms Crono141's RADV result on NVIDIA. The cause is the same. The payload address is read through OpAccessChain member 64, which is its byte offset, not its member index. NVIDIA's compiler segfaults on that module. Stock is then frozen on the forest scene's first frame for good, which matches the black or frozen screens the GTX 1060 / 1070 / 1070 Ti reports above describe at the intro or at the Deku Tree.

  • All 1,300 fallback programs in the program cache, compiled offline by the real driver (each in a child process): stock has 2,336 of 2,468 compute modules crash the driver with SIGSEGV, exactly the ones with the index-64 access chain. With #792's commits, 2,468 of 2,468 compile, and all 5,068 dumped stages pass spirv-val.
  • In game (same intro, headless): stock has 1 fault (a5da9f84b72d1471), then no more presents. With the fixes there are 0 faults and 0 skipped draws, and it reaches the Deku Tree with the foliage drawn, at 22–28 fps at 1080p, GPU-bound. Not checked yet: playing past the intro and loading a save. The BC4 view lines (vk 139 as vk 95 ... not made) show up 16 times in both runs, so they are not what froze the intro here.

The PR that ports the four commits onto main: #1314. A separate one stops a failed fallback pipeline from being compiled again on every draw: #1317.

**GTX 1070 (Pascal), NVIDIA 580.178.04, Linux: #792's four fallback fixes make the fallback run. Stock freezes at the intro's forest scene.** This confirms Crono141's RADV result on NVIDIA. The cause is the same. The payload address is read through `OpAccessChain` member 64, which is its byte offset, not its member index. NVIDIA's compiler segfaults on that module. Stock is then frozen on the forest scene's first frame for good, which matches the black or frozen screens the GTX 1060 / 1070 / 1070 Ti reports above describe at the intro or at the Deku Tree. - **All 1,300 fallback programs in the program cache, compiled offline by the real driver** (each in a child process): stock has 2,336 of 2,468 compute modules crash the driver with SIGSEGV, exactly the ones with the index-64 access chain. With #792's commits, 2,468 of 2,468 compile, and all 5,068 dumped stages pass spirv-val. - **In game** (same intro, headless): stock has 1 fault (`a5da9f84b72d1471`), then no more presents. With the fixes there are 0 faults and 0 skipped draws, and it reaches the Deku Tree with the foliage drawn, at 22–28 fps at 1080p, GPU-bound. Not checked yet: playing past the intro and loading a save. The BC4 view lines (`vk 139 as vk 95 ... not made`) show up 16 times in both runs, so they are not what froze the intro here. The PR that ports the four commits onto main: #1314. A separate one stops a failed fallback pipeline from being compiled again on every draw: #1317.
RafaeldeGomesMonteiro commented 2026-11-09 21:42:16 +00:00 (Migrated from github.com)

Summary

On a GTX 1070, the game boots, the menu and first cutscene play at 60 fps, and then the screen goes black when gameplay starts. The log shows the NVIDIA driver faulting while compiling the first compute pipeline of the mesh-shader fallback (issue 640 fallback). After the second mesh draw the presentation thread stops logging and presenting entirely, while other game threads keep running.

Environment

  • Hookshot v2.0.11 (source 10f983ad), Linux build
  • Game: title ID 0400486024DEC000, v131072
  • GPU: NVIDIA GeForce GTX 1070 (8 GB)
  • Driver: NVIDIA 580.178.04, Vulkan 1.4
  • OS: Ubuntu 24.04, kernel 6.8.0-147
  • Options: quality_preset=1, frame_generation=2, upscaling=2, robust_buffers=0

Log excerpts

Startup:

vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback)
vk: NVIDIA GeForce GTX 1070, Vulkan 1.4, driver 0x912c8100; mesh shaders no, host memory import yes, pipeline libraries yes

At the end of the cutscene (about 12,120 presents in):

[Presentation Thread] vk: mesh draw kind 0: 0 2 1680, indirect 0 count 0 max 0 stride 0
[Presentation Thread] vk: mesh draw: program 2aa2, 3 stages: [0: stage 1, ... sph type 5 ...] [1: stage 6, ... sph type 1 ... payload 256] [2: stage 7, ... sph type 3 ... payload 256]
[Presentation Thread] vk: the driver faulted compiling a compute pipeline: that one is left out
[Presentation Thread] vk: fallback: the compute pipeline of a5da9f84b72d1471 could not be made
[Presentation Thread] vk: mesh draw kind 0: 0 1 560, indirect 0 count 0 max 0 stride 0
[Presentation Thread] vk: mesh draw: program 2aa2, 3 stages: ...

After that second mesh draw there is no further output from the Presentation Thread. Other threads (rmbl::VibrationThread, tera::FileResourceMgr) keep logging for 40+ seconds until I close the window. Before this point the Presentation Thread logged stats every 120 presents.

What I think is happening

  • The driver crashes inside pipeline compilation for the fallback shader a5da9f84b72d1471.
  • The fault is caught and that pipeline is skipped, but the next pipeline compile on the same thread never returns. My guess is that the driver is left holding an internal lock after the fault is recovered from, so the next call deadlocks. This part is inference, not confirmed.

Workaround

Launching with RX_VK_NO_MESH_FALLBACK=1 avoids the fault. The game reaches gameplay and holds 60 fps, but everything drawn through mesh shaders is missing: grass, foliage, and some solid objects (a door in the opening area).

Request

  • Could the fallback's compute pipelines be built without the driver's optimizer on NVIDIA Pascal cards, as is already done for AMD ("task and mesh programs built without the driver's optimizer")? RX_VK_NOOPT does not appear to affect the fallback pipelines, so I could not test this myself.
  • Independently of the crash, a driver fault during the fallback compile should not leave the presentation thread hung.

hookshot_log.1.txt

## Summary On a GTX 1070, the game boots, the menu and first cutscene play at 60 fps, and then the screen goes black when gameplay starts. The log shows the NVIDIA driver faulting while compiling the first compute pipeline of the mesh-shader fallback (issue 640 fallback). After the second mesh draw the presentation thread stops logging and presenting entirely, while other game threads keep running. ## Environment - Hookshot v2.0.11 (source 10f983ad), Linux build - Game: title ID 0400486024DEC000, v131072 - GPU: NVIDIA GeForce GTX 1070 (8 GB) - Driver: NVIDIA 580.178.04, Vulkan 1.4 - OS: Ubuntu 24.04, kernel 6.8.0-147 - Options: quality_preset=1, frame_generation=2, upscaling=2, robust_buffers=0 ## Log excerpts Startup: ``` vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback) vk: NVIDIA GeForce GTX 1070, Vulkan 1.4, driver 0x912c8100; mesh shaders no, host memory import yes, pipeline libraries yes ``` At the end of the cutscene (about 12,120 presents in): ``` [Presentation Thread] vk: mesh draw kind 0: 0 2 1680, indirect 0 count 0 max 0 stride 0 [Presentation Thread] vk: mesh draw: program 2aa2, 3 stages: [0: stage 1, ... sph type 5 ...] [1: stage 6, ... sph type 1 ... payload 256] [2: stage 7, ... sph type 3 ... payload 256] [Presentation Thread] vk: the driver faulted compiling a compute pipeline: that one is left out [Presentation Thread] vk: fallback: the compute pipeline of a5da9f84b72d1471 could not be made [Presentation Thread] vk: mesh draw kind 0: 0 1 560, indirect 0 count 0 max 0 stride 0 [Presentation Thread] vk: mesh draw: program 2aa2, 3 stages: ... ``` After that second mesh draw there is no further output from the Presentation Thread. Other threads (rmbl::VibrationThread, tera::FileResourceMgr) keep logging for 40+ seconds until I close the window. Before this point the Presentation Thread logged stats every 120 presents. ## What I think is happening - The driver crashes inside pipeline compilation for the fallback shader `a5da9f84b72d1471`. - The fault is caught and that pipeline is skipped, but the next pipeline compile on the same thread never returns. My guess is that the driver is left holding an internal lock after the fault is recovered from, so the next call deadlocks. This part is inference, not confirmed. ## Workaround Launching with `RX_VK_NO_MESH_FALLBACK=1` avoids the fault. The game reaches gameplay and holds 60 fps, but everything drawn through mesh shaders is missing: grass, foliage, and some solid objects (a door in the opening area). ## Request - Could the fallback's compute pipelines be built without the driver's optimizer on NVIDIA Pascal cards, as is already done for AMD ("task and mesh programs built without the driver's optimizer")? `RX_VK_NOOPT` does not appear to affect the fallback pipelines, so I could not test this myself. - Independently of the crash, a driver fault during the fallback compile should not leave the presentation thread hung. [hookshot_log.1.txt](https://github.com/user-attachments/files/34601229/hookshot_log.1.txt)
CiLiBi18 commented 2026-11-09 21:55:26 +00:00 (Migrated from github.com)

@RafaeldeGomesMonteiro same card, driver and program here. The cause is in #1314: the fallback reads the payload address through OpAccessChain member 64 (its byte offset, not its member index), so the SPIR-V is invalid and NVIDIA's compiler segfaults on it. Turning the optimizer off wouldn't help, because the module itself is wrong. With #1314, all 2,468 fallback compute modules compile on a GTX 1070 / 580.178.04, and the intro gets to the Deku Tree with the foliage drawn. #1317 stops a failed fallback pipeline from being compiled again on every draw. You're right that a fault can leave the driver stuck, and #1317 doesn't cover that.

@RafaeldeGomesMonteiro same card, driver and program here. The cause is in #1314: the fallback reads the payload address through `OpAccessChain` member 64 (its byte offset, not its member index), so the SPIR-V is invalid and NVIDIA's compiler segfaults on it. Turning the optimizer off wouldn't help, because the module itself is wrong. With #1314, all 2,468 fallback compute modules compile on a GTX 1070 / 580.178.04, and the intro gets to the Deku Tree with the foliage drawn. #1317 stops a failed fallback pipeline from being compiled again on every draw. You're right that a fault can leave the driver stuck, and #1317 doesn't cover that.
Minigroom100 commented 2026-11-09 22:55:04 +00:00 (Migrated from github.com)

GPU: AMD Radeon (TM) Graphics (Ryzen 7 5825U integrated GPU)
Driver: AMD Vulkan driver 0x800117
OS: Windows 11
Hookshot version: v2.0.11 (source d6369f1e)

Result: The game crashes during startup, before reaching the main menu or gameplay.

The log confirms that my GPU does not support mesh shaders and that Hookshot uses the compute shader fallback:

vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback)

The application then crashes inside the AMD Vulkan driver:

CRASH: exception 0xc0000005 (read 0xffffffffffffffff)
at amdvlk64.dll+0x1cb8bf9

The same crash address appears repeatedly in the log.

Additional information:

vk: AMD Radeon (TM) Graphics, Vulkan 1.3, driver 0x800117
vk: pipeline cache C:\Hookshot\mkw_vk_pipelines.bin (0 KB)
vk: the last start did not finish the driver's part of the shaders: left out

Unlike some reports in this issue, my game does not reach the intro or Deku Tree scene. It crashes while initializing the graphics pipeline.

This appears to be related to the AMD compute shader fallback for GPUs without mesh shader support.

I've attached my hookshot_log.txt for investigation.

hookshot_log.txt

**GPU:** AMD Radeon (TM) Graphics (Ryzen 7 5825U integrated GPU) **Driver:** AMD Vulkan driver `0x800117` **OS:** Windows 11 **Hookshot version:** v2.0.11 (source d6369f1e) **Result:** The game crashes during startup, before reaching the main menu or gameplay. The log confirms that my GPU does not support mesh shaders and that Hookshot uses the compute shader fallback: ```text vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback) ``` The application then crashes inside the AMD Vulkan driver: ```text CRASH: exception 0xc0000005 (read 0xffffffffffffffff) at amdvlk64.dll+0x1cb8bf9 ``` The same crash address appears repeatedly in the log. Additional information: ```text vk: AMD Radeon (TM) Graphics, Vulkan 1.3, driver 0x800117 vk: pipeline cache C:\Hookshot\mkw_vk_pipelines.bin (0 KB) vk: the last start did not finish the driver's part of the shaders: left out ``` Unlike some reports in this issue, my game does not reach the intro or Deku Tree scene. It crashes while initializing the graphics pipeline. This appears to be related to the AMD compute shader fallback for GPUs without mesh shader support. I've attached my `hookshot_log.txt` for investigation. [hookshot_log.txt](https://github.com/user-attachments/files/34603457/hookshot_log.txt)
camsay1996 commented 2026-11-09 23:16:14 +00:00 (Migrated from github.com)

Summary

On Hookshot v2.0.11 (source d6369f1e) the game renders at low FPS in places and, after a long session, crashes in a heavy scene. An earlier build ran fine on the same PC (version: <previous version>).

System

  • CPU: AMD Ryzen 5 2600
  • GPU: AMD Radeon RX 5700 XT 8 GB, AMD drivers up to date (<driver version>)
  • RAM: 16 GB DDR4
  • OS: Windows 11
  • Vulkan: 1.4, driver 0x800161 (from log)
  • Install: D:\Games\EMULATOR\SW2\HK-BUILD, built with HookshotBuilder
  • Settings: <resolution/window or fullscreen, env vars such as RX_VK_NO_FOLLOW, Lossless Scaling on/off>

Problem 1: crash

After ~7,600 s of play, in a heavy scene (754 draws, 331 pipelines, 577 textures / 1844 MB in one frame), FPS fell to 0.5. Then:

vk: program c0825e5a9da9c40a not translated: std::bad_alloc
vk: a draw without a program (frame 11924) ...
CRASH: exception 0x20474343 ... Presentation Thread
host backtrace: ... hookshot_vk.dll+0x2c9d8d ...

VRAM was only 1407 of 7383 MB, so this looks like host memory exhaustion. The program cache is 6.5 GB and the game reserves 9809 MB plus a 6894 MB heap, on a 16 GB system. The bad_alloc is not caught, so it becomes a hard crash instead of skipping the shader.

Problem 2: low FPS

  • The log shows no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback) and matrix multiplies in software.
  • 78 slow submit entries, all memory sync, up to 121 ms.
  • Slow texture uploads: 180 ms (1920x1080) and 110 ms (2560x1440).
  • Draws left out waiting for shaders; 331 pipelines cost 214,755 ms in the heavy scene.
  • With an empty shader cache (log 2), the first launch spent 3,114 s preparing 38,809 programs, with 151 failed and several rejected compute shaders.
  • FPS was 16–40 while loading and 60 once settled in log 2.

Expected

Same performance and stability as <previous version>; a shader translation failure should not crash the emulator.

Questions

  1. Did a recent build change the mesh shader fallback or the cache/memory behavior?
  2. Is there a setting to cap the program cache or memory use on 16 GB systems?

Attached

hookshot_log_1.txt (crash), hookshot_log_2.txt (empty cache, no crash)

hookshot_log.1.txt
hookshot_log.2.txt

## Summary On Hookshot v2.0.11 (source d6369f1e) the game renders at low FPS in places and, after a long session, crashes in a heavy scene. An earlier build ran fine on the same PC (version: `<previous version>`). ## System - CPU: AMD Ryzen 5 2600 - GPU: AMD Radeon RX 5700 XT 8 GB, AMD drivers up to date (`<driver version>`) - RAM: 16 GB DDR4 - OS: Windows 11 - Vulkan: 1.4, driver 0x800161 (from log) - Install: D:\Games\EMULATOR\SW2\HK-BUILD, built with HookshotBuilder - Settings: `<resolution/window or fullscreen, env vars such as RX_VK_NO_FOLLOW, Lossless Scaling on/off>` ## Problem 1: crash After ~7,600 s of play, in a heavy scene (754 draws, 331 pipelines, 577 textures / 1844 MB in one frame), FPS fell to 0.5. Then: vk: program c0825e5a9da9c40a not translated: std::bad_alloc vk: a draw without a program (frame 11924) ... CRASH: exception 0x20474343 ... Presentation Thread host backtrace: ... hookshot_vk.dll+0x2c9d8d ... VRAM was only 1407 of 7383 MB, so this looks like host memory exhaustion. The program cache is 6.5 GB and the game reserves 9809 MB plus a 6894 MB heap, on a 16 GB system. The `bad_alloc` is not caught, so it becomes a hard crash instead of skipping the shader. ## Problem 2: low FPS - The log shows `no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback)` and `matrix multiplies in software`. - 78 `slow submit` entries, all memory sync, up to 121 ms. - Slow texture uploads: 180 ms (1920x1080) and 110 ms (2560x1440). - Draws left out waiting for shaders; 331 pipelines cost 214,755 ms in the heavy scene. - With an empty shader cache (log 2), the first launch spent 3,114 s preparing 38,809 programs, with 151 failed and several `rejected compute` shaders. - FPS was 16–40 while loading and 60 once settled in log 2. ## Expected Same performance and stability as `<previous version>`; a shader translation failure should not crash the emulator. ## Questions 1. Did a recent build change the mesh shader fallback or the cache/memory behavior? 2. Is there a setting to cap the program cache or memory use on 16 GB systems? ## Attached hookshot_log_1.txt (crash), hookshot_log_2.txt (empty cache, no crash) [hookshot_log.1.txt](https://github.com/user-attachments/files/34604042/hookshot_log.1.txt) [hookshot_log.2.txt](https://github.com/user-attachments/files/34604041/hookshot_log.2.txt)
NotRexed commented 2026-11-10 01:59:39 +00:00 (Migrated from github.com)

Fixed in the v2.0.12 branch, closing when it ships. The fallback fixes are merged (#1314: the payload member, started word and alignment; #1317: a failed fallback pipeline is not compiled again every draw). In testing a GTX 1070 reaches the Deku Tree at 22-28 fps and an RX 590 runs at about 23 fps instead of 2-3.

Fixed in the v2.0.12 branch, closing when it ships. The fallback fixes are merged (#1314: the payload member, started word and alignment; #1317: a failed fallback pipeline is not compiled again every draw). In testing a GTX 1070 reaches the Deku Tree at 22-28 fps and an RX 590 runs at about 23 fps instead of 2-3.
DanielAcevedoVega commented 2026-11-10 04:41:26 +00:00 (Migrated from github.com)

AMD Radeon RX 580 2048SP – Vulkan crash on Hookshot v2.0.11

I'm experiencing a reproducible crash during the initial shader preparation process.

System specifications:

  • CPU: AMD Ryzen 5 5600G
  • GPU: AMD Radeon RX 580 2048SP (8 GB, Polaris)
  • RAM: 32 GB
  • OS: Windows 10
  • Driver: AMD Adrenalin 25.8.1
  • Graphics API: Vulkan 1.3
  • Vulkan Driver ID: 0x800117
  • Hookshot version: v2.0.11

Error:

CRASH: exception 0xc0000005
(read 0x21, guest 0xfffff00000000021)
at amdvlk64.dll+0x1cb8a39

The game crashes during initial shader preparation.

The log also confirms that the GPU uses the compute shader fallback because it does not support native mesh shaders.

This appears to be very similar to another RX 580 2048SP report in this issue.

I've attached my complete hookshot_log.txt for comparison.

### AMD Radeon RX 580 2048SP – Vulkan crash on Hookshot v2.0.11 I'm experiencing a reproducible crash during the initial shader preparation process. **System specifications:** - CPU: AMD Ryzen 5 5600G - GPU: AMD Radeon RX 580 2048SP (8 GB, Polaris) - RAM: 32 GB - OS: Windows 10 - Driver: AMD Adrenalin 25.8.1 - Graphics API: Vulkan 1.3 - Vulkan Driver ID: 0x800117 - Hookshot version: v2.0.11 **Error:** ```text CRASH: exception 0xc0000005 (read 0x21, guest 0xfffff00000000021) at amdvlk64.dll+0x1cb8a39 ``` The game crashes during initial shader preparation. The log also confirms that the GPU uses the compute shader fallback because it does not support native mesh shaders. This appears to be very similar to another RX 580 2048SP report in this issue. I've attached my complete hookshot_log.txt for comparison.
tanner01112 commented 2026-11-10 05:00:18 +00:00 (Migrated from github.com)

RX 580 2048SP (8 GB), i5-7400, 12 GB RAM, Windows 11, v2.0.11, AMD driver 26.5.2. Same crash as #1455: amdvlk64.dll+0x1cb8bf9.

Details that might help:

  • In 2 of my 3 in-game crashes the last line before the crash is the same mesh fallback program: "in play: mesh a5da9f84b72d1471 (6942222ec7d54fe9 c2a9f81ce89730ad)". The program number in the log changes between runs (1aae, 1abd), but the hash stays the same. The third crash ended during several slow compute pipeline compiles (up to 31 s each) with no mesh line.
  • hookshot.exe --prepare-shaders compiled 74 programs (45 graphics, 33 compute) in about 5 s with no crash. The crash only happens when the game draws that mesh program for real, so a precompile doesn't reach it.
  • With a fresh pipeline cache the game got into the game and ran 1500-1900 presents at 27-60 fps before crashing, at the lowest settings.
  • Idea: if a mesh fallback program's key were saved before its pipeline is compiled, a crash would mark it as failed and it could be skipped on the next start. One of my early logs said "the last start did not finish the driver's part of the shaders: left out", but later runs didn't skip it.

Will retest on v2.0.12 when it is out. Logs are in #1455.

RX 580 2048SP (8 GB), i5-7400, 12 GB RAM, Windows 11, v2.0.11, AMD driver 26.5.2. Same crash as #1455: amdvlk64.dll+0x1cb8bf9. Details that might help: - In 2 of my 3 in-game crashes the last line before the crash is the same mesh fallback program: "in play: mesh a5da9f84b72d1471 (6942222ec7d54fe9 c2a9f81ce89730ad)". The program number in the log changes between runs (1aae, 1abd), but the hash stays the same. The third crash ended during several slow compute pipeline compiles (up to 31 s each) with no mesh line. - hookshot.exe --prepare-shaders compiled 74 programs (45 graphics, 33 compute) in about 5 s with no crash. The crash only happens when the game draws that mesh program for real, so a precompile doesn't reach it. - With a fresh pipeline cache the game got into the game and ran 1500-1900 presents at 27-60 fps before crashing, at the lowest settings. - Idea: if a mesh fallback program's key were saved before its pipeline is compiled, a crash would mark it as failed and it could be skipped on the next start. One of my early logs said "the last start did not finish the driver's part of the shaders: left out", but later runs didn't skip it. Will retest on v2.0.12 when it is out. Logs are in #1455.
eric49a-byte commented 2026-11-10 05:18:39 +00:00 (Migrated from github.com)

almost the exact same problem. Crashes just as navi flies under the kids legs in the initial cut scene, after navi leaves the deku tree.
Bazzite Linux with Intel 13700k - AMD 6950xt (Mesa 26.2.5)
2.0.11 build

hookshot_log.txt

almost the exact same problem. Crashes just as navi flies under the kids legs in the initial cut scene, after navi leaves the deku tree. Bazzite Linux with Intel 13700k - AMD 6950xt (Mesa 26.2.5) 2.0.11 build [hookshot_log.txt](https://github.com/user-attachments/files/34613078/hookshot_log.txt)
Malokiro commented 2026-11-10 07:01:05 +00:00 (Migrated from github.com)

Feedback test with the RX 5500 XT on Linux build v2.0.11

Hello! I know my GPU doesn't support mesh shaders, so I didn't expect to run Hookshot in the best way. Even so, I decided to test the new release (build v2.0.11), since the fallback was implemented for testing in version v2.0.6 and I wanted to help with feedback.

What happens:

In the menus: performance is good, 60 FPS or more with frame generation on.
Outside the menus: FPS plummets to about 1 FPS with frame generation on or off and then the game crashes shortly after.

Despite everything, it's already a big step forward: in previous versions the game wouldn't even open on my GPU, and now it at least starts and reaches the menus. The shaders are still buggy, but seeing the game running is already a great sign.

Thank you for your hard work so far!

Specs:

GPU: RX5500XT 8gb / CPU : Xeon 2650v4 / 16gb Ram ddr4 2666mhz / OS: Linux Cachy Os with Vram management installed

hookshot_log.1.txt

hookshot_log.2.txt

hookshot_log.3.txt

hookshot_log.4.txt

hookshot_log.txt

Image Image
Feedback test with the RX 5500 XT on Linux build v2.0.11 Hello! I know my GPU doesn't support mesh shaders, so I didn't expect to run Hookshot in the best way. Even so, I decided to test the new release (build v2.0.11), since the fallback was implemented for testing in version v2.0.6 and I wanted to help with feedback. What happens: In the menus: performance is good, 60 FPS or more with frame generation on. Outside the menus: FPS plummets to about 1 FPS with frame generation on or off and then the game crashes shortly after. Despite everything, it's already a big step forward: in previous versions the game wouldn't even open on my GPU, and now it at least starts and reaches the menus. The shaders are still buggy, but seeing the game running is already a great sign. Thank you for your hard work so far! Specs: GPU: RX5500XT 8gb / CPU : Xeon 2650v4 / 16gb Ram ddr4 2666mhz / OS: Linux Cachy Os with Vram management installed [hookshot_log.1.txt](https://github.com/user-attachments/files/34615814/hookshot_log.1.txt) [hookshot_log.2.txt](https://github.com/user-attachments/files/34615817/hookshot_log.2.txt) [hookshot_log.3.txt](https://github.com/user-attachments/files/34615819/hookshot_log.3.txt) [hookshot_log.4.txt](https://github.com/user-attachments/files/34615820/hookshot_log.4.txt) [hookshot_log.txt](https://github.com/user-attachments/files/34615825/hookshot_log.txt) <img width="1672" height="940" alt="Image" src="https://github.com/user-attachments/assets/58f27932-90a0-4a39-bb9e-51529309c260" /> <img width="1674" height="943" alt="Image" src="https://github.com/user-attachments/assets/a66a83d7-16e5-440f-a747-cc99ab21f05d" />
Lemirooon commented 2026-11-10 07:37:35 +00:00 (Migrated from github.com)

GPU: GTX 1060 3GB (Vulkan 1.4), driver: <0x91870000>
CPU/RAM: Ryzen 5 5600G, 16 GB
OS: Windows 10
Version: v2.0.11

Starts, logo and intro movie play, then black screen. Does not reach
gameplay. No crash; the game keeps presenting until I close it.
Insert (options menu) shows nothing on the black screen.
Log shows "no mesh shaders ... issue 640 fallback", VRAM about 1.1 GB
of 2.6 GB allowed. Possibly the Pascal driver issue fixed in PR #1314.
Full log attached.

GPU: GTX 1060 3GB (Vulkan 1.4), driver: <0x91870000> CPU/RAM: Ryzen 5 5600G, 16 GB OS: Windows 10 Version: v2.0.11 Starts, logo and intro movie play, then black screen. Does not reach gameplay. No crash; the game keeps presenting until I close it. Insert (options menu) shows nothing on the black screen. Log shows "no mesh shaders ... issue 640 fallback", VRAM about 1.1 GB of 2.6 GB allowed. Possibly the Pascal driver issue fixed in PR #1314. Full log attached.
kacperoo29 commented 2026-11-10 09:30:46 +00:00 (Migrated from github.com)

The issue is obvious and should be addressed - there is improper Vulkan extension detection happening. With infinite slop machine it shouldn't be that hard to create either compatibility tiers or just straight up hide more uncommon extensions under flags.

The issue is obvious and should be addressed - there is improper Vulkan extension detection happening. With infinite slop machine it shouldn't be that hard to create either compatibility tiers or just straight up hide more uncommon extensions under flags.
rakefire-impala commented 2026-11-10 10:32:10 +00:00 (Migrated from github.com)

Fixes for the compute fallback, from an RX 5500M (RDNA1, 4 GB VRAM, 16 GB RAM, Windows 11)

These open PRs fix what the fallback still gets wrong on a card without mesh shaders. Each one is small, merges cleanly with main and with the others, and was played together on main 779bdcf.

PR Fixes
#1509 Fallback geometry flickering: the shared buffers were cleared before the last draw had read them
#1510 Floor grass missing, for example in Link's house: indirect task draws ran no mesh workgroups
#1511 Dense grass cut off, and Hyrule Field's distant trees flickering: 1024 slots per draw, now 65535. The far trees need 721-849 task workgroups. Merge after #1510, which it is stacked on.
#1512 Multi-second freezes and white foliage or doors: the fallback's compute pipelines compiled inside the draw; now on a worker and in the precompile
#1513 Coloured specks on foliage (AMD): the generated vertex stage's outputs started undefined
#1581 Constant shadow flicker when the TAAU network is left out on the card (rebase of #477)

Also for these cards: #1507 (dark lighting and glowing bloom on AMD), #1505 and #1514 (rainbow block noise and texture noise when VRAM or RAM is short).

With all of them, Hyrule Field runs at about 31-34 fps on the RX 5500M. Anyone else without mesh shaders who can test them would help them get merged.

**Fixes for the compute fallback, from an RX 5500M (RDNA1, 4 GB VRAM, 16 GB RAM, Windows 11)** These open PRs fix what the fallback still gets wrong on a card without mesh shaders. Each one is small, merges cleanly with main and with the others, and was played together on main `779bdcf`. | PR | Fixes | |---|---| | #1509 | Fallback geometry flickering: the shared buffers were cleared before the last draw had read them | | #1510 | Floor grass missing, for example in Link's house: indirect task draws ran no mesh workgroups | | #1511 | Dense grass cut off, and Hyrule Field's distant trees flickering: 1024 slots per draw, now 65535. The far trees need 721-849 task workgroups. Merge after #1510, which it is stacked on. | | #1512 | Multi-second freezes and white foliage or doors: the fallback's compute pipelines compiled inside the draw; now on a worker and in the precompile | | #1513 | Coloured specks on foliage (AMD): the generated vertex stage's outputs started undefined | | #1581 | Constant shadow flicker when the TAAU network is left out on the card (rebase of #477) | Also for these cards: #1507 (dark lighting and glowing bloom on AMD), #1505 and #1514 (rainbow block noise and texture noise when VRAM or RAM is short). With all of them, Hyrule Field runs at about 31-34 fps on the RX 5500M. Anyone else without mesh shaders who can test them would help them get merged.
rakefire-impala commented 2026-11-10 11:15:41 +00:00 (Migrated from github.com)

An update on the PRs above: all ten now merge cleanly with main 779bdcf and with each other (all 45 pairs and all ten together). Each passed CI, 8 of 8; #1507 and #1581 are re-running after small updates. Since my last comment, a GTX 1070 (Pascal) report on #1023 shows the geometry fix on NVIDIA as well.

A merge order that keeps each step small:

  1. #1505, #1506, #1514: textures on low-VRAM and low-RAM cards; each is self-contained.
  2. #1509, #1513: fallback flicker and coloured specks.
  3. #1510, then #1511, which is stacked on it: missing and cut-off geometry, and Hyrule Field's distant trees.
  4. #1512: fallback pipelines built before play. Only GPUs without mesh shaders are affected.
  5. #1581: shadow flicker without the TAAU network.
  6. #1507: AMD lighting. It now applies per stage, so RDNA2/3 fragment shaders are unchanged.
An update on the PRs above: all ten now merge cleanly with main `779bdcf` and with each other (all 45 pairs and all ten together). Each passed CI, 8 of 8; #1507 and #1581 are re-running after small updates. Since my last comment, a GTX 1070 (Pascal) report on #1023 shows the geometry fix on NVIDIA as well. A merge order that keeps each step small: 1. #1505, #1506, #1514: textures on low-VRAM and low-RAM cards; each is self-contained. 2. #1509, #1513: fallback flicker and coloured specks. 3. #1510, then #1511, which is stacked on it: missing and cut-off geometry, and Hyrule Field's distant trees. 4. #1512: fallback pipelines built before play. Only GPUs without mesh shaders are affected. 5. #1581: shadow flicker without the TAAU network. 6. #1507: AMD lighting. It now applies per stage, so RDNA2/3 fragment shaders are unchanged.
brunobaccari commented 2026-11-10 12:45:50 +00:00 (Migrated from github.com)

@NotRexed I opened PR #1657 for the RDNA 1 subgroup path relevant to the RX 5500 XT / RX 5600 XT / RX 5700 XT reports here.

It selects the wave32/wave64 profile per Vulkan stage, keeps compute fallback stages at 32 lanes where actually pinned, preserves 32-lane guest warps inside wider graphics subgroups, and enables the AMD proprietary fragment-shuffle broadcast fallback. The translated-program cache identity includes those choices.

This overlaps the subgroup/fragment-shuffle work in #1507; the original work is credited in the PR. Please consider that overlap when reviewing the stage-profile implementation.

The Windows renderer build, 7 selected regression checks and 18 synthetic SPIR-V validations passed locally. Current-main gameplay validation is still pending; the attached RX 5500 XT 20 FPS screenshot comes from an earlier local experimental build, not a benchmark of this PR. RX 5600 XT / RX 5700 XT have not been tested locally.

The three CI workflows are awaiting maintainer approval. Could you approve them and review this RDNA 1 change? This is a proposed fix for this part of the tracker, not a claim that all GPUs without mesh shaders are resolved.

@NotRexed I opened [PR #1657](https://git.magicbean.dev/MagicBeanDev/Hookshot/pulls/1657) for the RDNA 1 subgroup path relevant to the RX 5500 XT / RX 5600 XT / RX 5700 XT reports here. It selects the wave32/wave64 profile per Vulkan stage, keeps compute fallback stages at 32 lanes where actually pinned, preserves 32-lane guest warps inside wider graphics subgroups, and enables the AMD proprietary fragment-shuffle broadcast fallback. The translated-program cache identity includes those choices. This overlaps the subgroup/fragment-shuffle work in #1507; the original work is credited in the PR. Please consider that overlap when reviewing the stage-profile implementation. The Windows renderer build, 7 selected regression checks and 18 synthetic SPIR-V validations passed locally. Current-main gameplay validation is still pending; the attached RX 5500 XT 20 FPS screenshot comes from an earlier local experimental build, not a benchmark of this PR. RX 5600 XT / RX 5700 XT have not been tested locally. The three CI workflows are awaiting maintainer approval. Could you approve them and review this RDNA 1 change? This is a proposed fix for this part of the tracker, not a claim that all GPUs without mesh shaders are resolved.
arrigowr2 commented 2026-11-10 13:53:53 +00:00 (Migrated from github.com)

AMD Radeon RX 580 8 GB (GCN4/Polaris, no mesh shaders) — v2.0.12: same guest null-deref as #192/#369, reproduced with VRAM pressure ruled out

GPU / driver: Radeon RX 580 Series, AMDVLK 31.0.21925.1001 (driver 0x800117), Vulkan 1.3, no VK_EXT_mesh_shader, no GPL. Compute fallback active: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback).

The error

CRASH: exception 0xc0000005 (read 0x100000000150, guest 0x150) at hookshot.exe+0x11df8243
thread ModuleSystemWorker4
guest backtrace: lr 0x80580b38 0x80580b38 0x8057b1b8

Identical signature to #192 and #369 (guest 0x150 = null pointer + 0x150 offset, same host offset +0x11df8243). Happens right after the opening sequence, shortly into gameplay.

Two runs, same crash — VRAM pressure is not the trigger

Run 1 (default preset) Run 2 (Quality preset lowered)
Crash signature 0xc0000005 ... guest 0x150, hookshot.exe+0x11df8243 identical
VRAM at crash 5158 / 5158 MB (100%), textures 2885 MB over 2730 MB budget 1173 / 7402 MB (16%)
Freeze before crash yes: slow submit: 97867.5 ms, slowest frame 114640.1 ms (424 pipelines built in 91536 ms) none — largest submit 17 ms (pipeline cache from run 1)
fps 60 during cutscene, ~27 after the freeze 60 fps solid for ~10 000 presents, then crash
Worker thread ModuleSystemWorker3 ModuleSystemWorker4

Run 1's freeze did not repeat (pipelines cached in hookshot_pipelines.bin), and lowering the preset to free 6 GB of VRAM did not prevent the crash. So the null-deref is not a memory-pressure problem.

What works

The compute fallback itself runs well: 12 000+ frames at 60 fps, no device lost, no graphical corruption reported in these runs. The 11 program ... not translated: a network left out on this card messages are the neural movie-upscaling networks absent on this card, as expected.

Logs

  • hookshot_log.txt — run 2 (lowered preset, VRAM 16%, no freeze, crash)
  • hookshot_log.2.txt — run 1 (default preset, 114 s pipeline freeze, VRAM 100%, crash)

Full logs: gist - hookshot_log.txt (run 2, lowered preset) and hookshot_log.2.txt (run 1, default preset).

Happy to run further tests if they help isolate this.

Related: #192, #369, #351, #640.

**AMD Radeon RX 580 8 GB (GCN4/Polaris, no mesh shaders) — v2.0.12: same guest null-deref as #192/#369, reproduced with VRAM pressure ruled out** **GPU / driver:** Radeon RX 580 Series, AMDVLK 31.0.21925.1001 (driver 0x800117), Vulkan 1.3, no `VK_EXT_mesh_shader`, no GPL. Compute fallback active: `no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback)`. **The error** ```text CRASH: exception 0xc0000005 (read 0x100000000150, guest 0x150) at hookshot.exe+0x11df8243 thread ModuleSystemWorker4 guest backtrace: lr 0x80580b38 0x80580b38 0x8057b1b8 ``` Identical signature to #192 and #369 (`guest 0x150` = null pointer + 0x150 offset, same host offset `+0x11df8243`). Happens right after the opening sequence, shortly into gameplay. **Two runs, same crash — VRAM pressure is not the trigger** | | Run 1 (default preset) | Run 2 (Quality preset lowered) | |---|---|---| | Crash signature | `0xc0000005 ... guest 0x150`, `hookshot.exe+0x11df8243` | **identical** | | VRAM at crash | **5158 / 5158 MB (100%)**, textures 2885 MB over 2730 MB budget | **1173 / 7402 MB (16%)** | | Freeze before crash | yes: `slow submit: 97867.5 ms`, slowest frame **114640.1 ms** (424 pipelines built in 91536 ms) | **none** — largest submit 17 ms (pipeline cache from run 1) | | fps | 60 during cutscene, ~27 after the freeze | **60 fps solid** for ~10 000 presents, then crash | | Worker thread | ModuleSystemWorker3 | ModuleSystemWorker4 | Run 1's freeze did not repeat (pipelines cached in `hookshot_pipelines.bin`), and lowering the preset to free 6 GB of VRAM did not prevent the crash. So the null-deref is not a memory-pressure problem. **What works** The compute fallback itself runs well: 12 000+ frames at 60 fps, no device lost, no graphical corruption reported in these runs. The 11 `program ... not translated: a network left out on this card` messages are the neural movie-upscaling networks absent on this card, as expected. **Logs** - `hookshot_log.txt` — run 2 (lowered preset, VRAM 16%, no freeze, crash) - `hookshot_log.2.txt` — run 1 (default preset, 114 s pipeline freeze, VRAM 100%, crash) Full logs: [gist](https://gist.github.com/arrigowr2/c5fa724ba54bc72c0798f8503c6f36c4) - `hookshot_log.txt` (run 2, lowered preset) and `hookshot_log.2.txt` (run 1, default preset). Happy to run further tests if they help isolate this. Related: #192, #369, #351, #640.
other-jared commented 2026-11-10 13:55:46 +00:00 (Migrated from github.com)

Black screen issue is now fixed for me on v2.0.13

AMD Ryzen 7 5800X 8-Core Processor (3.80 GHz) and NVIDIA TITAN X (Pascal) (12 GB), Windows 11

Gameplay running smooth.

Black screen issue is now fixed for me on v2.0.13 AMD Ryzen 7 5800X 8-Core Processor (3.80 GHz) and NVIDIA TITAN X (Pascal) (12 GB), Windows 11 Gameplay running smooth.
lbmeng commented 2026-11-10 13:57:48 +00:00 (Migrated from github.com)

GTX 1080, tried v2.0.13, still freezes or crashes after the initial Zelda logo and before Deku tree scene.

The log says:

[hos Presentation Thread] vk: FATAL: the GPU device was lost (VK_ERROR_DEVICE_LOST): the driver stopped or reset the GPU, and nothing sent to it runs any more (on Linux, dmesg or journalctl -k around this time names the reset)
vk: FATAL: the GPU device was lost (VK_ERROR_DEVICE_LOST): the driver stopped or reset the GPU, and nothing sent to it runs any more (on Linux, dmesg or journalctl -k around this time names the reset)

Complete log here:
hookshot_log.txt

GTX 1080, tried v2.0.13, still freezes or crashes after the initial Zelda logo and before Deku tree scene. The log says: > [hos Presentation Thread] vk: FATAL: the GPU device was lost (VK_ERROR_DEVICE_LOST): the driver stopped or reset the GPU, and nothing sent to it runs any more (on Linux, dmesg or journalctl -k around this time names the reset) vk: FATAL: the GPU device was lost (VK_ERROR_DEVICE_LOST): the driver stopped or reset the GPU, and nothing sent to it runs any more (on Linux, dmesg or journalctl -k around this time names the reset) Complete log here: [hookshot_log.txt](https://github.com/user-attachments/files/34633813/hookshot_log.txt)
zhiying-326 commented 2026-11-10 14:03:06 +00:00 (Migrated from github.com)

Intel Iris Xe (Gen12.2), Linux ANV 26.2.6, v2.0.12: the driver segfault is fixed, and the first world frame waits on ANV's compile of the fallback compute pipelines

This follows my v2.0.7 report in this issue (the same machine, same account). Short version: #1314 and #1317 did what they say — no SIGSEGV in libvulkan_intel.so at the first mesh draw any more — and the game now stops a step earlier than the driver crashing, in the compute pipeline builds themselves.

System. Intel Iris Xe Graphics (Raptor Lake-U, gfx12.2, no VK_EXT_mesh_shader), Mesa 26.2.6 (ANV), Vulkan 1.4.354; i5-1345U, 30 GB RAM, 8 GB swap, Arch Linux, kernel 7.2.14, niri/Wayland. Hookshot v2.0.12, built from the Linux AppImage with my own copy of the game (0400486024DEC000 / v131072 / e0f3ccfa), 186,588 files, no failures, build 26:42.

vk: Intel(R) Iris(R) Xe Graphics (RPL-U), Vulkan 1.4, driver 0x6802006; mesh shaders no, host memory import yes, pipeline libraries yes
vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback)
vk: subgroups: default 32 lanes, 8-32, pinned to 32 on stages 0xe0
vk: matrix multiplies in software (no cooperative matrices)

What v2.0.12 fixed here

With RX_VK_PRECOMPILE=0 the window opens and the title and the opening movie play to the end: 10200 presents, 60.0 fps, no crash, no device lost, no entry in coredumpctl, and the process exits cleanly when I close the window. On v2.0.7 the same run faulted in the driver at the first 3D frame (libvulkan_intel.so+0xa1fa14, RSS 5.7 -> 22.5 GB). hookshot_pipelines.bin and hookshot_programs.bin stop growing once the scene starts, so a failed fallback pipeline is no longer rebuilt on every draw.

Where it stops

At the switch to the first gameplay frame: 8 mesh draws, the 12288x12288 depth target is made, and then nothing is presented again. 40 left out: its compute pipeline is still compiling lines, and no SLOW compile and no not made line at all — no build finishes and none fails.

vk: mesh draw kind 0: 0 2 1680, indirect 0 count 0 max 0 stride 0
vk: dispatch of 48590e0b8589d6ca left out: its compute pipeline is still compiling      (x 40)
vk: texture 0x1147bf6000 12288x12288x1 x1 levels 1 NVN 0x32 -> vk 124 (269 textures, 10391 MB)

Measured on the process: GPU at its idle clock the whole time (300 MHz, i.e. it is not drawing), the presentation thread at about 100% of one core, RSS 6.2 -> 14.7 GB over 12 minutes, shmem (the GPU buffers) flat at 4.4 GB, so the growth is host-side. eu-stack on the busy thread, ten frames, all inside the driver:

#0..#8  libvulkan_intel.so
#9      mkwvk::guarded_compute(VkPipelineCache_T*, VkComputePipelineCreateInfo const*, VkPipeline_T**)
#10     mkwvk::fallback_record(VkCommandBuffer_T*, mkwvk::Program&, mkwvk::DrawArgs const&)
#11     mkwvk::draw(...) -> replay -> run_submit -> submit_q

The same addresses (+0x4f9144, +0x4fcc27) as the frames in my v2.0.7 SIGSEGV, so it is the same part of ANV, now spinning instead of faulting.

The switches I tried

Run Result
v2.0.12, RX_VK_PRECOMPILE=0 title and opening at 60 fps, first world frame never presented; 40 "still compiling", 0 builds finish
+ RX_VK_NOOPT=1 same
+ RX_VK_COMPUTE_WAIT=1 builds happen on the submit thread; stalls in compute pipeline of a54f19e927d8faef: compiling, nothing after it for 6 min
+ RX_VK_NO_SUBGROUP_PIN=1 gets past several builds, then stalls in a fallback_record build (this is the same result as #775's run 10 on Meteor Lake)
+ RX_VK_FORCE_UPSCALE_STUB=1 and =2 no effect: the stub only covers stages with uses_cooperative_matrix, which is false here
+ RX_VK_SKIP_PROG=...a54f19e927d8faef 8 builds finish (SLOW compile 0.2 s to 27.4 s), then it stalls in another fallback build
all four (NO_SUBGROUP_PIN + COMPUTE_SERIAL=0 + SKIP_PROG + PRECOMPILE=0) 18 compute builds finish (0.27 s to 43.1 s), then 739acd678ae08655 stalls for over 8 min with no line, RSS 14.7 GB

So RX_VK_COMPUTE_SERIAL=0 (which is serial by default because vendorID == 0x8086) does help, and skipping the one program that never returns helps, but every run then stops at the next build. The game needs a couple of dozen of them through before the first world frame.

One module, measured on its own

To tell "the fallback path is slow here" from "the driver does not finish", I pulled the modules out of the program cache (hookshot_programs.bin, 361 keys kept) into plain .spv files (kept local; I am not posting game data) and built a 130-line harness: stock loader, vkCreateShaderModule, vkCreateComputePipelines, a pipeline layout generated from the module's own OpDecorate bindings, no game and no Hookshot code.

  • All 125 modules pass the check this repo's CI uses: spirv-val --target-env vulkan1.3 --uniform-buffer-standard-layout.
  • All 42 fallback (mesh_cs/task_cs) modules build, 17 KB to 748 KB, in 1 ms to 9.2 s.
  • One compute module, a54f19e927d8faef, 1014 KB: 20 min 37 s of CPU, then still not returned (1238 s user time, RSS held at 4.1 GB). VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT makes no difference.
  • The subgroup pin is the sharpest case. mkwvk::pin_subgroup sets requiredSubgroupSize = 32 on the fallback stages (stages 0xe0: compute/task/mesh). On this GPU ANV's default subgroup size is already 32, so the pin changes nothing about the shader's meaning, but it changes the compile:
fallback module no pin requiredSubgroupSize = 32
2bcc4174a654992f task_cs, 119 KB 15 ms 326 ms
28dd2baa17ba10e1 task_cs, 748 KB 18 ms 27 ms
3b8c07f2eb4bb7d9 mesh_cs, 313 KB 20 ms still running after 8 min 25 s

Adding REQUIRE_FULL_SUBGROUPS makes no difference on that last one.

Two smaller things from the same runs

  • The shader preparation the builder runs after the build (hookshot --prepare-shaders) takes 23.3 GB of RSS on this machine and stops at @@progress 0.003 with no I/O for minutes at 591% CPU. That is the same step as #775, one Intel generation older, and RX_VK_PRECOMPILE=0 avoids it as it does there.
  • At the first world frame the texture table reads 269 textures, 10391 MB while the same run's budget line says textures 143 MB (budget 2560 MB), i.e. the integrated-GPU cap is not holding for the 12288x12288 depth target (quazardous reports the same on an ROG Ally X in #1000, at 3515 MB of 2560 MB).

What I think this means

The fallback modules that build, build fast; the ones that do not are in the driver, not in the module (all of them pass spirv-val). The subgroup pin looks like the thing worth looking at first, because it turns a 20 ms compile into one that has not finished in 8 minutes on a part whose default subgroup size is already 32 — and RX_VK_NO_SUBGROUP_PIN=1 costs nothing semantically there.

I am happy to re-run any of these on v2.0.13 (whose notes say everything but the menu and the frame cap is v2.0.12) and to give the harness to whoever wants it. I can also attach the hookshot_log.txt for each of the runs above if that helps.

### Intel Iris Xe (Gen12.2), Linux ANV 26.2.6, v2.0.12: the driver segfault is fixed, and the first world frame waits on ANV's compile of the fallback compute pipelines This follows my v2.0.7 report in this issue (the same machine, same account). Short version: `#1314` and `#1317` did what they say — no `SIGSEGV` in `libvulkan_intel.so` at the first mesh draw any more — and the game now stops a step earlier than the driver crashing, in the compute pipeline builds themselves. **System.** Intel Iris Xe Graphics (Raptor Lake-U, gfx12.2, no `VK_EXT_mesh_shader`), Mesa 26.2.6 (ANV), Vulkan 1.4.354; i5-1345U, 30 GB RAM, 8 GB swap, Arch Linux, kernel 7.2.14, niri/Wayland. Hookshot v2.0.12, built from the Linux AppImage with my own copy of the game (0400486024DEC000 / v131072 / e0f3ccfa), 186,588 files, no failures, build 26:42. ``` vk: Intel(R) Iris(R) Xe Graphics (RPL-U), Vulkan 1.4, driver 0x6802006; mesh shaders no, host memory import yes, pipeline libraries yes vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback) vk: subgroups: default 32 lanes, 8-32, pinned to 32 on stages 0xe0 vk: matrix multiplies in software (no cooperative matrices) ``` ### What v2.0.12 fixed here With `RX_VK_PRECOMPILE=0` the window opens and the title and the opening movie play to the end: `10200 presents, 60.0 fps`, no crash, no device lost, no entry in `coredumpctl`, and the process exits cleanly when I close the window. On v2.0.7 the same run faulted in the driver at the first 3D frame (`libvulkan_intel.so+0xa1fa14`, RSS 5.7 -> 22.5 GB). `hookshot_pipelines.bin` and `hookshot_programs.bin` stop growing once the scene starts, so a failed fallback pipeline is no longer rebuilt on every draw. ### Where it stops At the switch to the first gameplay frame: 8 mesh draws, the `12288x12288` depth target is made, and then nothing is presented again. 40 `left out: its compute pipeline is still compiling` lines, and **no** `SLOW compile` and **no** `not made` line at all — no build finishes and none fails. ``` vk: mesh draw kind 0: 0 2 1680, indirect 0 count 0 max 0 stride 0 vk: dispatch of 48590e0b8589d6ca left out: its compute pipeline is still compiling (x 40) vk: texture 0x1147bf6000 12288x12288x1 x1 levels 1 NVN 0x32 -> vk 124 (269 textures, 10391 MB) ``` Measured on the process: GPU at its idle clock the whole time (300 MHz, i.e. it is not drawing), the presentation thread at about 100% of one core, RSS 6.2 -> 14.7 GB over 12 minutes, shmem (the GPU buffers) flat at 4.4 GB, so the growth is host-side. `eu-stack` on the busy thread, ten frames, all inside the driver: ``` #0..#8 libvulkan_intel.so #9 mkwvk::guarded_compute(VkPipelineCache_T*, VkComputePipelineCreateInfo const*, VkPipeline_T**) #10 mkwvk::fallback_record(VkCommandBuffer_T*, mkwvk::Program&, mkwvk::DrawArgs const&) #11 mkwvk::draw(...) -> replay -> run_submit -> submit_q ``` The same addresses (`+0x4f9144`, `+0x4fcc27`) as the frames in my v2.0.7 `SIGSEGV`, so it is the same part of ANV, now spinning instead of faulting. ### The switches I tried | Run | Result | |---|---| | v2.0.12, `RX_VK_PRECOMPILE=0` | title and opening at 60 fps, first world frame never presented; 40 "still compiling", 0 builds finish | | `+ RX_VK_NOOPT=1` | same | | `+ RX_VK_COMPUTE_WAIT=1` | builds happen on the submit thread; stalls in `compute pipeline of a54f19e927d8faef: compiling`, nothing after it for 6 min | | `+ RX_VK_NO_SUBGROUP_PIN=1` | gets past several builds, then stalls in a `fallback_record` build (this is the same result as #775's run 10 on Meteor Lake) | | `+ RX_VK_FORCE_UPSCALE_STUB=1` and `=2` | no effect: the stub only covers stages with `uses_cooperative_matrix`, which is false here | | `+ RX_VK_SKIP_PROG=...a54f19e927d8faef` | 8 builds finish (`SLOW compile` 0.2 s to 27.4 s), then it stalls in another fallback build | | all four (`NO_SUBGROUP_PIN` + `COMPUTE_SERIAL=0` + `SKIP_PROG` + `PRECOMPILE=0`) | **18 compute builds finish** (0.27 s to 43.1 s), then `739acd678ae08655` stalls for over 8 min with no line, RSS 14.7 GB | So `RX_VK_COMPUTE_SERIAL=0` (which is serial by default because `vendorID == 0x8086`) does help, and skipping the one program that never returns helps, but every run then stops at the next build. The game needs a couple of dozen of them through before the first world frame. ### One module, measured on its own To tell "the fallback path is slow here" from "the driver does not finish", I pulled the modules out of the program cache (`hookshot_programs.bin`, 361 keys kept) into plain `.spv` files (kept local; I am not posting game data) and built a 130-line harness: stock loader, `vkCreateShaderModule`, `vkCreateComputePipelines`, a pipeline layout generated from the module's own `OpDecorate` bindings, no game and no Hookshot code. - All 125 modules pass the check this repo's CI uses: `spirv-val --target-env vulkan1.3 --uniform-buffer-standard-layout`. - All 42 fallback (`mesh_cs`/`task_cs`) modules build, 17 KB to 748 KB, in 1 ms to 9.2 s. - One compute module, `a54f19e927d8faef`, 1014 KB: **20 min 37 s of CPU, then still not returned** (1238 s user time, RSS held at 4.1 GB). `VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT` makes no difference. - The subgroup pin is the sharpest case. `mkwvk::pin_subgroup` sets `requiredSubgroupSize = 32` on the fallback stages (`stages 0xe0`: compute/task/mesh). On this GPU ANV's default subgroup size is already 32, so the pin changes nothing about the shader's meaning, but it changes the compile: | fallback module | no pin | `requiredSubgroupSize = 32` | |---|---|---| | `2bcc4174a654992f` task_cs, 119 KB | 15 ms | 326 ms | | `28dd2baa17ba10e1` task_cs, 748 KB | 18 ms | 27 ms | | `3b8c07f2eb4bb7d9` mesh_cs, 313 KB | **20 ms** | **still running after 8 min 25 s** | Adding `REQUIRE_FULL_SUBGROUPS` makes no difference on that last one. ### Two smaller things from the same runs - The shader preparation the builder runs after the build (`hookshot --prepare-shaders`) takes 23.3 GB of RSS on this machine and stops at `@@progress 0.003` with no I/O for minutes at 591% CPU. That is the same step as #775, one Intel generation older, and `RX_VK_PRECOMPILE=0` avoids it as it does there. - At the first world frame the texture table reads `269 textures, 10391 MB` while the same run's budget line says `textures 143 MB (budget 2560 MB)`, i.e. the integrated-GPU cap is not holding for the `12288x12288` depth target (quazardous reports the same on an ROG Ally X in #1000, at 3515 MB of 2560 MB). ### What I think this means The fallback modules that build, build fast; the ones that do not are in the driver, not in the module (all of them pass `spirv-val`). The subgroup pin looks like the thing worth looking at first, because it turns a 20 ms compile into one that has not finished in 8 minutes on a part whose default subgroup size is already 32 — and `RX_VK_NO_SUBGROUP_PIN=1` costs nothing semantically there. I am happy to re-run any of these on v2.0.13 (whose notes say everything but the menu and the frame cap is v2.0.12) and to give the harness to whoever wants it. I can also attach the `hookshot_log.txt` for each of the runs above if that helps.
joao0205-lab commented 2026-11-10 14:15:07 +00:00 (Migrated from github.com)

[Feature Request] Add Three Mesh Shader Modes: Automatic, Native and Compute

Hello developers! 👋

I'd like to suggest a feature inspired by Fritchii v5.6 that could improve compatibility with older graphics cards.

Fritchii recently introduced three selectable Mesh Shader modes in its graphics settings:

  • Automatic: Automatically selects the appropriate Mesh Shader implementation based on GPU compatibility.
  • Native: Uses native Mesh Shaders on supported GPUs.
  • Compute: Uses a compute-based fallback for GPUs that don't support native Mesh Shaders.

Why is this important?

I have an AMD Radeon RX 5500 XT 8GB, which doesn't support native Mesh Shaders.

When I selected Compute in Fritchii v5.6, previously missing geometry started rendering correctly, including doors, trees, leaves, and other environmental objects.

This is a significant compatibility improvement!

However, performance is still very low, around 2–5 FPS, and the emulator process consumes approximately 10–11 GB of system RAM.

My suggestion

Could you consider implementing a similar three-mode Mesh Shader selection system in your project?

This would allow users with

Image
# [Feature Request] Add Three Mesh Shader Modes: Automatic, Native and Compute Hello developers! 👋 I'd like to suggest a feature inspired by **Fritchii v5.6** that could improve compatibility with older graphics cards. Fritchii recently introduced three selectable Mesh Shader modes in its graphics settings: - **Automatic:** Automatically selects the appropriate Mesh Shader implementation based on GPU compatibility. - **Native:** Uses native Mesh Shaders on supported GPUs. - **Compute:** Uses a compute-based fallback for GPUs that don't support native Mesh Shaders. ### Why is this important? I have an **AMD Radeon RX 5500 XT 8GB**, which doesn't support native Mesh Shaders. When I selected **Compute** in Fritchii v5.6, previously missing geometry started rendering correctly, including doors, trees, leaves, and other environmental objects. This is a significant compatibility improvement! However, performance is still very low, around **2–5 FPS**, and the emulator process consumes approximately **10–11 GB of system RAM**. ### My suggestion Could you consider implementing a similar three-mode Mesh Shader selection system in your project? This would allow users with <img width="1366" height="768" alt="Image" src="https://github.com/user-attachments/assets/7642a229-1173-460e-aee4-2d5108c1a17c" />
zhiying-326 commented 2026-11-10 14:37:02 +00:00 (Migrated from github.com)

Correction to my comment above: I titled it after the fallback, which is the path this GPU takes, but I should not have generalised from one machine.

An Arc A750 reports mesh shaders yes and still stays black after the intro (#17), so the fallback is not what the Intel reports have in common.

What they do share is that the affected programs compile through the software-matrix path — a correlation across the logs, not a root cause I can prove. Compared by program key, since the key is a hash of the shader's contents and so the same key on two machines is the same shader:

program Arc A750, Windows 11, v2.0.5 (#17), from that log Iris Xe, gfx12.2, ANV 26.2.6, v2.0.12
a54f19e927d8faef SLOW compile, 67126 ms harness: still not returned after 20 min 37 s of CPU (1238 s user time, RSS ~4.1 GB)
3e6fe279463b020e SLOW compile, 14662 ms SLOW compile, 37208 ms (in game)
4b03b3040d7cf076 — SLOW compile, 17723 ms (in game)

Separately, 4b03b3040d7cf076 is the program named at the device-lost checkpoints in #17 (Arc 140V), #366 and #741 (Core Ultra 7 155H), #374 (Arc 140V) and #999 (Arc B580, v2.0.13). On this machine it compiles in 17.7 s and does not crash, so that is one place the two platforms differ.

a54f19e927d8faef is 1,014,936 bytes of SPIR-V (253,734 words) — one of the 25 program-cache compute modules, not one of the 42 fallback stages — and is one of the networks that runs on software matrices. The A750 log (#17) states the project's reason for the software path and carries the same subgroup pin:

vk: matrix multiplies in software (the cooperative matrices lack 16x8x16 f16)
vk: subgroups: default 32 lanes, 8-32, pinned to 32 on stages 0xe0

(both lines from #17)

So the subgroup pin is not specific to this machine either, and it stands as a separate finding. In the standalone harness all 42 fallback modules build in 1 ms to 9.2 s, but with requiredSubgroupSize = 32 pinned — as the project pins it on the fallback stages — fallback module 3b8c07f2eb4bb7d9 (313 KB) goes from 20 ms to not returning after 8 min 25 s, on a GPU whose default subgroup size is already 32 lanes, so the pin should be a no-op there. I am not claiming that is what hangs the game; it is only the sharpest reproducible difference I could measure.

Whether this is better tracked as one entry keyed by program rather than one per GPU, I will leave to you. I can test any build or branch on this machine (Iris Xe, gfx12.2, ANV 26.2.6, Linux) and report per-module compile times from a 130-line standalone harness (stock Vulkan loader, vkCreateComputePipelines, pipeline layout from the module's own OpDecorate bindings, no game code).

Correction to my comment above: I titled it after the fallback, which is the path this GPU takes, but I should not have generalised from one machine. An Arc A750 reports `mesh shaders yes` and still stays black after the intro (#17), so the fallback is not what the Intel reports have in common. What they do share is that the affected programs compile through the software-matrix path — a correlation across the logs, not a root cause I can prove. Compared by program key, since the key is a hash of the shader's contents and so the same key on two machines is the same shader: | program | Arc A750, Windows 11, v2.0.5 (#17), from that log | Iris Xe, gfx12.2, ANV 26.2.6, v2.0.12 | |---|---|---| | `a54f19e927d8faef` | `SLOW compile, 67126 ms` | harness: still not returned after 20 min 37 s of CPU (1238 s user time, RSS ~4.1 GB) | | `3e6fe279463b020e` | `SLOW compile, 14662 ms` | `SLOW compile, 37208 ms` (in game) | | `4b03b3040d7cf076` | — | `SLOW compile, 17723 ms` (in game) | Separately, `4b03b3040d7cf076` is the program named at the device-lost checkpoints in #17 (Arc 140V), #366 and #741 (Core Ultra 7 155H), #374 (Arc 140V) and #999 (Arc B580, v2.0.13). On this machine it compiles in 17.7 s and does not crash, so that is one place the two platforms differ. `a54f19e927d8faef` is 1,014,936 bytes of SPIR-V (253,734 words) — one of the 25 program-cache compute modules, not one of the 42 fallback stages — and is one of the networks that runs on software matrices. The A750 log (#17) states the project's reason for the software path and carries the same subgroup pin: ``` vk: matrix multiplies in software (the cooperative matrices lack 16x8x16 f16) vk: subgroups: default 32 lanes, 8-32, pinned to 32 on stages 0xe0 ``` (both lines from #17) So the subgroup pin is not specific to this machine either, and it stands as a separate finding. In the standalone harness all 42 fallback modules build in 1 ms to 9.2 s, but with `requiredSubgroupSize = 32` pinned — as the project pins it on the fallback stages — fallback module `3b8c07f2eb4bb7d9` (313 KB) goes from 20 ms to not returning after 8 min 25 s, on a GPU whose default subgroup size is already 32 lanes, so the pin should be a no-op there. I am not claiming that is what hangs the game; it is only the sharpest reproducible difference I could measure. Whether this is better tracked as one entry keyed by program rather than one per GPU, I will leave to you. I can test any build or branch on this machine (Iris Xe, gfx12.2, ANV 26.2.6, Linux) and report per-module compile times from a 130-line standalone harness (stock Vulkan loader, `vkCreateComputePipelines`, pipeline layout from the module's own `OpDecorate` bindings, no game code).
napr0 commented 2026-11-10 16:04:09 +00:00 (Migrated from github.com)

By ‘old shaders,’ I meant cached shader files left by an older Hookshot version, not a mod

hookshot_log.txt

By ‘old shaders,’ I meant cached shader files left by an older Hookshot version, not a mod [hookshot_log.txt](https://github.com/user-attachments/files/34638759/hookshot_log.txt)
frog1799-tp commented 2026-11-10 16:28:40 +00:00 (Migrated from github.com)

hookshot_log.txt

GPU : RX 580 8GB
AMD DRIVER : 26.5.2
HOOKSHOT : v2.0.13

still crashed on Deku Tree cutscene after the intro, with texture flickering glitch

[hookshot_log.txt](https://github.com/user-attachments/files/34639609/hookshot_log.txt) GPU : RX 580 8GB AMD DRIVER : 26.5.2 HOOKSHOT : v2.0.13 still crashed on Deku Tree cutscene after the intro, with texture flickering glitch
Syn-pixel commented 2026-11-10 16:48:57 +00:00 (Migrated from github.com)

hookshot_log.txt

CPU: intel core i7 (tiger lake UP3)
GPU: TigerLake-LP GT2 [Iris Xe Graphics]
Mesa 26.2.5
16 go Ram ddr4
Hookshot : v2.0.13

Pipelines won't load before launch...

[hookshot_log.txt](https://github.com/user-attachments/files/34640265/hookshot_log.txt) CPU: intel core i7 (tiger lake UP3) GPU: TigerLake-LP GT2 [Iris Xe Graphics] Mesa 26.2.5 16 go Ram ddr4 Hookshot : v2.0.13 Pipelines won't load before launch...
disgustingusting-web commented 2026-11-10 16:57:24 +00:00 (Migrated from github.com)

My game seems to come to an odd crash after the owl flys over links house, fades to black then locks up the whole window, task manager is needed to close window, also strange audio delay to where i can just hear ganons horse coming across the bridge while the owl is starting to fly by the how in intro cutscene, before on a previous version like 2.0.6 ish i was able to go all the way to navi meeting link in the tree and as soon as i touched the door it would crash, i have yet to leave the tree once. XD having a blast tho trying, included all logs still saved intel UHD Graphics Intigrated 8Gb Vram 11th gen core i3 1115G4 @3.0ghz 2 cores 16gb windows 11

hmmm guess its too long

hookshot_log.txt

hookshot_log.1.txt

hookshot_log.2.txt

hookshot_log.3.txt

hookshot_log.4.txt

My game seems to come to an odd crash after the owl flys over links house, fades to black then locks up the whole window, task manager is needed to close window, also strange audio delay to where i can just hear ganons horse coming across the bridge while the owl is starting to fly by the how in intro cutscene, before on a previous version like 2.0.6 ish i was able to go all the way to navi meeting link in the tree and as soon as i touched the door it would crash, i have yet to leave the tree once. XD having a blast tho trying, included all logs still saved intel UHD Graphics Intigrated 8Gb Vram 11th gen core i3 1115G4 @3.0ghz 2 cores 16gb windows 11 <!-- Failed to upload "12-06-39.mp4" --> hmmm guess its too long [hookshot_log.txt](https://github.com/user-attachments/files/34640717/hookshot_log.txt) [hookshot_log.1.txt](https://github.com/user-attachments/files/34640719/hookshot_log.1.txt) [hookshot_log.2.txt](https://github.com/user-attachments/files/34640724/hookshot_log.2.txt) [hookshot_log.3.txt](https://github.com/user-attachments/files/34640728/hookshot_log.3.txt) [hookshot_log.4.txt](https://github.com/user-attachments/files/34640730/hookshot_log.4.txt)
MrKulrat commented 2026-11-10 18:37:59 +00:00 (Migrated from github.com)

hookshot_log.txt

Windows 11 Pro
CPU: AMD Ryzen 7 5800X
GPU: GTX 1080 Ti
RAM: 32GB 3200 MT/s
Hookshot : v2.0.14

Some issues with texture loading and textures not appearing; this log corresponds to a saved game in the Desert of the Colossus; some FPS drops, but nothing serious

[hookshot_log.txt](https://github.com/user-attachments/files/34650491/hookshot_log.txt) Windows 11 Pro CPU: AMD Ryzen 7 5800X GPU: GTX 1080 Ti RAM: 32GB 3200 MT/s Hookshot : v2.0.14 Some issues with texture loading and textures not appearing; this log corresponds to a saved game in the Desert of the Colossus; some FPS drops, but nothing serious
tanner01112 commented 2026-11-10 19:56:34 +00:00 (Migrated from github.com)

Crash after loading a save into the world: AMD RX 580 2048SP, v2.0.14 (source 3a9998c3)

System

  • GPU: AMD Radeon RX 580 2048SP (8 GB, Polaris), Vulkan 1.3, Vulkan driver 0x800117 (decodes to 2.0.279)
  • OS: Windows 11, 12 GB RAM, 19 GB page file
  • Game: TLZOT_NSW2 1.1.1, windowed 1280x720
  • Hookshot: v2.0.14 (source 3a9998c3), log says it is the latest release

Fallback path (from the log)

vk: AMD Radeon RX 580 2048SP, Vulkan 1.3, driver 0x800117; mesh shaders no, host memory import yes, pipeline libraries no
vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback)
vk: matrix multiplies in software (no cooperative matrices)

Good news: the v2.0.11 driver crash is gone. On v2.0.11 I crashed inside amdvlk64.dll (amdvlk64.dll+0x1cb8bf9) right after the mesh draw for mesh a5da9f84b72d1471, 3 runs out of 3 (logs available if useful). On v2.0.14 that same mesh program translates and draws fine (20,000+ DrawMeshTasksIndirect calls, no driver crash).

New crash, 2 of 2 runs. It happens about 30 s after my save loads into the world (Kokiri Forest, running at 0.3 to 7 fps during the load):

CRASH: exception 0xc0000005 (read 0x100000000150, guest 0x150) at hookshot.exe+0x11df82c3
  • Thread: ModuleSystemWorker1 in run 1, ModuleSystemWorker2 in run 2
  • Guest backtrace identical in both runs: lr 0x80580b38 0x80580b38 0x8057b1b8
  • Host backtrace identical in both runs
  • Looks like a null pointer read at offset 0x150 in game code
  • A longjmp (to 0x81681690) is logged once in each run before the crash

Ruled out: run 1 started with a nearly empty pipeline cache and had a ~3.5 minute compile freeze before the crash. Run 2 started with warm caches (about 32 MB) and no long freeze. Same crash both times, so it does not look cache or compile related.

Also in the logs: 10 to 12 programs failed to translate, VRAM sits at 7367 of 7367 MB during the load, in-world fps is about 1 to 18.

Logs: three files are attached at the bottom of this comment: hookshot_log.txt, hookshot_log.1.txt and hookshot_log.2.txt, all from the same install. hookshot_log.txt is run 1 (cold cache, ModuleSystemWorker1). The full run 2 log (warm cache, ModuleSystemWorker2) is also available.

Happy to test any build or env var.
hookshot_log.txt
hookshot_log.1.txt
hookshot_log.2.txt

**Crash after loading a save into the world: AMD RX 580 2048SP, v2.0.14 (source 3a9998c3)** **System** - GPU: AMD Radeon RX 580 2048SP (8 GB, Polaris), Vulkan 1.3, Vulkan driver 0x800117 (decodes to 2.0.279) - OS: Windows 11, 12 GB RAM, 19 GB page file - Game: TLZOT_NSW2 1.1.1, windowed 1280x720 - Hookshot: v2.0.14 (source 3a9998c3), log says it is the latest release **Fallback path (from the log)** ``` vk: AMD Radeon RX 580 2048SP, Vulkan 1.3, driver 0x800117; mesh shaders no, host memory import yes, pipeline libraries no vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback) vk: matrix multiplies in software (no cooperative matrices) ``` **Good news: the v2.0.11 driver crash is gone.** On v2.0.11 I crashed inside amdvlk64.dll (amdvlk64.dll+0x1cb8bf9) right after the mesh draw for mesh a5da9f84b72d1471, 3 runs out of 3 (logs available if useful). On v2.0.14 that same mesh program translates and draws fine (20,000+ DrawMeshTasksIndirect calls, no driver crash). **New crash, 2 of 2 runs.** It happens about 30 s after my save loads into the world (Kokiri Forest, running at 0.3 to 7 fps during the load): ``` CRASH: exception 0xc0000005 (read 0x100000000150, guest 0x150) at hookshot.exe+0x11df82c3 ``` - Thread: ModuleSystemWorker1 in run 1, ModuleSystemWorker2 in run 2 - Guest backtrace identical in both runs: lr 0x80580b38 0x80580b38 0x8057b1b8 - Host backtrace identical in both runs - Looks like a null pointer read at offset 0x150 in game code - A longjmp (to 0x81681690) is logged once in each run before the crash **Ruled out:** run 1 started with a nearly empty pipeline cache and had a ~3.5 minute compile freeze before the crash. Run 2 started with warm caches (about 32 MB) and no long freeze. Same crash both times, so it does not look cache or compile related. **Also in the logs:** 10 to 12 programs failed to translate, VRAM sits at 7367 of 7367 MB during the load, in-world fps is about 1 to 18. **Logs:** three files are attached at the bottom of this comment: hookshot_log.txt, hookshot_log.1.txt and hookshot_log.2.txt, all from the same install. hookshot_log.txt is run 1 (cold cache, ModuleSystemWorker1). The full run 2 log (warm cache, ModuleSystemWorker2) is also available. Happy to test any build or env var. [hookshot_log.txt](https://github.com/user-attachments/files/34648757/hookshot_log.txt) [hookshot_log.1.txt](https://github.com/user-attachments/files/34648756/hookshot_log.1.txt) [hookshot_log.2.txt](https://github.com/user-attachments/files/34648758/hookshot_log.2.txt)
thesunlace commented 2026-11-10 20:22:47 +00:00 (Migrated from github.com)

Crash after the opening cutscene or when loading a save file: Hookshot v2.0.14

GPU: GTX 1060 6GB, Vulkan 1.4, driver 0x91540000
CPU: Ryzen 5 3600
OS: Windows 11, 16GB RAM DDR4

vk: FATAL: the GPU device was lost (VK_ERROR_DEVICE_LOST): the driver stopped or reset the GPU, and nothing sent to it runs any more (on Linux, dmesg or journalctl -k around this time names the reset)

hookshot_log.txt (log from the v2.0.14)

On a previous version (v2.0.11) instead of crashing it instead froze in a completely black screen, with no audio in the background.

hookshot_log.3.txt (log from the v2.0.11)

**Crash after the opening cutscene or when loading a save file: Hookshot v2.0.14** GPU: GTX 1060 6GB, Vulkan 1.4, driver 0x91540000 CPU: Ryzen 5 3600 OS: Windows 11, 16GB RAM DDR4 `vk: FATAL: the GPU device was lost (VK_ERROR_DEVICE_LOST): the driver stopped or reset the GPU, and nothing sent to it runs any more (on Linux, dmesg or journalctl -k around this time names the reset)` [hookshot_log.txt](https://github.com/user-attachments/files/34649662/hookshot_log.txt) **(log from the v2.0.14)** On a previous version (v2.0.11) instead of crashing it instead froze in a completely black screen, with no audio in the background. [hookshot_log.3.txt](https://github.com/user-attachments/files/34649751/hookshot_log.3.txt) **(log from the v2.0.11)**
kraugeel commented 2026-11-10 20:27:18 +00:00 (Migrated from github.com)

I just started the game, all logs from the very first quick saves of the game, inside the tree house and then it crashes without being able to leave. I'm using Intel(R) Core(TM) i3-10100 and AMD Radeon RX 580 2048SP (8 GB)
hookshot_log.txt
hookshot_log.1.txt
hookshot_log.2.txt
hookshot_log.3.txt
hookshot_log.4.txt

I just started the game, all logs from the very first quick saves of the game, inside the tree house and then it crashes without being able to leave. I'm using Intel(R) Core(TM) i3-10100 and AMD Radeon RX 580 2048SP (8 GB) [hookshot_log.txt](https://github.com/user-attachments/files/34649829/hookshot_log.txt) [hookshot_log.1.txt](https://github.com/user-attachments/files/34649828/hookshot_log.1.txt) [hookshot_log.2.txt](https://github.com/user-attachments/files/34649831/hookshot_log.2.txt) [hookshot_log.3.txt](https://github.com/user-attachments/files/34649832/hookshot_log.3.txt) [hookshot_log.4.txt](https://github.com/user-attachments/files/34649830/hookshot_log.4.txt)
ajsea1sy commented 2026-11-10 20:58:21 +00:00 (Migrated from github.com)

The game can make it to the 3D space now!
Of course, the common lagging. And vertex explosions/neon color.
But worst of all, Link has no door..! /j

Image
The game can make it to the 3D space now! Of course, the common lagging. And vertex explosions/neon color. But worst of all, **Link has no door..!** /j <img width="1121" height="847" alt="Image" src="https://github.com/user-attachments/assets/1f89486b-b00d-4882-9c4e-a2745242a2f6" />
camsay1996 commented 2026-11-10 21:05:01 +00:00 (Migrated from github.com)

VK_ERROR_DEVICE_LOST crash (~4000 frames in) on RX 5700 XT right after a runtime compute program is rejected ("a network left out on this card")

Summary

Hookshot v2.0.14 crashes with VK_ERROR_DEVICE_LOST on an AMD RX 5700 XT (RDNA1). Two separate runs crashed at the exact same point, right after the same compute program 6676619641320ba7 is rejected, immediately following a ~600 ms "slow submit". Earlier builds ran fine on this PC, but I don't remember which version. Performance is also poor in other runs (see below).

System

CPU AMD Ryzen 5 2600 (Zen+, 6C/12T, x86-64)
GPU AMD Radeon RX 5700 XT 8 GB (RDNA1 / Navi 10)
RAM 16 GB DDR4 (log: 16304 MB, 18–19 GB swap)
OS Windows 11 x64
GPU driver AMD Adrenalin v 26.10.1 (log reports Vulkan 1.4, driver 0x800161)
Hookshot v2.0.14 (source 3a9998c3)
Renderer Vulkan (hookshot_vk.dll), SDL3
Controller Xbox Series X (SDL)
Install path D:\Games\EMULATOR\ReComp\ROMS\OOT

Capabilities reported by the log for this GPU: no mesh shaders (compute fallback, "issue 640"), software matrix multiplies ("cooperative matrices lack 16x8x16 f16"), FSR 3.1 available.

What happens

Two runs (hookshot_log.txt, hookshot_log_1.txt) crash with the same sequence at roughly 3,800–4,000 presented frames, after about 60 fps in the earlier part of the run:

  1. A compute program that was not precompiled is hit at runtime:
    vk: in play: compute 6676619641320ba7 ... grid 32x18x1
  2. It is rejected:
    vk: program 6676619641320ba7 not translated: a network left out on this card
    vk: rejected compute 6676619641320ba7 ... grid 32x18x1
  3. vk: typed upscale helper generic RGB9E5 fallback
  4. A huge stall: slow submit: 580.4 ms (log) / 621.6 ms (log_1), almost all in draw → descriptors → texture lookups → uploads
  5. vk: submit 30178 failed (-4) (log) / submit 35554 failed (-4) (log_1)
  6. vk: device lost: reading the fault info
  7. FATAL: the GPU device was lost (VK_ERROR_DEVICE_LOST)

VRAM is not the cause: the last status lines show VRAM 1154 MB used of 7383 MB allowed.

Other observations

  • Startup, every log: graphics pipeline for 6eaa646d07ea4e43 not made (-13).
  • Startup, every log: 10 compute programs are rejected with "a network left out on this card" (grids 70x1x1, 900x1x1, 97x1x1, 120x1x1, 85x1x1, 720x1x1, 60x1x1, 5400x1x1, 80x180x1, 8100x1x1), all on 1920x1080 targets.
  • Low FPS run (hookshot_log_3.txt): 1920x1080, frame cap 144, 2x frame interpolation. 27.4 fps, GPU time 20.8 ms/frame, 3482 draws, 1620 textures (2089 MB) after ~13,300 presents. Also logged: a capture's wait for write-back 53999 timed out. No crash in this run, and another program (0775215f8da720e6, grid 40x23x1) was rejected the same way.
  • Stable runs (hookshot_log_2.txt, hookshot_log_4.txt): steady 60 fps at what looks like the title/menu (few draws per frame), ended by the Insert-menu Restart. log_4 used frame interpolation "Auto" (144 Hz). On restart, slow present: 1536.0 ms.
  • Resolution differs between runs: logs 0, 1 and 4 use 2048x1152 (the game's), logs 2 and 3 use 1920x1080. Swapchain is 1280x720 in all.

Log files

File Result
hookshot_log.txt Crash, DEVICE_LOST (submit 30178)
hookshot_log_1.txt Crash, DEVICE_LOST (submit 35554)
hookshot_log_2.txt No crash, 60 fps, restart from menu
hookshot_log_3.txt No crash, 27 fps with 2x interpolation, window closed
hookshot_log_4.txt No crash, 60 fps, restart from menu

Expected behavior

No GPU reset. If a program can't be translated on this GPU, fall back gracefully or skip it.

Questions

  • Is the "network left out on this card" rejection expected on RDNA1 (no f16 cooperative matrices), and could it be what leads to the device loss?
  • Can the same compute program be precompiled or skipped on cards without the required matrix support?

hookshot_log.4.txt
hookshot_log.3.txt
hookshot_log.2.txt
hookshot_log.1.txt
hookshot_log.txt

VK_ERROR_DEVICE_LOST crash (~4000 frames in) on RX 5700 XT right after a runtime compute program is rejected ("a network left out on this card") ## Summary Hookshot v2.0.14 crashes with `VK_ERROR_DEVICE_LOST` on an AMD RX 5700 XT (RDNA1). Two separate runs crashed at the exact same point, right after the same compute program `6676619641320ba7` is rejected, immediately following a ~600 ms "slow submit". Earlier builds ran fine on this PC, but I don't remember which version. Performance is also poor in other runs (see below). ## System | | | |---|---| | CPU | AMD Ryzen 5 2600 (Zen+, 6C/12T, x86-64) | | GPU | AMD Radeon RX 5700 XT 8 GB (RDNA1 / Navi 10) | | RAM | 16 GB DDR4 (log: 16304 MB, 18–19 GB swap) | | OS | Windows 11 x64 | | GPU driver | AMD Adrenalin **v 26.10.1** (log reports Vulkan 1.4, driver 0x800161) | | Hookshot | v2.0.14 (source 3a9998c3) | | Renderer | Vulkan (hookshot_vk.dll), SDL3 | | Controller | Xbox Series X (SDL) | | Install path | D:\Games\EMULATOR\ReComp\ROMS\OOT | Capabilities reported by the log for this GPU: no mesh shaders (compute fallback, "issue 640"), software matrix multiplies ("cooperative matrices lack 16x8x16 f16"), FSR 3.1 available. ## What happens Two runs (`hookshot_log.txt`, `hookshot_log_1.txt`) crash with the same sequence at roughly 3,800–4,000 presented frames, after about 60 fps in the earlier part of the run: 1. A compute program that was not precompiled is hit at runtime: `vk: in play: compute 6676619641320ba7 ... grid 32x18x1` 2. It is rejected: `vk: program 6676619641320ba7 not translated: a network left out on this card` `vk: rejected compute 6676619641320ba7 ... grid 32x18x1` 3. `vk: typed upscale helper generic RGB9E5 fallback` 4. A huge stall: `slow submit: 580.4 ms` (log) / `621.6 ms` (log_1), almost all in draw → descriptors → texture lookups → uploads 5. `vk: submit 30178 failed (-4)` (log) / `submit 35554 failed (-4)` (log_1) 6. `vk: device lost: reading the fault info` 7. `FATAL: the GPU device was lost (VK_ERROR_DEVICE_LOST)` VRAM is not the cause: the last status lines show `VRAM 1154 MB used of 7383 MB allowed`. ## Other observations - **Startup, every log:** `graphics pipeline for 6eaa646d07ea4e43 not made (-13)`. - **Startup, every log:** 10 compute programs are rejected with "a network left out on this card" (grids 70x1x1, 900x1x1, 97x1x1, 120x1x1, 85x1x1, 720x1x1, 60x1x1, 5400x1x1, 80x180x1, 8100x1x1), all on 1920x1080 targets. - **Low FPS run (`hookshot_log_3.txt`):** 1920x1080, frame cap 144, 2x frame interpolation. 27.4 fps, GPU time 20.8 ms/frame, 3482 draws, 1620 textures (2089 MB) after ~13,300 presents. Also logged: `a capture's wait for write-back 53999 timed out`. No crash in this run, and another program (`0775215f8da720e6`, grid 40x23x1) was rejected the same way. - **Stable runs (`hookshot_log_2.txt`, `hookshot_log_4.txt`):** steady 60 fps at what looks like the title/menu (few draws per frame), ended by the Insert-menu Restart. `log_4` used frame interpolation "Auto" (144 Hz). On restart, `slow present: 1536.0 ms`. - Resolution differs between runs: logs 0, 1 and 4 use 2048x1152 (the game's), logs 2 and 3 use 1920x1080. Swapchain is 1280x720 in all. ## Log files | File | Result | |---|---| | hookshot_log.txt | **Crash**, DEVICE_LOST (submit 30178) | | hookshot_log_1.txt | **Crash**, DEVICE_LOST (submit 35554) | | hookshot_log_2.txt | No crash, 60 fps, restart from menu | | hookshot_log_3.txt | No crash, **27 fps** with 2x interpolation, window closed | | hookshot_log_4.txt | No crash, 60 fps, restart from menu | ## Expected behavior No GPU reset. If a program can't be translated on this GPU, fall back gracefully or skip it. ## Questions - Is the "network left out on this card" rejection expected on RDNA1 (no f16 cooperative matrices), and could it be what leads to the device loss? - Can the same compute program be precompiled or skipped on cards without the required matrix support? [hookshot_log.4.txt](https://github.com/user-attachments/files/34651113/hookshot_log.4.txt) [hookshot_log.3.txt](https://github.com/user-attachments/files/34651110/hookshot_log.3.txt) [hookshot_log.2.txt](https://github.com/user-attachments/files/34651111/hookshot_log.2.txt) [hookshot_log.1.txt](https://github.com/user-attachments/files/34651114/hookshot_log.1.txt) [hookshot_log.txt](https://github.com/user-attachments/files/34651112/hookshot_log.txt)
lisasis commented 2026-11-10 21:15:41 +00:00 (Migrated from github.com)

[hos host] vk: device 0: Radeon RX 570 Series, Vulkan 1.3, driver 0x800117, type 2
no mesh shaders

hookshot_log.txt

game starts i managed to pass the cutscene of deku tree but after it in link's room the game closes after at least 20 seconds

[hos host] vk: device 0: Radeon RX 570 Series, Vulkan 1.3, driver 0x800117, type 2 no mesh shaders [hookshot_log.txt](https://github.com/user-attachments/files/34651492/hookshot_log.txt) game starts i managed to pass the cutscene of deku tree but after it in link's room the game closes after at least 20 seconds
02pietrobs-lang commented 2026-11-10 21:21:12 +00:00 (Migrated from github.com)

CPU | AMD Ryzen 5 3400G

GPU | AMD Radeon RX Vega 11 Graphics
VRAM | 2 GB (shared memoria)
RAM | 16 GB DDR4
RAM Speed | 2400 MT/s
Operational System | Windows 11 Pro 26H2
Mother-Board
| Gigabyte AB350M-DS3H V2

hookshot_log.txt

CPU | AMD Ryzen 5 3400G GPU | AMD Radeon RX Vega 11 Graphics VRAM | 2 GB (shared memoria) RAM | 16 GB DDR4 RAM Speed | 2400 MT/s Operational System | Windows 11 Pro 26H2 Mother-Board | Gigabyte AB350M-DS3H V2 [hookshot_log.txt](https://github.com/user-attachments/files/34651714/hookshot_log.txt)
Meltan255 commented 2026-11-10 21:57:55 +00:00 (Migrated from github.com)
[hookshot_log.txt](https://github.com/user-attachments/files/34653023/hookshot_log.txt)
kleinergoo7 commented 2026-11-10 21:58:06 +00:00 (Migrated from github.com)

https://github.com/user-attachments/assets/902c1753-0ee1-4726-bffa-c1f4f1edb2b7

severe graphical issue when selecting games own rendering at 100%, also general graphical issues aswell.

Linux
RX 580 2048sp | Mesa 26.2.6
Ryzen 7 5800x
24gb ram

https://github.com/user-attachments/assets/902c1753-0ee1-4726-bffa-c1f4f1edb2b7 severe graphical issue when selecting games own rendering at 100%, also general graphical issues aswell. Linux RX 580 2048sp | Mesa 26.2.6 Ryzen 7 5800x 24gb ram
NotRexed commented 2026-11-10 23:08:20 +00:00 (Migrated from github.com)

One more from Discord: invisible walls on a GTX Titan (Maxwell, no mesh shaders) with a complete dump, on v2.0.14.

One more from Discord: invisible walls on a GTX Titan (Maxwell, no mesh shaders) with a complete dump, on v2.0.14.
Crono141 commented 2026-11-11 00:59:43 +00:00 (Migrated from github.com)

I'm currently chasing the no-walls problem on RX590 linux. Will let you know if I find a cause/fix

missing floor
I'm currently chasing the no-walls problem on RX590 linux. Will let you know if I find a cause/fix <img width="1291" height="759" alt="missing floor" src="https://github.com/user-attachments/assets/a2dbffc5-6636-4ea4-90d7-82cb36596ebd" />
Crono141 commented 2026-11-11 01:25:40 +00:00 (Migrated from github.com)

Follow-up on the invisible walls (RX 590, Linux/RADV, v2.0.14 + the compute fallback). The GTX Titan report fits: I think this is the fallback itself, not the GPU or the dump.

Where: Deku Tree, the door room on 2F. The walls beside the door can't be seen but are solid.

What a frame dump shows (RX_VK_DUMP_KEY, then the same with RX_VK_DUMP_EACH=2,600 for one depth image per draw):

  • Two strips beside the door stay at far depth for the whole frame. No draw ever writes there, so the walls aren't being drawn and then covered up.
  • These fallback draws change no depth pixels at all: cb71f79f6129aab8, e28434e1afe8321a, 8e2f7af4245747ef, 8a8304edb7bdf4bf, 9d8403e2e566c773, 6afe3fda3f4b1752, a6a688bae3c9b80c.

1. Indirect task draws never ran their mesh stage. For an indirect task + mesh draw, DrawArgs.groups[0] is 0, because the count is in the indirect record. fallback_record works out slots from it, so it came out 0 and the mesh dispatch was skipped. The programs affected here were 8e2f7af4245747ef, 8a8304edb7bdf4bf, 28dd2baa17ba10e1, 51183fe750d5d0c8 and 43ec86f35fd937b9. Reading their records on the CPU showed 32 and 90 task groups. The change I tested runs every slot for them; the ones the task didn't start cull themselves:

const bool task_indirect{p.fallback_task && d.indirect};
const uint32_t slots{!p.fallback_task ? 0u
                     : task_indirect  ? capacity
                                      : (uint32_t)std::min<uint64_t>(
                                           (uint64_t)groups * std::max(1u, p.fallback_task_threads), capacity)};

2. With that change, their mesh stage still writes no primitives. I added a probe that copies the payload "started" flags and the records' per-slot primitive counts out after a draw. In the same room:

program kind task started slots with primitives
87eab3665f2b872c direct task + mesh 280 280 (17,080 prims)
8a8304edb7bdf4bf indirect task + mesh 31–219 0
43ec86f35fd937b9 indirect task + mesh 3–219 0
51183fe750d5d0c8 indirect task + mesh 77 6
6afe3fda3f4b1752, e28434e1afe8321a, 3b8c07f2eb4bb7d9 indirect, mesh only – 0

Direct task draws produce primitives for every slot their task stage starts. The indirect ones don't.

3. One difference in the IR (RX_VK_IR): the failing mesh stages (8a8304ed, 8e2f7af4, 43ec86f3) contain LoadGlobal32 / LoadGlobal128. In 8e2f7af4 the pointer is a LoadStorage64 from ssbo 0 at a cbuf offset, plus an offset. Peeking guest memory, c0+0x770 holds 0x117e7be000, which is the start of the buffer bound at c0+0x880/0x890 (size 0x454000). The working mesh stages (87eab366, a5da9f84) only use LoadStorage*. Translating again with RX_VK_FOLLOW_MESH=1 didn't help: 8e2f7af4 went from 0 to 10 slots with primitives, and the rest stayed at 0. So either those loads still miss, or something else in these programs fails in the fallback.

Two smaller things I noticed:

  • Draws over the slot limit: a few direct task draws ask for 1088 slots (34 groups × 32), and the last 2 groups are never started.
  • The mesh stage's workgroup id: it reads WorkgroupId as the slot, wg * threads + thread. On native hardware it would be the index inside the task's launch. Direct draws produce primitives anyway, so it may not matter here.

To reproduce this on a card with mesh shaders, the new Mesh shaders → Compute row (#1971) should do it.

Follow-up on the invisible walls (RX 590, Linux/RADV, v2.0.14 + the compute fallback). The GTX Titan report fits: I think this is the fallback itself, not the GPU or the dump. **Where:** Deku Tree, the door room on 2F. The walls beside the door can't be seen but are solid. **What a frame dump shows** (`RX_VK_DUMP_KEY`, then the same with `RX_VK_DUMP_EACH=2,600` for one depth image per draw): - Two strips beside the door stay at far depth for the whole frame. No draw ever writes there, so the walls aren't being drawn and then covered up. - These fallback draws change no depth pixels at all: `cb71f79f6129aab8`, `e28434e1afe8321a`, `8e2f7af4245747ef`, `8a8304edb7bdf4bf`, `9d8403e2e566c773`, `6afe3fda3f4b1752`, `a6a688bae3c9b80c`. **1. Indirect task draws never ran their mesh stage.** For an indirect task + mesh draw, `DrawArgs.groups[0]` is 0, because the count is in the indirect record. `fallback_record` works out `slots` from it, so it came out 0 and the mesh dispatch was skipped. The programs affected here were `8e2f7af4245747ef`, `8a8304edb7bdf4bf`, `28dd2baa17ba10e1`, `51183fe750d5d0c8` and `43ec86f35fd937b9`. Reading their records on the CPU showed 32 and 90 task groups. The change I tested runs every slot for them; the ones the task didn't start cull themselves: ```cpp const bool task_indirect{p.fallback_task && d.indirect}; const uint32_t slots{!p.fallback_task ? 0u : task_indirect ? capacity : (uint32_t)std::min<uint64_t>( (uint64_t)groups * std::max(1u, p.fallback_task_threads), capacity)}; ``` **2. With that change, their mesh stage still writes no primitives.** I added a probe that copies the payload "started" flags and the records' per-slot primitive counts out after a draw. In the same room: | program | kind | task started | slots with primitives | |---|---|---|---| | `87eab3665f2b872c` | direct task + mesh | 280 | 280 (17,080 prims) | | `8a8304edb7bdf4bf` | indirect task + mesh | 31–219 | **0** | | `43ec86f35fd937b9` | indirect task + mesh | 3–219 | **0** | | `51183fe750d5d0c8` | indirect task + mesh | 77 | 6 | | `6afe3fda3f4b1752`, `e28434e1afe8321a`, `3b8c07f2eb4bb7d9` | indirect, mesh only | – | **0** | Direct task draws produce primitives for every slot their task stage starts. The indirect ones don't. **3. One difference in the IR** (`RX_VK_IR`): the failing mesh stages (`8a8304ed`, `8e2f7af4`, `43ec86f3`) contain `LoadGlobal32` / `LoadGlobal128`. In `8e2f7af4` the pointer is a `LoadStorage64` from ssbo 0 at a cbuf offset, plus an offset. Peeking guest memory, c0+0x770 holds `0x117e7be000`, which is the start of the buffer bound at c0+0x880/0x890 (size 0x454000). The working mesh stages (`87eab366`, `a5da9f84`) only use `LoadStorage*`. Translating again with `RX_VK_FOLLOW_MESH=1` didn't help: `8e2f7af4` went from 0 to 10 slots with primitives, and the rest stayed at 0. So either those loads still miss, or something else in these programs fails in the fallback. Two smaller things I noticed: - **Draws over the slot limit:** a few direct task draws ask for 1088 slots (34 groups × 32), and the last 2 groups are never started. - **The mesh stage's workgroup id:** it reads `WorkgroupId` as the slot, `wg * threads + thread`. On native hardware it would be the index inside the task's launch. Direct draws produce primitives anyway, so it may not matter here. To reproduce this on a card with mesh shaders, the new Mesh shaders → Compute row (#1971) should do it.
Crono141 commented 2026-11-11 01:27:09 +00:00 (Migrated from github.com)

@kleinergoo7 your video looks like what I had on my RX 590 (also Polaris, Linux, RADV). Two things fixed most of it for me:

1. GCN runs every shader stage 64 lanes wide. Switch shaders are written for 32-lane warps, and Polaris can't be held to 32 for any stage. The ballots, votes and shuffles then run across both halves of a 64-lane wave. For me that meant objects flickering in and out, glowing white, and broken lighting. I tested blackxzin's patch that makes the translator emulate 32-lane warps on 64-lane hardware, and it took away most of the flicker. Turning it off brought the flicker back.

Upstream has since fixed this generally in #1507, which is in v2.1.0-rc.1 and the nightlies. It sends any graphics stage the GPU can't pin to 32 lanes through that path, and on GCN that's all of them. I haven't run rc.1 on the RX 590 myself, but on GCN it should behave the same as the patch I tested. v2.0.14 and earlier don't have it.

2. The bright, blinding flashes: set RX_VK_PRECOMPILE=0 in hookshot_env.txt beside the game. That turns off the start-up pipeline precompile. With it on, my RX 590 flashed bright on starts that loaded shaders from the cache, and never on a start that translated them all again. With it off, the flashes stopped, at the cost of a few short hitches the first time each pipeline is drawn. I haven't found the root cause.

What's still left after both: distant foliage in Kokiri still pops in and out at low camera angles, and some walls go missing (my earlier comment above). Those look like separate mesh-fallback problems.

@kleinergoo7 your video looks like what I had on my RX 590 (also Polaris, Linux, RADV). Two things fixed most of it for me: **1. GCN runs every shader stage 64 lanes wide.** Switch shaders are written for 32-lane warps, and Polaris can't be held to 32 for any stage. The ballots, votes and shuffles then run across both halves of a 64-lane wave. For me that meant objects flickering in and out, glowing white, and broken lighting. I tested blackxzin's patch that makes the translator emulate 32-lane warps on 64-lane hardware, and it took away most of the flicker. Turning it off brought the flicker back. Upstream has since fixed this generally in **#1507**, which is in **v2.1.0-rc.1** and the nightlies. It sends any graphics stage the GPU can't pin to 32 lanes through that path, and on GCN that's all of them. I haven't run rc.1 on the RX 590 myself, but on GCN it should behave the same as the patch I tested. v2.0.14 and earlier don't have it. **2. The bright, blinding flashes:** set `RX_VK_PRECOMPILE=0` in `hookshot_env.txt` beside the game. That turns off the start-up pipeline precompile. With it on, my RX 590 flashed bright on starts that loaded shaders from the cache, and never on a start that translated them all again. With it off, the flashes stopped, at the cost of a few short hitches the first time each pipeline is drawn. I haven't found the root cause. **What's still left after both:** distant foliage in Kokiri still pops in and out at low camera angles, and some walls go missing (my earlier comment above). Those look like separate mesh-fallback problems.
Yonnier08 commented 2026-11-11 01:28:59 +00:00 (Migrated from github.com)

How do I update to version 2.0.6?

How do I update to version 2.0.6?
saulobfreitas-sudo commented 2026-11-11 01:42:32 +00:00 (Migrated from github.com)

Crash / Freeze when the fairy arrives (Cutscene transition / Deku Tree dialogue) on AMD RX 580

Hi, thank you for the amazing work on Hookshot!

I'm experiencing a hard freeze/lockup right when the fairy arrives / during the cutscene transition on version v2.0.14.

System details:
CPU: Intel Xeon E5-2650 v3 (10 Núcleos / 20 Threads, Haswell architecture)
GPU: AMD Radeon RX 580 2048SP (8GB VRAM, Polaris architecture - No native Mesh Shaders support)
RAM: 32GB DDR4 Dual Channel
SSD: 120gb free
FONTE: Corsair 600W
OS: Windows 10/11 64-bit

  • Log snippet showing the error:
    [hos Presentation Thread] vk: program e409733c45530d75 not translated: a network left out on this card
    [hos nn.npln.Worker] mutex 0x100ac110c8 (obj 000001C2395C8390): nn.npln.Worker waiting 10 s; held by nn.npln.Worker

Attached is the full log file demonstrating the hang during the thread wait. Could this be related to compute shader/network translation fallbacks on Polaris architecture?

hookshot_log.txt

Crash / Freeze when the fairy arrives (Cutscene transition / Deku Tree dialogue) on AMD RX 580 Hi, thank you for the amazing work on Hookshot! I'm experiencing a hard freeze/lockup right when the fairy arrives / during the cutscene transition on version v2.0.14. System details: CPU: Intel Xeon E5-2650 v3 (10 Núcleos / 20 Threads, Haswell architecture) GPU: AMD Radeon RX 580 2048SP (8GB VRAM, Polaris architecture - No native Mesh Shaders support) RAM: 32GB DDR4 Dual Channel SSD: 120gb free FONTE: Corsair 600W OS: Windows 10/11 64-bit - Log snippet showing the error: [hos Presentation Thread] vk: program e409733c45530d75 not translated: a network left out on this card [hos nn.npln.Worker] mutex 0x100ac110c8 (obj 000001C2395C8390): nn.npln.Worker waiting 10 s; held by nn.npln.Worker Attached is the full log file demonstrating the hang during the thread wait. Could this be related to compute shader/network translation fallbacks on Polaris architecture? [hookshot_log.txt](https://github.com/user-attachments/files/34665713/hookshot_log.txt)
junker66TTV commented 2026-11-11 02:05:10 +00:00 (Migrated from github.com)

GPU: NVIDIA GeForce GTX 1080 (8 GB), driver GRD 582.78
CPU / RAM: Intel Core i7-12700, 32 GB DDR4
OS: Windows 11
Hookshot version: v2.0.14 (source 3a9998c3)

Does it start and reach gameplay? Yes, it reaches gameplay and runs.

FPS in Kokiri Forest: stable 60 fps at 1920x1080, FSR 3.1 Quality (67%), frame generation off, Robust buffers Auto.
With "Descriptor reuse" and "Sampler cache" off it was ~20-40 fps; turning both on (and restarting) brought it to a stable 60.

Problem: some objects/geometry are missing on the compute fallback

hookshot_log.txt

GPU: NVIDIA GeForce GTX 1080 (8 GB), driver GRD 582.78 CPU / RAM: Intel Core i7-12700, 32 GB DDR4 OS: Windows 11 Hookshot version: v2.0.14 (source 3a9998c3) Does it start and reach gameplay? Yes, it reaches gameplay and runs. FPS in Kokiri Forest: stable 60 fps at 1920x1080, FSR 3.1 Quality (67%), frame generation off, Robust buffers Auto. With "Descriptor reuse" and "Sampler cache" off it was ~20-40 fps; turning both on (and restarting) brought it to a stable 60. Problem: some objects/geometry are missing on the compute fallback [hookshot_log.txt](https://github.com/user-attachments/files/34666250/hookshot_log.txt)
Vinni5147 commented 2026-11-11 02:24:58 +00:00 (Migrated from github.com)

Update on RX 580 4GB on Fedora 44!
ver: 2.0.14
still at 6 FPS on kokiri village..

Workaround:
Starting the game on terminal with the command: "RX_VK_NO_MESH=1 ./hookshot"
FPS goes up to 20 -25 fps!

i will say something obvious.. on Great Deku Tree, the walls is missing, probably because the Mesh Shaders missing, Vegetation/Foliage too..

Ryzen 7 1700x
24GB ram
Fedora 44
Mesa 26.2.6

Keep up with the good work!

hookshot_log.txt

Update on RX 580 4GB on Fedora 44! ver: 2.0.14 still at 6 FPS on kokiri village.. Workaround: Starting the game on terminal with the command: "RX_VK_NO_MESH=1 ./hookshot" FPS goes up to 20 -25 fps! i will say something obvious.. on Great Deku Tree, the walls is missing, probably because the Mesh Shaders missing, Vegetation/Foliage too.. Ryzen 7 1700x 24GB ram Fedora 44 Mesa 26.2.6 Keep up with the good work! [hookshot_log.txt](https://github.com/user-attachments/files/34666816/hookshot_log.txt)
junker66TTV commented 2026-11-11 03:20:57 +00:00 (Migrated from github.com)

UPDATE: My missing textures/objets issue was solved updating to v2.1.0, with flawless performance even at 120fps with frame generation, thanks a lot for the amazing work!


GPU: NVIDIA GeForce GTX 1080 (8 GB), driver GRD 582.78 CPU / RAM: Intel Core i7-12700, 32 GB DDR4 OS: Windows 11 Hookshot version: v2.0.14 (source 3a9998c3)

Does it start and reach gameplay? Yes, it reaches gameplay and runs.

FPS in Kokiri Forest: stable 60 fps at 1920x1080, FSR 3.1 Quality (67%), frame generation off, Robust buffers Auto. With "Descriptor reuse" and "Sampler cache" off it was ~20-40 fps; turning both on (and restarting) brought it to a stable 60.

Problem: some objects/geometry are missing on the compute fallback

hookshot_log.txt

UPDATE: My missing textures/objets issue was solved updating to v2.1.0, with flawless performance even at 120fps with frame generation, thanks a lot for the amazing work! ___________________ > GPU: NVIDIA GeForce GTX 1080 (8 GB), driver GRD 582.78 CPU / RAM: Intel Core i7-12700, 32 GB DDR4 OS: Windows 11 Hookshot version: v2.0.14 (source 3a9998c3) > > Does it start and reach gameplay? Yes, it reaches gameplay and runs. > > FPS in Kokiri Forest: stable 60 fps at 1920x1080, FSR 3.1 Quality (67%), frame generation off, Robust buffers Auto. With "Descriptor reuse" and "Sampler cache" off it was ~20-40 fps; turning both on (and restarting) brought it to a stable 60. > > Problem: some objects/geometry are missing on the compute fallback > > [hookshot_log.txt](https://github.com/user-attachments/files/34666250/hookshot_log.txt)
thesunlace commented 2026-11-11 05:16:07 +00:00 (Migrated from github.com)

Still crashing after opening cutscene or when loading a save. Hookshot v2.1.0

GPU: GTX 1060 6GB, Vulkan 1.4, driver 0x91540000
CPU: Ryzen 5 3600
OS: Windows 11, 16GB RAM DDR4 3200MT/s

vk: FATAL: the GPU device was lost (VK_ERROR_DEVICE_LOST): the driver stopped or reset the GPU, and nothing sent to it runs any more (on Linux, dmesg or journalctl -k around this time names the reset)

hookshot_log.4.txt

After crashing, booting up the game shows only a black screen, I can't see the main menu, only audio plays.

hookshot_log.txt

**Still crashing after opening cutscene or when loading a save. Hookshot v2.1.0** GPU: GTX 1060 6GB, Vulkan 1.4, driver 0x91540000 CPU: Ryzen 5 3600 OS: Windows 11, 16GB RAM DDR4 3200MT/s `vk: FATAL: the GPU device was lost (VK_ERROR_DEVICE_LOST): the driver stopped or reset the GPU, and nothing sent to it runs any more (on Linux, dmesg or journalctl -k around this time names the reset)` [hookshot_log.4.txt](https://github.com/user-attachments/files/34671513/hookshot_log.4.txt) After crashing, booting up the game shows only a black screen, I can't see the main menu, only audio plays. [hookshot_log.txt](https://github.com/user-attachments/files/34671531/hookshot_log.txt)
junker66TTV commented 2026-11-11 05:24:42 +00:00 (Migrated from github.com)

GTX 1080 on v2.1.0 (compute fallback): framerate dips in some areas.

Observed: fps drops after the Deku Tree and in Hyrule Field; after restarting the game it stabilizes when I reach the castle.

From the attached log (v2.1.0, ~79,800 presents, 32 GB RAM):

  • Most of the session runs at 53-60 fps; 11 of 665 samples are below 45 fps (lowest 31 fps with ~1,870 draws).
  • fps follows the number of draws per frame: 60 fps up to ~1,000 draws, median ~57 fps at 1,000-2,000 draws. The last stretch holds 60 fps with ~250 draws.
  • Not shader compilation: no draws left out and no waits for shaders or pipelines in any sample; GPU-bound wait ~0.1 ms. In a sample frame with ~1,310 draws, replay time was submit 12.7 ms, draw 5.0 ms, memory sync 5.1 ms (close to the 16.7 ms budget).
  • VRAM stays around 6.4 GB used of ~6.8-7.0 GB allowed for most of the session, hitting "at the driver's limit" 4 times; slowest frame per 600-frame block: median 32 ms, 3 blocks above 200 ms (max ~985 ms).

Setup: GTX 1080, i7-12700, Windows 11, 1920x1080, FSR 3.1 Quality 67%, Frame generation 2x selected in the menu (the log reports frame interpolation "Auto", 165 Hz display).
Settings: Frame pacing Off, Robust buffers Off, Descriptor reuse On, Sampler cache On, Anisotropic 4x, Profile Docked.

hookshot_log.txt

GTX 1080 on v2.1.0 (compute fallback): framerate dips in some areas. Observed: fps drops after the Deku Tree and in Hyrule Field; after restarting the game it stabilizes when I reach the castle. From the attached log (v2.1.0, ~79,800 presents, 32 GB RAM): - Most of the session runs at 53-60 fps; 11 of 665 samples are below 45 fps (lowest 31 fps with ~1,870 draws). - fps follows the number of draws per frame: 60 fps up to ~1,000 draws, median ~57 fps at 1,000-2,000 draws. The last stretch holds 60 fps with ~250 draws. - Not shader compilation: no draws left out and no waits for shaders or pipelines in any sample; GPU-bound wait ~0.1 ms. In a sample frame with ~1,310 draws, replay time was submit 12.7 ms, draw 5.0 ms, memory sync 5.1 ms (close to the 16.7 ms budget). - VRAM stays around 6.4 GB used of ~6.8-7.0 GB allowed for most of the session, hitting "at the driver's limit" 4 times; slowest frame per 600-frame block: median 32 ms, 3 blocks above 200 ms (max ~985 ms). Setup: GTX 1080, i7-12700, Windows 11, 1920x1080, FSR 3.1 Quality 67%, Frame generation 2x selected in the menu (the log reports frame interpolation "Auto", 165 Hz display). Settings: Frame pacing Off, Robust buffers Off, Descriptor reuse On, Sampler cache On, Anisotropic 4x, Profile Docked. [hookshot_log.txt](https://github.com/user-attachments/files/34671799/hookshot_log.txt)
snbrnn commented 2026-11-11 06:02:55 +00:00 (Migrated from github.com)

Freeze at start menu – Quadro M2000M (Maxwell, GM204), v2.1.0

GPU: NVIDIA Quadro M2000M (Maxwell, GM204, 4 GB VRAM)
OS: windows 10
Version: v2.1.0

The game freezes at the start menu. The log confirms the compute fallback is active:

[hos host] vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback)

No crash, no black screen — just a hard freeze. Tried:

Latest NVIDIA drivers
Minimum (4 GB) quality preset
No overlays (Afterburner, Discord, etc.)
Verified game files
Full log attached.

i know that it is a really old gpu but i can´t even access to the game to see if i can run it

hookshot_log.txt

Freeze at start menu – Quadro M2000M (Maxwell, GM204), v2.1.0 GPU: NVIDIA Quadro M2000M (Maxwell, GM204, 4 GB VRAM) OS: windows 10 Version: v2.1.0 The game freezes at the start menu. The log confirms the compute fallback is active: [hos host] vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback) No crash, no black screen — just a hard freeze. Tried: Latest NVIDIA drivers Minimum (4 GB) quality preset No overlays (Afterburner, Discord, etc.) Verified game files Full log attached. i know that it is a really old gpu but i can´t even access to the game to see if i can run it [hookshot_log.txt](https://github.com/user-attachments/files/34672849/hookshot_log.txt)
lbmeng commented 2026-11-11 12:19:46 +00:00 (Migrated from github.com)

On my GTX 1080, Hookshot v2.1.0 crashed at the scene transition after the opening cutscene. I’m on Windows 10 build 19045 with NVIDIA driver 581.80 (Vulkan driver 0x91540000). The startup log confirms that the compute fallback was active.

The crash log showed submit 96511 failed (-4), and both NVIDIA checkpoints pointed to draw of program 53509044401d78d2 on frame 13787. This is the scene-load noise pass discussed in #1338.

I added the following line to hookshot_env.txt in the game folder and restarted.

RX_VK_SKIP_PROG=53509044401d78d2

With that setting, the same transition completed and I reached the dialogue between the Great Deku Tree and Navi.

hookshot_log.txt
hookshot_log.1.txt

I’ve attached hookshot_log.1.txt from the crash and hookshot_log.txt from the successful run with the workaround.

On my GTX 1080, Hookshot v2.1.0 crashed at the scene transition after the opening cutscene. I’m on Windows 10 build 19045 with NVIDIA driver 581.80 (Vulkan driver 0x91540000). The startup log confirms that the compute fallback was active. The crash log showed submit 96511 failed (-4), and both NVIDIA checkpoints pointed to draw of program 53509044401d78d2 on frame 13787. This is the scene-load noise pass discussed in #1338. I added the following line to hookshot_env.txt in the game folder and restarted. ``` RX_VK_SKIP_PROG=53509044401d78d2 ``` With that setting, the same transition completed and I reached the dialogue between the Great Deku Tree and Navi. [hookshot_log.txt](https://github.com/user-attachments/files/34687087/hookshot_log.txt) [hookshot_log.1.txt](https://github.com/user-attachments/files/34687088/hookshot_log.1.txt) I’ve attached hookshot_log.1.txt from the crash and hookshot_log.txt from the successful run with the workaround.
Crono141 commented 2026-11-11 14:25:35 +00:00 (Migrated from github.com)

Update on my RX 590 (Polaris, no mesh shaders, Linux/RADV, Ryzen 5 3600): stock v2.1.0 fixes the missing walls, the missing foliage and the flicker I reported above. The Deku Tree door room has its walls and floor, and Kokiri's foliage no longer pops in and out.

For the record, the two problems I found earlier are fixed upstream:

  • #1510: indirect task draws now run their mesh stage. This is the same change I tested.
  • #1511's rework (2611a999): the mesh stage still drew nothing, because its workgroup id was the global slot. That picked a meshlet past the end of each task's list. The id is now the index inside the task's launch, as on native hardware.
  • #1507: the 64-lane warp fix for GCN. I don't need the separate warp patch any more.

The hookshot_env.txt that works best here:

RX_VK_PRECOMPILE=0
RX_VK_MIRROR=0
RX_VK_PARALLEL=3

What I measured, Deku Tree to Kokiri, one change per run:

Change Effect
RX_VK_PRECOMPILE=0 With precompile on, Kokiri ran at 7–19 fps and GPU time about doubled, in two runs; ~18–25 with it off. I'm guessing it's ~11,700 precompiled pipelines in VRAM on an 8 GB card that's already near full, but I haven't proven it.
RX_VK_MIRROR=0 A little faster than mirrors on (18–25 vs 16–19 fps), with VRAM at 7.8 of 8 GB. Unlike v2.0.14, mirrors off doesn't garble the UI.
RX_VK_PARALLEL=3 +4–5 fps (22–28). 4 threads was no better on a 6-core CPU.

The limit on this machine is now the CPU. At 50% render resolution GPU time halved, but fps didn't change. The replay thread takes 23–29 ms a frame for ~2,350 draws, and the GPU sits at ~17 ms. A higher render resolution costs nothing, so I'm on FSR 3.1 Quality at 2048×1152, at about 20–26 fps in Kokiri.

@Vinni5147, @kleinergoo7: on Polaris, v2.1.0 with those settings should help you too. That includes the Deku Tree walls without RX_VK_NO_MESH=1.

Update on my RX 590 (Polaris, no mesh shaders, Linux/RADV, Ryzen 5 3600): **stock v2.1.0 fixes the missing walls, the missing foliage and the flicker** I reported above. The Deku Tree door room has its walls and floor, and Kokiri's foliage no longer pops in and out. For the record, the two problems I found earlier are fixed upstream: - **#1510:** indirect task draws now run their mesh stage. This is the same change I tested. - **#1511's rework (`2611a999`):** the mesh stage still drew nothing, because its workgroup id was the global slot. That picked a meshlet past the end of each task's list. The id is now the index inside the task's launch, as on native hardware. - **#1507:** the 64-lane warp fix for GCN. I don't need the separate warp patch any more. The `hookshot_env.txt` that works best here: ``` RX_VK_PRECOMPILE=0 RX_VK_MIRROR=0 RX_VK_PARALLEL=3 ``` What I measured, Deku Tree to Kokiri, one change per run: | Change | Effect | |---|---| | `RX_VK_PRECOMPILE=0` | With precompile on, Kokiri ran at 7–19 fps and GPU time about doubled, in two runs; ~18–25 with it off. I'm guessing it's ~11,700 precompiled pipelines in VRAM on an 8 GB card that's already near full, but I haven't proven it. | | `RX_VK_MIRROR=0` | A little faster than mirrors on (18–25 vs 16–19 fps), with VRAM at 7.8 of 8 GB. Unlike v2.0.14, mirrors off doesn't garble the UI. | | `RX_VK_PARALLEL=3` | **+4–5 fps** (22–28). 4 threads was no better on a 6-core CPU. | **The limit on this machine is now the CPU.** At 50% render resolution GPU time halved, but fps didn't change. The replay thread takes 23–29 ms a frame for ~2,350 draws, and the GPU sits at ~17 ms. A higher render resolution costs nothing, so I'm on FSR 3.1 Quality at 2048×1152, at about 20–26 fps in Kokiri. @Vinni5147, @kleinergoo7: on Polaris, v2.1.0 with those settings should help you too. That includes the Deku Tree walls without `RX_VK_NO_MESH=1`.
Crono141 commented 2026-11-11 14:34:00 +00:00 (Migrated from github.com)

I did not experience the new game crashes described on the NVIDIA hardware above, so I think its NVIDIA specific.

I did not experience the new game crashes described on the NVIDIA hardware above, so I think its NVIDIA specific.
lilinailil commented 2026-11-11 15:22:25 +00:00 (Migrated from github.com)

On Hookshot v2.1.0, I could hear the sound af the game's title screen and i could hear the intro getting started, but the screen was off, still the fps counter was displayed.
My machine : GTX 1060 6gb ; 32gb RAM ; Ryzen 5 2600

ecran noir v2 1 0

I tried lowering the settings to a minimum and tried playing with the mesh shader setting but it could not work.

hookshot_log.txt

On Hookshot v2.1.0, I could hear the sound af the game's title screen and i could hear the intro getting started, but the screen was off, still the fps counter was displayed. My machine : GTX 1060 6gb ; 32gb RAM ; Ryzen 5 2600 <img width="2560" height="1440" alt="ecran noir v2 1 0" src="https://github.com/user-attachments/assets/fb54dadd-0d03-4ca0-9e83-0d75387c5523" /> I tried lowering the settings to a minimum and tried playing with the mesh shader setting but it could not work. [hookshot_log.txt](https://github.com/user-attachments/files/34694092/hookshot_log.txt)
hbahlin-jpg commented 2026-11-11 16:06:11 +00:00 (Migrated from github.com)

RX 5700 XT (RDNA1, no mesh shaders): device lost on every load of a save — v2.1.0, four attempts

Setup

GPU: AMD Radeon RX 5700 XT 8 GB — log says no mesh shaders: task and mesh programs run as compute shaders, so it runs the #640/#779 fallback path
Driver: 32.0.21045.16010, 0x800161 (Adrenalin 26.10.1), Vulkan 1.4
CPU / RAM / OS: Ryzen 5 5600 (6C/12T), 16 GB DDR4-2666, Windows 10 22H2 (19045)
Display: 1920x1080 @ 144 Hz, borderless fullscreen
Hookshot v2.1.0 (source 633eb435), Vulkan back end
Options: options_version=4, output 1920x1080, preset Balanced (8 GB), Upscaler = the game's own, Render resolution 75%, sharpness 20, frame generation 2x, frame pacing on, cap 60, descriptor reuse 1, sampler cache 1
Env: HOS_WINDOW_SIZE=1920x1080, freeze watchdog on, HOS_LOG_SYNC=0
What happens The game starts, reaches the file-select/load screen, the display goes black and the window closes; the log ends in VK_ERROR_DEVICE_LOST. It happens on every attempt to load a save, at the same point of the load. A new game and a session already in gameplay run fine (that session reached 48k presents). It began after the save was overwritten a few times in one session: the earlier state loaded, the later one crashes every time. The save mounts normally (fs: mounted save: -> ...\user\save...), so this is not save data.

Four logs, two variants — all end with:
vk: submit N failed (-4)
vk: device lost: reading the fault info (RX_VK_CHECKPOINTS=1 for markers)
vk: FATAL: the GPU device was lost (VK_ERROR_DEVICE_LOST)

Variant A (mirrors on, log.2:835-837 / log.3:878-880):
vk: pool 0x7fd9000000 remade larger (2 retired)
vk: pool 0x7fd8000000..0x7fdd000000: mirror made with the GPU's contents of 1 retired pool(s)
vk: submit 7890 failed (-4)

Variant B (no mirrors / mesh path skipped, log.4:901-904 / log.1:944):
vk: pool 0x7fd3000000..0x7fdd000000 took in 2 pools
vk: submit 9836 failed (-4)

So it is the first submit after the game's memory pools are remade or merged. This is the #150 signature (closed into #996) and matches #1125, which you linked here.

Tried, all still crash at the same point: the option set that ran fine earlier the same day; RX_VK_MIRROR=0 (log.4 line 93: VRAM mirror of buffer pools off); RX_VK_NO_MESH=1 (log.1, also draws away foliage). Windows has no TDR event (no 4101/4102) for these crashes; pagefile is on the C: NVMe, 10.5 GB RAM free before launch.

Two details that may help

Crashing runs import pools at 74-129 ms each (vk: import 74.0 ms: ... allocate 73.8), a working run of the same build: 10-20 ms. VRAM in play peaks at 7145 MB used of 7241 MB allowed (8 GB card) — this is with #1383's shared per-thread FallbackBuffers, which v2.1.0 does have.
The working session: menus 60 fps, ordinary areas 44-56 fps; the densest part has 3993 draws a frame with GPU 20.9 ms but replay submit 29.88 ms (draw 16.83, commands 6.03, descriptors 5.93, memory sync 5.41) → 29 fps, CPU-bound on the replay thread, not GPU-bound.
Ask — anything to test on this card for the load crash (the #1314/#1317 fallback fixes you mentioned)? I can run any build or switch and attach full logs, including RX_VK_CHECKPOINTS=1 runs. The performance numbers are from the same machine, if useful for #995.

hookshot_log.2.txt
hookshot_log.3.txt
hookshot_log.4.txt
hookshot_log.1.txt

RX 5700 XT (RDNA1, no mesh shaders): device lost on every load of a save — v2.1.0, four attempts Setup GPU: AMD Radeon RX 5700 XT 8 GB — log says no mesh shaders: task and mesh programs run as compute shaders, so it runs the #640/#779 fallback path Driver: 32.0.21045.16010, 0x800161 (Adrenalin 26.10.1), Vulkan 1.4 CPU / RAM / OS: Ryzen 5 5600 (6C/12T), 16 GB DDR4-2666, Windows 10 22H2 (19045) Display: 1920x1080 @ 144 Hz, borderless fullscreen Hookshot v2.1.0 (source 633eb435), Vulkan back end Options: options_version=4, output 1920x1080, preset Balanced (8 GB), Upscaler = the game's own, Render resolution 75%, sharpness 20, frame generation 2x, frame pacing on, cap 60, descriptor reuse 1, sampler cache 1 Env: HOS_WINDOW_SIZE=1920x1080, freeze watchdog on, HOS_LOG_SYNC=0 What happens The game starts, reaches the file-select/load screen, the display goes black and the window closes; the log ends in VK_ERROR_DEVICE_LOST. It happens on every attempt to load a save, at the same point of the load. A new game and a session already in gameplay run fine (that session reached 48k presents). It began after the save was overwritten a few times in one session: the earlier state loaded, the later one crashes every time. The save mounts normally (fs: mounted save: -> ...\user\save\...), so this is not save data. Four logs, two variants — all end with: vk: submit N failed (-4) vk: device lost: reading the fault info (RX_VK_CHECKPOINTS=1 for markers) vk: FATAL: the GPU device was lost (VK_ERROR_DEVICE_LOST) Variant A (mirrors on, log.2:835-837 / log.3:878-880): vk: pool 0x7fd9000000 remade larger (2 retired) vk: pool 0x7fd8000000..0x7fdd000000: mirror made with the GPU's contents of 1 retired pool(s) vk: submit 7890 failed (-4) Variant B (no mirrors / mesh path skipped, log.4:901-904 / log.1:944): vk: pool 0x7fd3000000..0x7fdd000000 took in 2 pools vk: submit 9836 failed (-4) So it is the first submit after the game's memory pools are remade or merged. This is the #150 signature (closed into #996) and matches #1125, which you linked here. Tried, all still crash at the same point: the option set that ran fine earlier the same day; RX_VK_MIRROR=0 (log.4 line 93: VRAM mirror of buffer pools off); RX_VK_NO_MESH=1 (log.1, also draws away foliage). Windows has no TDR event (no 4101/4102) for these crashes; pagefile is on the C: NVMe, 10.5 GB RAM free before launch. Two details that may help Crashing runs import pools at 74-129 ms each (vk: import 74.0 ms: ... allocate 73.8), a working run of the same build: 10-20 ms. VRAM in play peaks at 7145 MB used of 7241 MB allowed (8 GB card) — this is with #1383's shared per-thread FallbackBuffers, which v2.1.0 does have. The working session: menus 60 fps, ordinary areas 44-56 fps; the densest part has 3993 draws a frame with GPU 20.9 ms but replay submit 29.88 ms (draw 16.83, commands 6.03, descriptors 5.93, memory sync 5.41) → 29 fps, CPU-bound on the replay thread, not GPU-bound. Ask — anything to test on this card for the load crash (the #1314/#1317 fallback fixes you mentioned)? I can run any build or switch and attach full logs, including RX_VK_CHECKPOINTS=1 runs. The performance numbers are from the same machine, if useful for #995. [hookshot_log.2.txt](https://github.com/user-attachments/files/34695827/hookshot_log.2.txt) [hookshot_log.3.txt](https://github.com/user-attachments/files/34695828/hookshot_log.3.txt) [hookshot_log.4.txt](https://github.com/user-attachments/files/34695830/hookshot_log.4.txt) [hookshot_log.1.txt](https://github.com/user-attachments/files/34695829/hookshot_log.1.txt)
kleinergoo7 commented 2026-11-11 18:00:21 +00:00 (Migrated from github.com)

Update: v2.1.0 on RX 580 — rendering is fixed, but stuttering and high RAM usage remain

Everything now renders correctly on the RX 580 with v2.1.0. The remaining problems are:

  • Heavy stuttering during gameplay
  • Very high RAM usage while hookshot is running

Log: hookshot_log.txt

Gameplay recording (default settings)

https://github.com/user-attachments/assets/c21e4f3b-2b15-47ba-b706-110c85d416d4

RAM usage comparison

Without hookshot With hookshot
RAM usage without hookshot RAM usage with hookshot

Workaround found

Thanks to @Crono141's suggestion: adding a hookshot_env.txt file with the following contents significantly reduces both stuttering and RAM usage:

RX_VK_PRECOMPILE=0
RX_VK_MIRROR=0
RX_VK_PARALLEL=3

Gameplay recording (with hookshot_env.txt)

https://github.com/user-attachments/assets/19d91da4-2777-4d51-996d-9d0107e36b28

RAM usage (with hookshot_env.txt)

RAM usage with hookshot_env.txt
## Update: v2.1.0 on RX 580 — rendering is fixed, but stuttering and high RAM usage remain Everything now renders correctly on the RX 580 with v2.1.0. The remaining problems are: - **Heavy stuttering** during gameplay - **Very high RAM usage** while hookshot is running Log: [hookshot_log.txt](https://github.com/user-attachments/files/34700343/hookshot_log.txt) ### Gameplay recording (default settings) https://github.com/user-attachments/assets/c21e4f3b-2b15-47ba-b706-110c85d416d4 ### RAM usage comparison | Without hookshot | With hookshot | |---|---| | <img width="461" alt="RAM usage without hookshot" src="https://github.com/user-attachments/assets/34c08683-46de-4653-9f19-cbc73fe5668d" /> | <img width="985" alt="RAM usage with hookshot" src="https://github.com/user-attachments/assets/dc41981f-b3c6-425b-9159-be059f05b9f9" /> | --- ## Workaround found Thanks to @Crono141's suggestion: adding a `hookshot_env.txt` file with the following contents **significantly reduces both stuttering and RAM usage**: ``` RX_VK_PRECOMPILE=0 RX_VK_MIRROR=0 RX_VK_PARALLEL=3 ``` ### Gameplay recording (with `hookshot_env.txt`) https://github.com/user-attachments/assets/19d91da4-2777-4d51-996d-9d0107e36b28 ### RAM usage (with `hookshot_env.txt`) <img width="977" alt="RAM usage with hookshot_env.txt" src="https://github.com/user-attachments/assets/2a825494-d883-4842-844a-ddd29784f0df" />
arrigowr2 commented 2026-11-11 20:04:44 +00:00 (Migrated from github.com)

Update after v2.1.0 — the guest 0x150 crash is gone; fps drops and two visual artifacts remain

Setup: Radeon RX 580 8 GB (GCN4, no mesh shaders → compute fallback, #640), AMDVLK 31.0.21925.1001, Ryzen 7 3800X, Windows. Same route every run: new game → opening → Link's house → walk to a house in Kokiri.

1. The crash is fixed

build runs result
v2.0.12 / v2.0.14 2 crash ~10 150 frames in: exception 0xc0000005 ... guest 0x150
v2.1.0-rc.1 1 0 crashes, log ends display: window closed, exiting
v2.1.0 (stable, 633eb435) 2 0 crashes / 0 exceptions / 0 device lost, clean exit

Three clean runs on v2.1.0, two different routes. The null-deref no longer reproduces here.

2. Settings A/B on v2.1.0 (same route)

Frame generation 2x → Off, Anisotropic filtering 16x → Game's, Sampler cache Off → On:

before after
walk fps (avg / min) 16.2 / 4.3 21.0 / 5.2
GPU time, walk (avg) 50.2 ms 42.0 ms
slowest frame 8392 ms 7185 ms
slow submits > 500 ms (worst) 7 (6249 ms) 3 (4076 ms)
CPU submit (avg / max) 36.5 / 203.7 ms 33.5 / 105.1 ms

(The "before" run had frame generation on, so its counter included interpolated frames — real game fps in the walk was ~8, not 16.)

3. What still happens on this card

  • fps still drops to 5–29 in draw-heavy stretches. GPU time averages 42 ms there (max 104 ms) and tracks the draw count (blocks with 2000–3000 draws → 9–15 fps): GPU-bound on the compute mesh fallback (#640).
  • VRAM stays at the driver's limit: 6055/6055 MB, textures 4491 MB over the 3331 MB Auto budget, 4 VRAM full spills to system memory per run. The new VRAM budget row (bb1ffa2f) landed after the v2.1.0 tag, so it can't be used yet — would RX_VK_VRAM_MB=4800 be the right way to test a larger budget on this build?
  • White speck grid on foliage and blown-out bloom are unchanged on GCN in v2.1.0.

Logs: gist — run1.txt (v2.1.0, default settings) and run2.txt (v2.1.0, tuned settings).

**Update after v2.1.0 — the `guest 0x150` crash is gone; fps drops and two visual artifacts remain** **Setup:** Radeon RX 580 8 GB (GCN4, no mesh shaders → compute fallback, #640), AMDVLK 31.0.21925.1001, Ryzen 7 3800X, Windows. Same route every run: new game → opening → Link's house → walk to a house in Kokiri. **1. The crash is fixed** | build | runs | result | |---|---|---| | v2.0.12 / v2.0.14 | 2 | crash ~10 150 frames in: `exception 0xc0000005 ... guest 0x150` | | v2.1.0-rc.1 | 1 | **0 crashes**, log ends `display: window closed, exiting` | | v2.1.0 (stable, 633eb435) | 2 | **0 crashes / 0 exceptions / 0 device lost**, clean exit | Three clean runs on v2.1.0, two different routes. The null-deref no longer reproduces here. **2. Settings A/B on v2.1.0 (same route)** Frame generation 2x → Off, Anisotropic filtering 16x → Game's, Sampler cache Off → On: | | before | after | |---|---|---| | walk fps (avg / min) | 16.2 / 4.3 | **21.0 / 5.2** | | GPU time, walk (avg) | 50.2 ms | **42.0 ms** | | slowest frame | 8392 ms | **7185 ms** | | slow submits > 500 ms (worst) | 7 (6249 ms) | **3 (4076 ms)** | | CPU submit (avg / max) | 36.5 / 203.7 ms | **33.5 / 105.1 ms** | (The "before" run had frame generation on, so its counter included interpolated frames — real game fps in the walk was ~8, not 16.) **3. What still happens on this card** - **fps still drops to 5–29 in draw-heavy stretches.** GPU time averages 42 ms there (max 104 ms) and tracks the draw count (blocks with 2000–3000 draws → 9–15 fps): GPU-bound on the compute mesh fallback (#640). - **VRAM stays at the driver's limit:** 6055/6055 MB, textures 4491 MB over the 3331 MB Auto budget, 4 `VRAM full` spills to system memory per run. The new VRAM budget row (bb1ffa2f) landed after the v2.1.0 tag, so it can't be used yet — would `RX_VK_VRAM_MB=4800` be the right way to test a larger budget on this build? - **White speck grid on foliage and blown-out bloom are unchanged** on GCN in v2.1.0. **Logs:** [gist](https://gist.github.com/arrigowr2/895179738fad046388346699c975d720) — `run1.txt` (v2.1.0, default settings) and `run2.txt` (v2.1.0, tuned settings).
NotRexed commented 2026-11-11 21:21:56 +00:00 (Migrated from github.com)

More reports of this, collected here:

  • #1676: FYI : Legacy Nvidia GPU Support Driver 582.66 (v2.0.12; 980ti 582.66; Ryzen 5600X)
  • #2107: after compiling it crashes when it is goin to start compiling shaders (v2.0.6; rx580 8gb vram software adredalin v26.1.1; intel core i5 6600 3.30ghz 16gb ddr4)
  • #2260: GPU de 4vram
  • #2341: Audio out of sync and game crashes after first cutscene (v2.1.0-rc.1; RX 580; ryzen 5 5600, 16gb ram, windows 11)
  • #2365: Game crashes on menu after the logo shows up (v2.1.0; NVIDIA Quadro M2000M, latest drivers; Intel Core i7 6820HQ, 48GB RAM)
  • #2472: Black screen on AMD R9 390 (Vulkan 1.2, WebGPU fallback) (v2.1.0; AMD Radeon (TM) R9 390 Series (8 GB); i5-10600K CPU @ 4.10GHz , 32GB RAM, Windows 10 Pro)
  • #2494: Vulkan validation: mesh-fallback indirect draws use a dynamic vertex stride that was never set (VUID-04913)
More reports of this, collected here: - #1676: FYI : Legacy Nvidia GPU Support Driver 582.66 (v2.0.12; 980ti 582.66; Ryzen 5600X) - #2107: after compiling it crashes when it is goin to start compiling shaders (v2.0.6; rx580 8gb vram software adredalin v26.1.1; intel core i5 6600 3.30ghz 16gb ddr4) - #2260: GPU de 4vram - #2341: Audio out of sync and game crashes after first cutscene (v2.1.0-rc.1; RX 580; ryzen 5 5600, 16gb ram, windows 11) - #2365: Game crashes on menu after the logo shows up (v2.1.0; NVIDIA Quadro M2000M, latest drivers; Intel Core i7 6820HQ, 48GB RAM) - #2472: Black screen on AMD R9 390 (Vulkan 1.2, WebGPU fallback) (v2.1.0; AMD Radeon (TM) R9 390 Series (8 GB); i5-10600K CPU @ 4.10GHz , 32GB RAM, Windows 10 Pro) - #2494: Vulkan validation: mesh-fallback indirect draws use a dynamic vertex stride that was never set (VUID-04913)
joaogmesquita commented 2026-11-11 23:03:28 +00:00 (Migrated from github.com)

Measurements on a Radeon Vega 7 iGPU (Ryzen 5 5600G), compute fallback

Setup: Ryzen 5 5600G, Vega 7 iGPU at 2300 MHz (no mesh shaders, compute fallback #640), 32 GB DDR4-3800, AMD driver 31.0.21925.1001 (AMDVLK), Windows 11. Build: main 7759a6f3 plus a few local changes, Balanced 58% (896x504), frame generation 2x, Handheld profile.

Method: the game driven through the control bridge (#926): Continue, the newest save in Kokiri Forest (child), Link standing still, 4-6 samples of 300 frames; GPU spans with RX_VK_PASS_TIMING=2. FPS is the game's own frames. Between runs of the same settings the fps varies by about 2, so only bigger differences below mean something.

Where the GPU time goes (Kokiri Forest; FSR 3.1 from a run with it on, the rest from runs with the game's upscaler)

ms a frame
render passes (~1,150 draws) ~15
the game's compute dispatches (~110) ~7
the mesh fallback (its setup, task and mesh dispatches, ~35 draws, timed as their own spans) ~6
FSR 3.1 3.7
  • The fallback's biggest single cost is the floor grass: program 43ec86f35fd937b9's mesh dispatch, ~2.5 ms on its own. The next ones are d8e59341cf4f629c (0.7 ms) and d905f52b7517c681 (0.3 ms); the task dispatches and the setup are small.
  • With RX_VK_NO_MESH_FALLBACK=1 (foliage missing) the same spot runs at 31.7 fps and 23.3 ms of GPU, against ~25-28 fps and ~31 ms with it: the fallback costs this iGPU about 7-8 ms a frame.
  • One more draw stands out: program 0e0016204515849a, 2 draws a frame, ~3.4 ms. Left out with RX_VK_SKIP_PROG, fps goes 22.2 -> 24.3, and the Great Deku Tree's moustache was then seen missing (so it is not a fix, just where the time goes).

What made no difference here

  • #1636's targeted barriers (rebased on 7759a6f3): full barriers 420 -> 314 a frame, GPU 32.6 -> 31.7 ms, fps the same (24.7 / 24.7). Idle time between the fallback's small dispatches does not seem to be what costs on this GPU.
  • Batched submits (RX_VK_BATCH=1): 22.2 -> 19.8 fps, and 18.8 with RX_VK_BATCH_IDLE=0. Off is better on this APU, as #2422 found on the Deck.
  • Render resolution below 58%: no gain (33% with the upscaler off: 22 fps, GPU 36 ms); at 100%: 18.8 fps.
  • Robust buffers Off: higher fps, but Link and the water become white silhouettes, so not usable.

What helped

  • The game's own upscaler instead of FSR 3.1: 21.6 -> 23.6 fps (FSR 3.1 is 3.7 ms of the frame here). Relevant to #2110, which would make FSR 3.1 the default on GPUs like this one.
  • An experiment with the fallback's records laid out by word instead of by record (all records' word 0, then word 1, ...; same area, coalesced stores in the mesh epilogue and loads in the generated vertex stage): the grass mesh dispatch went 2.46 -> ~2.1 ms (-12 to -15%), d8e5... 0.72 -> 0.60 ms, picture unchanged. That a coalescing change only gives ~15% suggests the grass's mesh dispatch is mostly the game's own mesh program arithmetic, not memory. Happy to open it as a PR if it is wanted.

Preparation on a 32 GB PC

The noted-pipelines step used ~20 GB and the PC paged (12 threads at once), and with "one build of a program goes to the driver at a time (AMD)" it slowed to ~0.1 pipeline a second; #2323 looks like it addresses the first part.

Measured with Claude Code driving the game through the control bridge; logs available.

## Measurements on a Radeon Vega 7 iGPU (Ryzen 5 5600G), compute fallback **Setup:** Ryzen 5 5600G, Vega 7 iGPU at 2300 MHz (no mesh shaders, compute fallback #640), 32 GB DDR4-3800, AMD driver 31.0.21925.1001 (AMDVLK), Windows 11. Build: main `7759a6f3` plus a few local changes, Balanced 58% (896x504), frame generation 2x, Handheld profile. **Method:** the game driven through the control bridge (#926): Continue, the newest save in Kokiri Forest (child), Link standing still, 4-6 samples of 300 frames; GPU spans with `RX_VK_PASS_TIMING=2`. FPS is the game's own frames. Between runs of the same settings the fps varies by about 2, so only bigger differences below mean something. ### Where the GPU time goes (Kokiri Forest; FSR 3.1 from a run with it on, the rest from runs with the game's upscaler) | | ms a frame | |---|---| | render passes (~1,150 draws) | ~15 | | the game's compute dispatches (~110) | ~7 | | **the mesh fallback** (its setup, task and mesh dispatches, ~35 draws, timed as their own spans) | **~6** | | FSR 3.1 | 3.7 | - The fallback's biggest single cost is the floor grass: program `43ec86f35fd937b9`'s mesh dispatch, **~2.5 ms on its own**. The next ones are `d8e59341cf4f629c` (0.7 ms) and `d905f52b7517c681` (0.3 ms); the task dispatches and the setup are small. - With `RX_VK_NO_MESH_FALLBACK=1` (foliage missing) the same spot runs at 31.7 fps and 23.3 ms of GPU, against ~25-28 fps and ~31 ms with it: the fallback costs this iGPU about 7-8 ms a frame. - One more draw stands out: program `0e0016204515849a`, 2 draws a frame, **~3.4 ms**. Left out with `RX_VK_SKIP_PROG`, fps goes 22.2 -> 24.3, and the Great Deku Tree's moustache was then seen missing (so it is not a fix, just where the time goes). ### What made no difference here - **#1636's targeted barriers** (rebased on `7759a6f3`): full barriers 420 -> 314 a frame, GPU 32.6 -> 31.7 ms, fps the same (24.7 / 24.7). Idle time between the fallback's small dispatches does not seem to be what costs on this GPU. - **Batched submits** (`RX_VK_BATCH=1`): 22.2 -> 19.8 fps, and 18.8 with `RX_VK_BATCH_IDLE=0`. Off is better on this APU, as #2422 found on the Deck. - **Render resolution** below 58%: no gain (33% with the upscaler off: 22 fps, GPU 36 ms); at 100%: 18.8 fps. - Robust buffers Off: higher fps, but Link and the water become white silhouettes, so not usable. ### What helped - The game's own upscaler instead of FSR 3.1: 21.6 -> 23.6 fps (FSR 3.1 is 3.7 ms of the frame here). Relevant to #2110, which would make FSR 3.1 the default on GPUs like this one. - An experiment with the fallback's records laid out by word instead of by record (all records' word 0, then word 1, ...; same area, coalesced stores in the mesh epilogue and loads in the generated vertex stage): the grass mesh dispatch went 2.46 -> ~2.1 ms (-12 to -15%), `d8e5...` 0.72 -> 0.60 ms, picture unchanged. That a coalescing change only gives ~15% suggests the grass's mesh dispatch is mostly the game's own mesh program arithmetic, not memory. Happy to open it as a PR if it is wanted. ### Preparation on a 32 GB PC The noted-pipelines step used ~20 GB and the PC paged (12 threads at once), and with "one build of a program goes to the driver at a time (AMD)" it slowed to ~0.1 pipeline a second; #2323 looks like it addresses the first part. Measured with Claude Code driving the game through the control bridge; logs available.
mooki000 commented 2026-11-11 23:55:23 +00:00 (Migrated from github.com)

Intel UHD 770 (Raptor Lake-S, no mesh shaders), Mesa 26.2.5 ANV on i915, Arch Linux, built from source. First runs on main 872cb68 (2026-11-10), then on today's main a5b955fb, which has #2513 in. Headless, i9-13900K (32 threads), 93 GB RAM, the game capped at 32 GB per run, the same save in Kokiri Forest each time.

vk: device 0: Intel(R) Graphics (RPL-S), Vulkan 1.4, driver 0x6802005, type 1
vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback)
vk: matrix multiplies in software (no cooperative matrices)
vk: storage buffer tables searched in loops (RX_VK_GM_LOOP=0: written out)

(The last line is only in today's main.) Three faults showed on 872cb68. #2288 fixed the third, and #2513 fixed part of the first two. On a5b955fb the start-up precompile is still killed for memory, and the false colours are still there.

1. The first start runs out of memory, as in #775 and the Iris Xe reports above. On 872cb68:

  • hookshot --prepare-shaders: OOM-killed at the 32 GB cap after 297 s (16 workers), still compiling compute pipelines.
  • With only 4 workers it lasted longer but ended the same way. Memory stayed at 3-4 GB for 16 minutes. Then four programs started compiling side by side and it went 3.5 → 10 → 25 → 32 GB in about ten minutes, and was killed. Those four are 53caac5f38279735, f55579c6c7b39d05, a54f19e927d8faef (the Iris Xe's 20-minute one above) and dad2a8fbef3fd020, about 250,000 SPIR-V words each.
  • With one worker, 53caac5f38279735 still hadn't finished compiling when the run's 8 minutes ran out. The process went from 0.6 to 8.2 GB in that time and was still growing.
  • The game's own start-up precompile was OOM-killed after 124 s with main's 32 workers, and after 199 s with #1610's 16.

On a5b955fb, #2513 halves the table-heavy programs here: 53caac5f38279735 from 249,540 to 112,170 words, a54f19e927d8faef from 253,774 to 116,364. But the start-up precompile still ran out of memory. With the caches from one play session, both main's 32 workers and #1610's 16 were OOM-killed. That happened right after the 19 compute programs the precompile builds first, while it was building the no-mesh fallback's compute pipelines. That is inferred from the precompile's order, since the log doesn't name the compiles in flight. The machine was busy during those runs, so I'm not giving times yet. I'll post them on #1610 once I have them from a quiet machine. I haven't run the full shader preparation on a5b955fb.

2. After loading a save, the world is in false colours (posterized magenta, yellow and green over black; the HUD is right). That's the black-screen-after-loading report in another form. Since #496, Intel builds compute pipelines in play one at a time, in the order play first asks for them. On 872cb68 the first was 53caac5f38279735, and ANV was still on it when each run ended, the longest after 15 minutes. So every compute dispatch was left out for the whole session. Among them was 6637ac1d052d22d4, which writes the scene into the upscaler's input as RGB9E5 (#1960), and without it the upscale reads the wrong bits. A frame dump against the RTX 4090's showed the scene passes are fine and the picture goes wrong at the upscale.

On a5b955fb, 53caac5f38279735 built in play in 17.7 s, and at least 12 compute pipelines finished building in play (the log names the builds of 200 ms or more), where none had on 872cb68. The picture is still in false colours, though. Over two starts, 16 minutes of play in all, 6637ac1d052d22d4 was never dispatched: it isn't in hookshot_computes.bin, where the game notes each compute program at its first dispatch, and the second start logs dispatch of 6637ac1d052d22d4 left out: its compute pipeline is still compiling. The one-at-a-time thread is still busy with something ahead of it. The other big compute programs of 117,000-182,000 words are barely smaller after #2513, and four of them took 37 to 122 s each to build, on a busy machine. The no-mesh fallback's compute pipelines go to the same thread too. I suspect those, but the log doesn't show which build it's on.

Letting the smaller compute builds use the shared workers made this worse here, because they then hold up shader translation (details on #1610).

3. The integrated-GPU texture budget counted native ASTC textures 16-144 times too big. Kokiri Forest counted textures 17608 MB (budget 2560 MB) while the process held 4854 MB in all. Fixed by #2288 (merged): 2241 MB (budget 2560 MB) with the fix.

No i915 line in the kernel log in any run. Sound not checked (runs are muted).

**Intel UHD 770 (Raptor Lake-S, no mesh shaders), Mesa 26.2.5 ANV on i915, Arch Linux, built from source.** First runs on main 872cb68 (2026-11-10), then on today's main a5b955fb, which has #2513 in. Headless, i9-13900K (32 threads), 93 GB RAM, the game capped at 32 GB per run, the same save in Kokiri Forest each time. ``` vk: device 0: Intel(R) Graphics (RPL-S), Vulkan 1.4, driver 0x6802005, type 1 vk: no mesh shaders: task and mesh programs run as compute shaders (issue 640 fallback) vk: matrix multiplies in software (no cooperative matrices) vk: storage buffer tables searched in loops (RX_VK_GM_LOOP=0: written out) ``` (The last line is only in today's main.) Three faults showed on 872cb68. #2288 fixed the third, and #2513 fixed part of the first two. On a5b955fb the start-up precompile is still killed for memory, and the false colours are still there. **1. The first start runs out of memory, as in #775 and the Iris Xe reports above.** On 872cb68: - `hookshot --prepare-shaders`: OOM-killed at the 32 GB cap after 297 s (16 workers), still compiling compute pipelines. - With only 4 workers it lasted longer but ended the same way. Memory stayed at 3-4 GB for 16 minutes. Then four programs started compiling side by side and it went 3.5 → 10 → 25 → 32 GB in about ten minutes, and was killed. Those four are `53caac5f38279735`, `f55579c6c7b39d05`, `a54f19e927d8faef` (the Iris Xe's 20-minute one above) and `dad2a8fbef3fd020`, about 250,000 SPIR-V words each. - With one worker, `53caac5f38279735` still hadn't finished compiling when the run's 8 minutes ran out. The process went from 0.6 to 8.2 GB in that time and was still growing. - The game's own start-up precompile was OOM-killed after 124 s with main's 32 workers, and after 199 s with #1610's 16. On a5b955fb, #2513 halves the table-heavy programs here: `53caac5f38279735` from 249,540 to 112,170 words, `a54f19e927d8faef` from 253,774 to 116,364. But the start-up precompile still ran out of memory. With the caches from one play session, both main's 32 workers and #1610's 16 were OOM-killed. That happened right after the 19 compute programs the precompile builds first, while it was building the no-mesh fallback's compute pipelines. That is inferred from the precompile's order, since the log doesn't name the compiles in flight. The machine was busy during those runs, so I'm not giving times yet. I'll post them on #1610 once I have them from a quiet machine. I haven't run the full shader preparation on a5b955fb. **2. After loading a save, the world is in false colours** (posterized magenta, yellow and green over black; the HUD is right). That's the black-screen-after-loading report in another form. Since #496, Intel builds compute pipelines in play one at a time, in the order play first asks for them. On 872cb68 the first was `53caac5f38279735`, and ANV was still on it when each run ended, the longest after 15 minutes. So every compute dispatch was left out for the whole session. Among them was `6637ac1d052d22d4`, which writes the scene into the upscaler's input as RGB9E5 (#1960), and without it the upscale reads the wrong bits. A frame dump against the RTX 4090's showed the scene passes are fine and the picture goes wrong at the upscale. On a5b955fb, `53caac5f38279735` built in play in 17.7 s, and at least 12 compute pipelines finished building in play (the log names the builds of 200 ms or more), where none had on 872cb68. The picture is still in false colours, though. Over two starts, 16 minutes of play in all, `6637ac1d052d22d4` was never dispatched: it isn't in `hookshot_computes.bin`, where the game notes each compute program at its first dispatch, and the second start logs `dispatch of 6637ac1d052d22d4 left out: its compute pipeline is still compiling`. The one-at-a-time thread is still busy with something ahead of it. The other big compute programs of 117,000-182,000 words are barely smaller after #2513, and four of them took 37 to 122 s each to build, on a busy machine. The no-mesh fallback's compute pipelines go to the same thread too. I suspect those, but the log doesn't show which build it's on. Letting the smaller compute builds use the shared workers made this worse here, because they then hold up shader translation (details on #1610). **3. The integrated-GPU texture budget counted native ASTC textures 16-144 times too big.** Kokiri Forest counted `textures 17608 MB (budget 2560 MB)` while the process held `4854 MB` in all. Fixed by #2288 (merged): `2241 MB (budget 2560 MB)` with the fix. No i915 line in the kernel log in any run. Sound not checked (runs are muted).
Vinni5147 commented 2026-11-12 01:23:00 +00:00 (Migrated from github.com)

UPDATE: RX 580 4GB on Fedora 44
ver: 2.1.0
Mesa 26.2.6

Now after update 2.1.0 the game is not launching..

When loading the pipelines.. is consuming all Ram and the system is closing the app..

Captura de tela de 2026-11-11 22-12-32(Editado)

I wIll try reinstall and update here soon!

UPDATE: RX 580 4GB on Fedora 44 ver: 2.1.0 Mesa 26.2.6 Now after update 2.1.0 the game is not launching.. When loading the pipelines.. is consuming all Ram and the system is closing the app.. <img width="1766" height="462" alt="Captura de tela de 2026-11-11 22-12-32(Editado)" src="https://github.com/user-attachments/assets/3afc6ebd-6192-433b-89d4-14da3727468d" /> I wIll try reinstall and update here soon!
NotRexed commented 2026-11-12 03:07:16 +00:00 (Migrated from github.com)

More reports of this, collected here:

  • #2517: Significant FPS drop when leaving Kakariko Village and entering Hyrule Field (v2.1.0; Nvidia GeForce GTX 1080 8GB; AMD Ryzen 5 4500 6-Core Processor, 16GB RAM)
More reports of this, collected here: - #2517: Significant FPS drop when leaving Kakariko Village and entering Hyrule Field (v2.1.0; Nvidia GeForce GTX 1080 8GB; AMD Ryzen 5 4500 6-Core Processor, 16GB RAM)
Owner

@n1ckkybobby commented on GitHub · 2026-11-12 06:41 UTC · original

RX 580 8GB 31.0.21923.11000
Ryzen 5 3600

Unplayable fps and stutters, along with usual missing textures from no mesh shader support

hookshot_log.txt

> [@n1ckkybobby](https://github.com/n1ckkybobby) commented on GitHub · 2026-11-12 06:41 UTC · [original](https://github.com/NotRexed/Hookshot/issues/1001#issuecomment-6816708612) RX 580 8GB 31.0.21923.11000 Ryzen 5 3600 Unplayable fps and stutters, along with usual missing textures from no mesh shader support [hookshot_log.txt](https://github.com/user-attachments/files/34732770/hookshot_log.txt) <!-- github-sync:c:6816708612 -->
Owner

@Waryxxful commented on GitHub · 2026-11-12 11:21 UTC · original

RX 5600 XT 6 GB (RDNA1), Windows 11, main de866017: Crono141's three switches, one at a time.

Each switch was run on its own, and the large differences twice. Every run starts from the same copied save and follows a scripted route through the control bridge (Kokiri Forest and Hyrule Field: settle 15 s, then 60 s standing); fps are the medians of the log's N presents lines. Adrenalin 26.10.1, Ryzen 5 5600X, 24 GB, 1920x1080, frame generation off.

Kokiri Forest Hyrule Field other
main, 4 runs 31.5-34.6 fps 32.1-34.8 fps private memory 26.7-27.5 GB
RX_VK_MIRROR=0 38.7 / 36.6 39.6 / 37.1 memory sync 0.99 → 0.48 ms (Kokiri)
RX_VK_PARALLEL=3 34.0 / 34.0 39.1 / 39.4 no gain where the replay is light (Kokiri ~890 draws), +16% in the field
RX_VK_PRECOMPILE=0 35.2 33.6 private memory 20.0-20.9 GB, -26%: fps within noise
RX_VK_COMPACT=0 (compaction off) 34.2 35.0 within noise

So on RDNA1 Windows, the mirrors-off gain matches Crono141's RX 590 on Linux (+10-17% here), and so does the parallel replay in the heavier spot. Precompile off didn't change the frame rate here, but it saves ~7 GB of private memory, which matters on 16 GB PCs.

The first start on this card (shader programs 120 s, predicted pipelines 3,603 s, noted pipelines 2,355 s, private memory up to ~30 GB during the noted part) is in #2505.

> [@Waryxxful](https://github.com/Waryxxful) commented on GitHub · 2026-11-12 11:21 UTC · [original](https://github.com/NotRexed/Hookshot/issues/1001#issuecomment-6822202056) **RX 5600 XT 6 GB (RDNA1), Windows 11, main `de866017`: Crono141's three switches, one at a time.** Each switch was run on its own, and the large differences twice. Every run starts from the same copied save and follows a scripted route through the control bridge (Kokiri Forest and Hyrule Field: settle 15 s, then 60 s standing); fps are the medians of the log's `N presents` lines. Adrenalin 26.10.1, Ryzen 5 5600X, 24 GB, 1920x1080, frame generation off. | | Kokiri Forest | Hyrule Field | other | |---|---|---|---| | main, 4 runs | 31.5-34.6 fps | 32.1-34.8 fps | private memory 26.7-27.5 GB | | `RX_VK_MIRROR=0` | **38.7 / 36.6** | **39.6 / 37.1** | memory sync 0.99 → 0.48 ms (Kokiri) | | `RX_VK_PARALLEL=3` | 34.0 / 34.0 | **39.1 / 39.4** | no gain where the replay is light (Kokiri ~890 draws), +16% in the field | | `RX_VK_PRECOMPILE=0` | 35.2 | 33.6 | **private memory 20.0-20.9 GB, -26%**: fps within noise | | `RX_VK_COMPACT=0` (compaction off) | 34.2 | 35.0 | within noise | So on RDNA1 Windows, the mirrors-off gain matches Crono141's RX 590 on Linux (+10-17% here), and so does the parallel replay in the heavier spot. Precompile off didn't change the frame rate here, but it saves ~7 GB of private memory, which matters on 16 GB PCs. The first start on this card (shader programs 120 s, predicted pipelines 3,603 s, noted pipelines 2,355 s, private memory up to ~30 GB during the noted part) is in #2505. <!-- github-sync:c:6822202056 -->
Owner

@hbahlin-jpg commented on GitHub · 2026-11-12 14:43 UTC · original

Follow-up: RX 5700 XT — three save loads in a row without a device lost after RX_VK_PARALLEL=3 + RX_VK_MIRROR=0; and a warning about RX_VK_PRECOMPILE=0 on no-mesh cards

Same machine as my earlier report (RX 5700 XT, no mesh shaders → compute fallback; Ryzen 5 5600;
16 GB; Windows 10 19045; driver 32.0.21045.16010 / 0x800161; Hookshot v2.1.0, source 633eb435).

Since my last report I ran the same save with RX_VK_PARALLEL=3 and RX_VK_MIRROR=0 in
hookshot_env.txt. Three launches, three successful loads, six pool ... took in N pools events
in all, no submit failed (-4), no device lost, every one exits with
display: window closed, exiting:

log switches pool merges survived length outcome
hookshot_log.1.txt PARALLEL=3, MIRROR=0 3 (lines 806, 816, 1913) 2,521 lines clean exit
hookshot_log.2.txt PARALLEL=3, MIRROR=0, PRECOMPILE=0 1 (line 815) 1,645 lines clean exit
hookshot_log.txt PARALLEL=3, MIRROR=0, PRECOMPILE=1 2 (lines 910, 1849) 19,898 lines, 52,320 presents clean exit

Where it used to die, the log now just carries on:

hookshot_log.txt:910   vk: pool 0x1177000000..0x1180000000 took in 2 pools
hookshot_log.txt:1849  vk: pool 0x1162000000..0x1165000000 took in 2 pools     ← no submit failure after either

Caveat, because it matters for your triage: this is not proof of a fix. The failure is not
deterministic on my card. One earlier launch with the default switches also loaded and played
12,650 lines through two took in 2 pools (hookshot_log.3.txt), and another launch with the same
default switches died at the same point within 923 lines (hookshot_log.4.txt). So a load either
lands in the bad case or it does not, and PARALLEL=3 may simply be shifting the timing rather
than closing the hole. RX_VK_MIRROR=0 alone was not enough: with mirrors off but no parallel
replay it still died right after took in 2 pools (submit 9836 failed (-4)).

Second finding: RX_VK_PRECOMPILE=0 washes the picture out on a no-mesh card. With it set, the
fallback compute pipelines are built during play, and until they exist their draws are skipped:

vk: fallback draw of 7210c04a4d923d4b left out: its compute pipelines are still compiling   (40+ times)
vk: a frame: 272.8 draws left out (not ready)

The result is a scene that looks white/faded for the first minutes (the foliage and grass - exactly
what the fallback draws - are the missing part). With RX_VK_PRECOMPILE=1 the log shows
precompile: 9582 programs, 11046 graphics and 1060 compute pipelines ... in 7478 ms at start-up,
then 0.0 draws left out (not ready) for the whole session and the picture is correct. If the
switch is documented as a memory saving (it does save ~7 GB of private memory, which is why I tried
it on a 16 GB PC), it may be worth a note that on cards without mesh shaders it also means missing
foliage until the fallback pipelines are built.

Performance side note from the same runs: with RX_VK_MIRROR=0 the GPU time in a 1,646-draw
frame went from about 19 ms to 7.6 ms, a frame's replay time from about 25 ms to 15 ms, and VRAM
from 7.1 of 7.1 GB (at the driver's limit) to 5.9 of 7.2 GB. 37-43 fps in the draw-heavy parts,
60 fps elsewhere, and the frame interpolation reports 0 late frames. The 0 programs (10 failed)
line is unchanged from before.

Happy to attach any of the four logs, or to run a specific combination twice for a cleaner A/B.

hookshot_log.txt

hookshot_log.4.txt
hookshot_log.3.txt

> [@hbahlin-jpg](https://github.com/hbahlin-jpg) commented on GitHub · 2026-11-12 14:43 UTC · [original](https://github.com/NotRexed/Hookshot/issues/1001#issuecomment-6826742702) **Follow-up: RX 5700 XT — three save loads in a row without a device lost after `RX_VK_PARALLEL=3` + `RX_VK_MIRROR=0`; and a warning about `RX_VK_PRECOMPILE=0` on no-mesh cards** Same machine as my earlier report (RX 5700 XT, no mesh shaders → compute fallback; Ryzen 5 5600; 16 GB; Windows 10 19045; driver 32.0.21045.16010 / 0x800161; Hookshot v2.1.0, source 633eb435). Since my last report I ran the same save with `RX_VK_PARALLEL=3` and `RX_VK_MIRROR=0` in `hookshot_env.txt`. Three launches, three successful loads, six `pool ... took in N pools` events in all, no `submit failed (-4)`, no device lost, every one exits with `display: window closed, exiting`: | log | switches | pool merges survived | length | outcome | |---|---|---|---|---| | hookshot_log.1.txt | PARALLEL=3, MIRROR=0 | 3 (lines 806, 816, 1913) | 2,521 lines | clean exit | | hookshot_log.2.txt | PARALLEL=3, MIRROR=0, PRECOMPILE=0 | 1 (line 815) | 1,645 lines | clean exit | | hookshot_log.txt | PARALLEL=3, MIRROR=0, PRECOMPILE=1 | 2 (lines 910, 1849) | 19,898 lines, 52,320 presents | clean exit | Where it used to die, the log now just carries on: ``` hookshot_log.txt:910 vk: pool 0x1177000000..0x1180000000 took in 2 pools hookshot_log.txt:1849 vk: pool 0x1162000000..0x1165000000 took in 2 pools ← no submit failure after either ``` **Caveat, because it matters for your triage: this is not proof of a fix.** The failure is not deterministic on my card. One earlier launch with the *default* switches also loaded and played 12,650 lines through two `took in 2 pools` (hookshot_log.3.txt), and another launch with the same default switches died at the same point within 923 lines (hookshot_log.4.txt). So a load either lands in the bad case or it does not, and `PARALLEL=3` may simply be shifting the timing rather than closing the hole. `RX_VK_MIRROR=0` alone was not enough: with mirrors off but no parallel replay it still died right after `took in 2 pools` (submit 9836 failed (-4)). **Second finding: `RX_VK_PRECOMPILE=0` washes the picture out on a no-mesh card.** With it set, the fallback compute pipelines are built during play, and until they exist their draws are skipped: ``` vk: fallback draw of 7210c04a4d923d4b left out: its compute pipelines are still compiling (40+ times) vk: a frame: 272.8 draws left out (not ready) ``` The result is a scene that looks white/faded for the first minutes (the foliage and grass - exactly what the fallback draws - are the missing part). With `RX_VK_PRECOMPILE=1` the log shows `precompile: 9582 programs, 11046 graphics and 1060 compute pipelines ... in 7478 ms` at start-up, then `0.0 draws left out (not ready)` for the whole session and the picture is correct. If the switch is documented as a memory saving (it does save ~7 GB of private memory, which is why I tried it on a 16 GB PC), it may be worth a note that on cards without mesh shaders it also means missing foliage until the fallback pipelines are built. **Performance side note from the same runs:** with `RX_VK_MIRROR=0` the GPU time in a 1,646-draw frame went from about 19 ms to 7.6 ms, `a frame's replay time` from about 25 ms to 15 ms, and VRAM from `7.1 of 7.1 GB` (at the driver's limit) to `5.9 of 7.2 GB`. 37-43 fps in the draw-heavy parts, 60 fps elsewhere, and the frame interpolation reports 0 late frames. The `0 programs (10 failed)` line is unchanged from before. Happy to attach any of the four logs, or to run a specific combination twice for a cleaner A/B. [hookshot_log.txt](https://github.com/user-attachments/files/34753565/hookshot_log.txt) [hookshot_log.4.txt](https://github.com/user-attachments/files/34753540/hookshot_log.4.txt) [hookshot_log.3.txt](https://github.com/user-attachments/files/34753541/hookshot_log.3.txt) <!-- github-sync:c:6826742702 -->
Owner

@mooki000 commented on GitHub · 2026-11-12 15:18 UTC · original

Tracker upkeep note (merged pull requests and code checked against main 51da0464; no new test run was made for it).

Main contains #1314's fallback payload/SPIR-V repairs, #1317's failed-pipeline retry guard, #1510/#1511's indirect-task and workgroup-capacity repairs, #2327's 3D BC attachment fix and #2343's unsupported-f16 handling. #2525 is a GCN mitigation that omits oversized programs, not complete geometry support. Two implementation gaps still exist on 51da0464: fallback draws with a count buffer are explicitly left out, and fallback graphics pipelines declared a dynamic vertex stride they never set (the validation message in #2494): #2796 is open for that. Please keep the tracker open and distinguish RX_VK_NO_MESH=1, which skips draws, from actual Compute fallback. This note confirms code and merges only, not a new hardware test.

> [@mooki000](https://github.com/mooki000) commented on GitHub · 2026-11-12 15:18 UTC · [original](https://github.com/NotRexed/Hookshot/issues/1001#issuecomment-6827620589) **Tracker upkeep note** (merged pull requests and code checked against main `51da0464`; no new test run was made for it). Main contains #1314's fallback payload/SPIR-V repairs, #1317's failed-pipeline retry guard, #1510/#1511's indirect-task and workgroup-capacity repairs, #2327's 3D BC attachment fix and #2343's unsupported-f16 handling. #2525 is a GCN mitigation that omits oversized programs, not complete geometry support. Two implementation gaps still exist on `51da0464`: fallback draws with a count buffer are explicitly left out, and fallback graphics pipelines declared a dynamic vertex stride they never set (the validation message in #2494): #2796 is open for that. Please keep the tracker open and distinguish `RX_VK_NO_MESH=1`, which skips draws, from actual Compute fallback. This note confirms code and merges only, not a new hardware test. <!-- github-sync:c:6827620589 -->
Owner

@mooki000 commented on GitHub · 2026-11-12 17:43 UTC · original

A count for whoever takes the count-buffer part of the fallback: in these two scenes the game never issues such a draw.

Census, 12 November: main e2057b2 plus logging only, Intel UHD 770, Mesa ANV 26.2.5-arch1.1, Arch Linux; windowless, startup precompile off.

Loaded scene, standing Mesh draw invocations Indirect invocations Count-buffer calls / skips
Kokiri Forest, through renderer frame 4200 259,134 114,841 0 / 0
Hyrule Field, through renderer frame 4680 286,090 163,023 0 / 0

The shared counter runs at the start of draw(), before argument conversion and every shader/target skip; its printing interval does not limit counting. Mesh totals include internal direct-draw batches.
The unsupported count-buffer branch was never reached, so it does not explain the missing rendering in these two runs. There are no counted-program hashes or count-buffer writers to identify here.
The inspected captures are black with HUD while compute pipelines remain pending: not evidence of correct rendering, restored objects, or the cause of the black picture. No rendering change was added.
Not covered: the deferred Deku Tree room, other dungeon rooms/areas, combat or effect sequences, native-mesh comparison, Windows or other GPUs. Count-buffer support remains unimplemented; this is not a fix for the tracker.

> [@mooki000](https://github.com/mooki000) commented on GitHub · 2026-11-12 17:43 UTC · [original](https://github.com/NotRexed/Hookshot/issues/1001#issuecomment-6831312244) **A count for whoever takes the count-buffer part of the fallback: in these two scenes the game never issues such a draw.** Census, 12 November: main `e2057b2` plus logging only, Intel UHD 770, Mesa ANV 26.2.5-arch1.1, Arch Linux; windowless, startup precompile off. | Loaded scene, standing | Mesh draw invocations | Indirect invocations | Count-buffer calls / skips | |---|---:|---:|---:| | Kokiri Forest, through renderer frame 4200 | 259,134 | 114,841 | 0 / 0 | | Hyrule Field, through renderer frame 4680 | 286,090 | 163,023 | 0 / 0 | The shared counter runs at the start of `draw()`, before argument conversion and every shader/target skip; its printing interval does not limit counting. Mesh totals include internal direct-draw batches. The unsupported count-buffer branch was never reached, so it does not explain the missing rendering in these two runs. There are no counted-program hashes or count-buffer writers to identify here. The inspected captures are black with HUD while compute pipelines remain pending: not evidence of correct rendering, restored objects, or the cause of the black picture. No rendering change was added. Not covered: the deferred Deku Tree room, other dungeon rooms/areas, combat or effect sequences, native-mesh comparison, Windows or other GPUs. Count-buffer support remains unimplemented; this is not a fix for the tracker. <!-- github-sync:c:6831312244 -->
Commenting is not possible because the repository is archived.
No milestone
No assignees
2 participants
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#1001
No description provided.