Hookshot v2.0.8
Update from the launcher (Update next to Play) or download HookshotBuilder.exe below. The first start after updating prepares shaders again.
Faster
- About 25% more FPS than v2.0.7 on the same PC and route (RTX 4060 Ti, 3440x1440, frame generation on: 35.8 -> 44.7 fps; GPU time 17.5 -> 11 ms a frame). Most of it is writing back only what changed (#1109, ShroomKing): each frame copied ~68 MB of GPU results back to the game's memory, 37% of the GPU's time; now only the changed bytes go. Presents also go out on their own queue so the game's work doesn't wait behind them.
RX_VK_WB_DIFF=0turns the write-back diff off if you suspect it. - CPU side: the render thread gets the reserved core (#1034), log lines no longer stall the render thread (#1045), capture copies, write-back lookups, sampler caching and lock fixes (#876, #908, #948, #896, #854, #936, #901, #944, #958, #959, #853).
- 6-8 GB cards keep large textures compressed and drop dead render targets sooner (#963, #961, #899).
- Tip: on a GPU that's already busy, frame generation can cost more than it gives (here: 37.9 fps with it, 41.4 without, before #1109). Try both.
First start after updating
- The window opens at once and shows the shader preparation's progress (#860, hckrman101) instead of nothing for minutes.
- Pipelines met in play are built before the game (#939); the extra predicted ones are capped at 90 s (
RX_VK_PREDICT_S), the rest are built in play. About 5 minutes here on a first start.
Fixes
- Ultrawide crash (#1031): 32:9 and 21:9 screens at the 4K output crashed as a save loaded (the picture was up to 7680x2160, more than the game's render target memory holds). The wide picture now keeps its shape at up to 4K's pixel count (5400x1520 for 32:9), and the render target memory follows it. Reproduced and checked here.
- Device lost after a long session on NVIDIA 8 GB cards (#1057): old memory pools are given back on NVIDIA (Windows) instead of piling up. Thanks for the careful A/B.
- Laptops with two GPUs / the AMD test switches: the shader cache is rebuilt when the GPU or the translation switches change, instead of reusing shaders made for another GPU.
- Builder: compile memory bookkeeping no longer fails with a
KeyErroron Windows (#1047, fixes #1029); a failed compile job is retried exactly (#1053). - Shader cache: pipeline prediction finds its programs again and a background prepare is not repeated (#1051, #1043, hckrman101); bad saved pipeline records are rejected (#1054).
- Linux/Steam Deck: menu entry paths with
$, backticks or backslashes (#1067),~in the free-space line (#1058), rc AppImages keep their own tools (#1039), the folder launcher finds the builder under HOOKSHOT_BUILDER_HOME (#1070),RX_VK_TEX_SKIP_MBfor huge textures on the Deck (#1049),RX_VK_FRAME_LOGframe-pacing CSV (#1050). - Foliage vanishing on sword swings (#957), a data race in the replay (#968), Linux driver crash during pipeline builds caught (#975), shader preparation fixes (#983, #906), screen saver during controller play (#831), audio filter (#669), translator coverage (#827, #842).
- AMD: BC textures get their storage views on AMD's Windows driver (#1052); unsigned storage images translate (#1037); the parallel replay (
RX_VK_PARALLEL, opt-in) is correct now (#1069, #1108). - The Insert menu takes the mouse while it is open: hover, click, drag sliders, scroll (#946, hckrman101).
- A background build thread from #939 no longer races the renderer's uniform updates.
Disk space (you asked for this)
- After a build or update the builder deletes its build files (4-6 GB in
%LOCALAPPDATA%\HookshotBuilder) and the downloaded setup parts. The next game update then translates and compiles again (about as long as a first build). SetHOOKSHOT_KEEP_BUILD_FILES=1to keep them for quick updates. - Builder updates no longer keep ~470 MB of zips: unchanged tools are moved from the installed version instead of downloaded again.
For testers
- Garbled/rainbow textures (#993): not fixed yet. If you see them, please post your
hookshot_log.txt; tryingRX_VK_KEEP_UNFLUSHABLE=1and telling us whether it helps is useful too. - AMD green stripes: try
RX_VK_NO_INVARIANT=1,RX_VK_NO_NAN_GUARD=1orRX_VK_MARKERS_V205=1one at a time (#1006).
Thanks to everyone who sent logs and PRs.