v0.10.2 — Smoother Story scenes
Story cutscenes on macOS and the Steam Deck no longer stutter the first time an effect
appears, and on macOS the random short freezes during scenes are gone. The changes come
from a performance pass over all 38 Story scenes on a Mac and a Steam Deck
(Mac report,
Deck report).
Changes
- Shader cache (macOS and Linux, including the Steam Deck). Compiled shaders and the
graphics driver's pipeline cache are now kept incache/vulkanin the data folder, so
an effect's shader is compiled once, not once per launch. Each distinct shader is also
compiled only once per run: the opening scene used to compile the same 29 shaders 188
times. On the Mac the opening scene's late frames fell from 2.8% to 0.1-0.2%; on the
Deck, hitches across the 38 scenes fell from 22 to 8, and short scene loads went from
about 300 ms to about 100 ms. Deleting the folder is safe (it is rebuilt);
RECOMP_SHADER_CACHE=offruns without it. - macOS: random freezes in Story scenes fixed. Scenes froze for 100-300 ms about once
every two minutes, worse when the Mac was busy, because the thread that turns the game's
drawing into frames was starved by the scheduler. It now runs at the same priority as
other interactive work. On a loaded Mac late frames fell from 6-7% to 0.02% and hitches
from 9 to 0. Linux and Windows were not affected and are unchanged. - Launcher and overlay tooltips wrap. Long help texts (the Play scene button's, and
the longer setting descriptions) ran off the right edge of the window and lost their
ends. - For developers.
scripts/scene-perf.pyplays every Story scene with the play-test
recorder and writes one table of load times, frame pacing, hitches and audio
drop-outs;compareputs two machines or builds side by side.
RECOMP_HITCH_PROBE=1records which thread held the game's CPU during a late frame.
Contact sheets of widescreen runs keep their shape.
Validation
- macOS (Apple Silicon): all 38 Story scenes play and end with no crash or log fault.
Full regression on the shader cache: 16 of 17. The one failure is the existing
intermittent audio-queue gate: one dry event incombat, against three in v0.10.1, with
no threshold change. Full regression with the freeze fix added: 16 of 17, the failure a
scripted overlay click that passed on three re-runs. Quick regression on this release's
source: 5 of 5 (507 unit tests, the three golden frames, a fight). - Steam Deck OLED: the 38-scene tour three times (before the cache, cache cold, cache
warm) and a retest by render scale and refresh rate, on the shader-cache build. The
macOS freeze fix does not apply to Linux, so the Deck did not run this exact build. - Hosted CI builds and tests Windows (MSVC), macOS and Linux.
- Windows was not play-tested. Its renderer (Direct3D 11) is unchanged; the only change a
Windows player sees is the wrapped tooltips.
Known limits
- Steam Deck: keep render scale 2 (the default). At render scale 3 the late frames in
the heaviest scenes double. Even at 2, some scenes drop frames in their heaviest shots
(the opening scene about 11%). The Deck OLED's 90 Hz panel runs the game without vsync. - Scene loads still hold the picture for up to about 2 s in the longest scenes.
- Windows still compiles each shader the first time it is used in every launch; a cache
for Direct3D 11 is planned. - The existing intermittent audio-queue limitation remains.
Updating
Run the setup for your platform and update the existing installation. Setup builds the
game locally from your own dump and preserves player data. The first launch after
updating fills the shader cache; later launches use it.