Occurs during heavy Hyrule Field or Temple transitions when the ASTC texture pool plus shadow cascades exceed physical VRAM or trigger a driver TDR timeout.
Hookshot Troubleshooting, VK_ERROR_DEVICE_LOST & Env Workarounds
Diagnose and resolve every documented Hookshot v2.0.11 runtime crash, GPU driver hang, texture artifact, and builder extraction error. Search or filter the 10 verified fault sheets below by issue tag (#1161, #817, #57, #1176) or symptom, inspect the three ruled diagnostic panes (Symptom, Environment Flag, Resolution), and apply targeted RX_* environment overrides.
Interactive Fault Index & Three-Pane Diagnostic Workbench
Filter by headline issue tag (#1161, #817, #57, #1176, RX_* Diagnostics) or search by symptom keyword. Each FaultSheet presents three ruled panes — Observed Symptom, Environment Variable / Launch Flag, and Verified v2.0.11 Resolution — alongside cross-linked fault relations.
Entering Inside the Deku Tree or Web Room on Steam Deck (Mesa RADV) can hang the GPU command buffer due to meshlet subgroup culling on shader 2c56dc1006942f74.
Certain AMD Windows Adrenalin and Linux drivers miscompile the compute ASTC-to-BC7 transcoder, producing colorful 4x4 macroblock artifacts on HUD icons and Kokiri foliage.
Asset builder aborts when given a base v0 dump without patch v131072, an N64/3DS ROM instead of Switch 2 Title ID 0400486024DEC000, or Windows paths with non-ASCII characters prior to v2.0.11.
Skips draw calls for one or more 64-bit NVN2 shader hashes so players and contributors can pinpoint which SPIR-V pipeline triggers a driver crash or visual glitch.
Routes individual guest function addresses (`0x7100xxxxxx`) or the entire binary through the software ARM64 interpreter instead of static C translations.
Controls stdout/stderr verbosity from trace to error and logs entry/exit register states (`X0`–`X7`) for targeted guest functions when filing GitHub issues.
Initializes the no-op null renderer and RX_BOOT_DIRECT=1 so developers on non-mesh-shader machines can verify RomFS mounting, audio, and save parsing.
On Ubuntu 22.04/24.04 or minimal distros without libfuse2, double-clicking Hookshot-v2.0.11-Linux-x86_64.AppImage silently fails unless executable permissions or --appimage-extract are used.
Recovers from interrupted writes by falling back to autosave.sav or recalculating the CRC32C header checksum (`0x0008`) with scripts/oot_saves.py.
When a crash or softlock cannot be resolved by lowering VRAM presets, combine RX_LOG_LEVEL=debug with RX_SKIP_SHADERS=<hash> to test whether a specific NVN2 SPIR-V pipeline is responsible, or set RX_FORCE_INTERP=0x7100xxxxxx (or RX_FORCE_INTERP=all) to execute guest functions on the software ARM64 interpreter instead of static C.
Visual Failure Path Schematics (#1161 · #817 · #57)
ASTC texture pool + shadow cascades exceed physical VRAM or separate present queue triggers TDR timeout → Lower Insert/F1 preset to Low/Medium and run Hookshot v2.0.11.
Entering Inside the Deku Tree executes mesh shader 2c56dc1006942f74 → RADV wave64 ballot stalls GPU command buffer → Pass RX_VK_MESH_NOCULL=2c56dc1006942f74 %command%.
Adrenalin / RADV compute shader corrupts 4×4 BC7 blocks on Kokiri foliage and HUD icons → Export RX_VK_ASTC_RGBA8=1 to force CPU/software RGBA8 texture decoding.
Complete 10-Record Troubleshooting & RX_* Flag Reference Ledger
| Fault Name & Issue Ref | Affected Platform | Environment Variable / Flag | Related Faults |
|---|---|---|---|
VK_ERROR_DEVICE_LOST GPU Timeout or VRAM Exhaustion (#1161) Issue #1161 | 4 GB - 6 GB VRAM GPUs or overclocked Vulkan drivers | graphics_preset=Low/Medium or RX_SKIP_SHADERS=<hash> | |
Steam Deck / Linux RADV Inside the Deku Tree Freeze (#817) Issue #817 | Steam Deck LCD/OLED & Linux AMD RADV (Mesa < 24.3) | RX_VK_MESH_NOCULL=2c56dc1006942f74 | |
AMD RDNA 2 / RDNA 3 Blocky Foliage & HUD Texture Artifacts (#57 / #1006) Issues #57 & #1006 | AMD Radeon RX 6000 / RX 7000 Series (Windows & Linux) | RX_VK_ASTC_RGBA8=1 | |
HookshotBuilder Asset Extraction Failure or NSO Hash Mismatch (#1176 / #990) Issues #1176 & #990 | Windows x64 & Linux x86_64 HookshotBuilder | Require Title ID 0400486024DEC000 v131072 (e0f3ccfa) | |
Isolating Broken Custom or Driver-Specific Shaders (RX_SKIP_SHADERS) docs/DEVELOPMENT.md | All Vulkan 1.3 platforms | RX_SKIP_SHADERS=<hash1>,<hash2> | |
Bypassing Lifted C Function Regressions via ARM64 Interpreter (RX_FORCE_INTERP) docs/DESIGN.md & docs/DEVELOPMENT.md | Windows x64 & Linux x86_64 | RX_FORCE_INTERP=0x7100123450 or RX_FORCE_INTERP=all | |
Enabling Verbose Vulkan & HLE Syscall Logs (RX_LOG_LEVEL & RX_TRACE_FUNC) docs/DEVELOPMENT.md | Windows x64 & Linux x86_64 | RX_LOG_LEVEL=debug / RX_ABORT_ON_UNIMPL=1 | |
Testing Asset Load & Boot Logic Without Mesh Shaders (RX_GPU_BACKEND=null) docs/DEVELOPMENT.md | Headless CI runners & non-mesh-shader test machines | RX_GPU_BACKEND=null RX_BOOT_DIRECT=1 | |
Linux AppImage Fails to Launch (Missing chmod +x or libfuse2) README.md Linux Setup | Linux x86_64 (Ubuntu, Debian, Fedora, Arch) | chmod +x *.AppImage or --appimage-extract-and-run | |
Corrupted Save Slot or Manual Save Path Override (RX_SAVE_PATH & oot_saves.py) docs/SAVES.md | Windows x64 & Linux x86_64 | python3 scripts/oot_saves.py verify save_00.sav / RX_SAVE_PATH |
Resolving VK_ERROR_DEVICE_LOST (#1161), Steam Deck Deku Tree Hangs (#817) & AMD ASTC Glitches (#57)
Three hardware-specific issues account for the majority of community support reports in Hookshot. First, Issue #1161 (VK_ERROR_DEVICE_LOST) manifests in two distinct scenarios: on NVIDIA 621-series drivers immediately after startup shader preparation when a separate Vulkan present queue was active (mitigated in v2.0.9 and refined in v2.0.11 by keeping the separate present queue off while re-enabling RX_VK_WB_DIFF=1), or during heavy Hyrule Field / Temple transitions when the ASTC texture pool and shadow cascades exceed physical VRAM on 4 GB to 6 GB GPUs. Lowering the Graphics Preset in the Insert / F1 menu to Low (1.5 GB pool) or Medium (2.5 GB pool) prevents VRAM exhaustion.
Second, Issue #817 affects Steam Deck LCD/OLED and Linux AMD RADV systems running Mesa versions prior to 24.3: entering Inside the Deku Tree or the Web Room hangs the GPU command buffer while audio continues looping. The hang is triggered by subgroup meshlet culling inside NVN2 mesh shader 2c56dc1006942f74; setting Steam Launch Options to RX_VK_MESH_NOCULL=2c56dc1006942f74 %command% bypasses culling for that specific shader with zero measurable FPS penalty. Third, Issues #57 and #1006 on AMD Radeon RX 6000 / RX 7000 GPUs cause rainbow 4x4 blocks on foliage and HUD icons due to driver miscompilation of the compute ASTC-to-BC7 transcoder; exporting RX_VK_ASTC_RGBA8=1 switches to lossless software RGBA8 decompression.
HookshotBuilder Extraction Errors (#1176 / #990) & Developer RX_* Diagnostic Flags
When HookshotBuilder fails during asset extraction or C compilation, verify three prerequisites: (1) your dump matches Switch 2 Title ID 0400486024DEC000 at update v131072 with ExeFS main NSO SHA-1 prefix e0f3ccfa (e0f3ccfa56256410941279ef0b2501356be2222c), not a base v0 dump or N64/3DS ROM; (2) you are running Hookshot v2.0.11, which fixes non-ASCII Windows user path failures (#1176), stale generated C translation conflicts (#1197), and missing Linux AppImage headers (#990); and (3) you have at least 30 GB of free disk space for the 26.2 GB unpacked RomFS plus 1.4 GB of generated C sources.
For advanced debugging, Hookshot exposes granular environment variables documented in docs/DEVELOPMENT.md: RX_LOG_LEVEL=debug and RX_ABORT_ON_UNIMPL=1 surface unimplemented Horizon OS HLE service calls; RX_SKIP_SHADERS=<hash1>,<hash2> disables specific 64-bit NVN2 shader pipelines to isolate visual corruption; RX_FORCE_INTERP=0x7100xxxxxx routes suspect guest functions through the software ARM64 interpreter; and RX_GPU_BACKEND=null pairs with RX_BOOT_DIRECT=1 for headless boot verification.
Troubleshooting & Environment Flag FAQ
Where do I set RX_VK_MESH_NOCULL or RX_VK_ASTC_RGBA8 on Windows vs. Steam Deck?
On Steam Deck or Linux Steam, right-click Hookshot -> Properties -> Launch Options and enter: RX_VK_MESH_NOCULL=2c56dc1006942f74 %command% (or combine multiple variables before %command%). On Windows PowerShell, run $env:RX_VK_ASTC_RGBA8=1; .\hookshot.exe from the build directory, or add the variable in Windows System Properties -> Environment Variables.
Why did upgrading from v2.0.7 to v2.0.9 fail with undeclared g_module_b or f_8 symbols (#1176 / #1197)?
Prior to v2.0.10, interrupted or cross-version updates could leave stale generated C files inside work/sa/gen/, causing clang/lld link errors. Updating to Hookshot v2.0.11 automatically discards stale partial generated code and cleans old translation shards before compiling.
How do I recover a save slot if Hookshot reports Corrupted Data after a crash?
First check the saves directory for autosave.sav and copy it over save_00.sav. If you edited a save file manually, run python -m nx2.oot_saves verify save_00.sav (or export-json followed by import-json) so Hookshot recomputes the required CRC32C checksum at header offset 0x0008.
Official NotRexed/Hookshot Diagnostic & Issue References
- SRC-01 // KNOWN ISSUES
Primary source for Known Issues #57, #817, #990, #1006, #1161, and #1176 plus hardware requirements.
- SRC-02 // DEBUG ENV FLAGS
Documents RX_VK_MESH_NOCULL, RX_VK_ASTC_RGBA8, RX_SKIP_SHADERS, RX_FORCE_INTERP, RX_LOG_LEVEL, and RX_GPU_BACKEND=null.
- SRC-03 // SAVE FORMAT
Specifies the 64 KB save_00.sav layout, CRC32C checksum at offset 0x0008, autosave.sav fallback, and scripts/oot_saves.py.
- SRC-04 // RELEASE HOTFIXES
Verifies the v2.0.9 NVIDIA 621 hotfix (#1161), v2.0.10 builder cleanup (#1176/#1197), and v2.0.11 RX_VK_WB_DIFF=1 restoration.