AMD GPU? Get more FPS with one setting
Add to totk.ini next to totk.exe:
[performance]
vk_recorder = 1
Please report your GPU, driver and FPS with 0 and 1 in the comments or an issue, even if it just works: with enough good reports it becomes the default on AMD. Black screen or VK_ERROR_DEVICE_LOST? Set it back to 0 and attach logs\totk.log.
To update, run the new installer on your existing install folder. It keeps your game files, saves and totk.ini, and rebuilds totk.exe and the shaders.
Warning
DLSS and the Linux build are tested by the community. I don't have the hardware to test them myself.
Fixes
- HD texture packs load without any setting (#673). A pack grows the memory for the world's textures in its own
Product.Nin_NX_NVN.HeapDef.byml.zs. The port now reads that file at start and grows the texture heap by the pack's amount, so the game no longer crashes at start or loops the panic Blood Moon. For a pack without such a file, settex_heap_extra_mb(0 to 4096) under[mods]intotk.ini. These packs need a lot of video memory: on a GPU with less than 8 GB, turn on F1 > Compress ASTC to BC3. - An HD texture pack above The Second Quest no longer crashes at start. The port keeps that mod's heap table and adds the pack's growth on top.
- Mods' ExeFS patch files that change game data work. An IPS, IPS32 or pchtxt file that writes into main's data, not only its code, was rejected as a whole. The port now stores those bytes into the game before it starts.
- FPS no longer drops for good after the Purah Pad scope or long play on a GPU with little video memory (#754). Textures the game had released stayed in video memory, so once it ran full every frame paid for it until a restart. The port now frees them when video memory runs short. If you still see the drop, F1 > Compress ASTC to BC3 helps too.
- Fewer crashes from memory the GPU writes (#788, #802). Memory only the GPU wrote to could be locked read-only while the GPU kept writing it. This may be behind the
VK_ERROR_DEVICE_LOST/ "write invalid" crashes on NVIDIA; that is not proven yet, so please report if you still get them. - No stretched HUD at a resolution without its HUD layout. When the HUD layout for a wider or narrower game resolution is missing, the game now draws a 16:9 picture with black bars instead of a stretched HUD.
Performance
Smaller frame time gains, largest in busy scenes and fights:
- Uniform updates inside a render pass no longer end the pass with a full barrier: up to 3.6% shorter frames in scenes with many of them (terrain, the sky islands).
- Recording copies stay off the game threads: about 0.5 ms shorter frames in a fight on 1.4.3.
- The thread that records GPU commands now begins, ends and submits them itself, and its queue no longer makes the game threads wait on shared cache lines.
- A draw binds only the vertex buffers its shader reads.
Other
- Play time (#720). F1 > Game shows how long you have played across all runs, with this run's share. Only time with the game window focused counts.
- The setup's DPI test passes at 125% scaling.
Thanks
Thanks to itaskaev2 for the HD texture pack support and the play time, kurerb for the first texture heap setting, ericdallo for the mods' ExeFS data writes, ApereLieZ for the uniform overlay, ProSep for the HUD bars, Luxury213 for the DPI test fix, and everyone who reported the bugs fixed here.
Full Changelog: v0.3.11...v0.3.12