An urgent performance update: higher frame rates and an even frame time.
- Much smoother: far fewer hitches when new parts of the world come into view; long frames are several times rarer.
- Faster: roughly 35-40 % less GPU time per frame and roughly 40 % less CPU time spent recording the GPU's commands; the game's own code runs faster too.
- Lighter on the CPU: fewer recording threads, so they no longer take cores from the game itself.
- Steam Deck: higher frame rate and a much more even frame time. About a third less GPU time per frame, and the long hitches around busy places such as Lookout Landing are mostly gone.
- Fixes: rare thread stalls, and terrain textures on slopes that crawled when the camera moved.
This is a big update: the game is rebuilt almost from the start, about 30-40 minutes. Update when you are ready to wait that long; saves stay. Accept it in the launcher, or by hand: extract the new zip over your game folder (Steam Deck / Linux: replace UltraTears.AppImage; copied over from Windows, turn on Allow executing file as program in its Properties, Permissions tab, in Desktop Mode), start the launcher and click Update the game.
Known issues: busy places like Lookout Landing are still limited by the CPU; rare flickering circles near Link.
Downloads
| File
| For
|
UltraTears-0.3.1-windows-x86_64.zip (~150 MB)
| Windows; it can also build the game for a Steam Deck
|
UltraTears.AppImage (~210 MB)
| Linux and the Steam Deck
|
Follow the README to install.
Full list of changes
A faster and much smoother game
This release is about speed and an even frame time, on the PC and on the Steam Deck alike.
- Far fewer render passes and less GPU work. The game updates uniform buffers hundreds of times a frame in the middle of drawing; each update used to end the render pass, wait for all earlier GPU work and start the pass again. These updates now stay inside the pass: about two thirds fewer render passes and half the barriers, and roughly 35-40 % less GPU time per frame.
- Recording the GPU's commands takes much less CPU time (roughly 40 % less): textures and buffers are bound in two sets and a draw's textures are not looked up again when they did not change, unchanged state is not recorded again, and fewer recording threads run, so they no longer take cores from the game itself (on a 16-thread CPU 4 instead of 8).
- The game's own code runs faster: a few of its hottest functions, with jump tables the translator could not resolve, were built without optimisation; they are optimised now, with the slow path in a copy of their own.
- Far fewer hitches when new parts of the world come into view. Several stalls happened on every burst of new textures: memory for uploads was given back to the driver and allocated again seconds later, every texture had a video memory allocation of its own, and new images and texture uploads held a lock that every other recording thread waited for. Upload memory is now kept for reuse, textures share large memory blocks, and images are made and textures prepared outside those locks. Frames over 60 ms dropped several times over.
Steam Deck
- Higher frame rate and a much more even frame time. The GPU time per frame fell by about a third, so the Deck is no longer held back by its GPU in busy places such as Lookout Landing, and the long hitches when running in and out of such places (up to a second when many new textures arrived at once) are mostly gone.
- On the Deck's four cores, the fewer recording threads leave more of the CPU to the game.
Fixes
- Waiting on several objects: a pending cancel is now kept for the next wait that would block, and a signal that wakes all waiters changes the value as the console does. Both could stall game threads in rare cases.
- Shader translator: the gradients of texture lookups with explicit derivatives are read per coordinate, so terrain on slopes picks the right mip level instead of a too sharp one that crawled when the camera moved.
For testers
- The log's "long submission" line now says where a long frame's recording went (waiting for the GPU, new images, uploads, memory made, the uniform snapshot), and the frame interval line counts frames over 25 ms.
Known issues
- Busy places such as Lookout Landing are still limited by the CPU, the game's own work and the recording of the GPU's commands; the next versions keep working on it.
- Rarely, white or red circles flicker at some distance from Link; not understood yet.
UltraTears is not affiliated with or endorsed by Nintendo. You need your own legally obtained copy of the game.