vulkan: add an opt-in linear movie upscale #358

Merged
monsterlag merged 1 commit from fix/movie-linear-upscale into main 2026-11-07 23:04:03 +00:00
monsterlag commented 2026-11-07 22:12:25 +00:00 (Migrated from github.com)

The movie neural upscale can bottleneck playback before the existing 40 ms automatic fallback is reached, as reported in #336. Add RX_VK_MOVIE_UPSCALE=linear so players can select the existing linear movie path at startup through hookshot_env.txt.

Automatic behavior and its 40 ms threshold stay intact. Gameplay TAAU remains excluded, and RX_VK_NETWORK_KEEP=all takes precedence. The setting is sampled on first dispatch after the host loads the environment file. A once-per-process message confirms successful use of the linear compute path. Linear movie images may look softer.

Validation:

  • The focused game-free policy regression passes with bundled Clang, covering default/invalid values, the manual option, automatic fallback and gameplay/keep-all exclusions.
  • A matching Windows host/renderer build completed with zero failures; source hashes matched before and after.
  • RTX 5090 playback checks used the same binaries, frame generation off, no FPS override and separate empty profiles. After the default run, its caches were retained. Setting the option only through hookshot_env.txt selected the linear compute path; the default run did not.
  • Both runs progressed through the story images at 60 FPS without persistent black screens or obvious corruption and closed normally. Main-movie timestamp/wall-time slopes were 1.00012 (default) and 1.00003 (linear); maximum logged offsets were 0.06 s and 0.02 s.

This addresses the manual-switch part of #336. Automatic-threshold tuning, RTX 3050 Ti/AMD/Intel/Linux runtime validation, physical audio, precise image quality and forced-mode gameplay progression remain open. The playback checks establish path selection and basic correctness on this PC; they do not establish laptop performance gains.

The movie neural upscale can bottleneck playback before the existing 40 ms automatic fallback is reached, as reported in [#336](https://git.magicbean.dev/MagicBeanDev/Hookshot/issues/336). Add `RX_VK_MOVIE_UPSCALE=linear` so players can select the existing linear movie path at startup through `hookshot_env.txt`. Automatic behavior and its 40 ms threshold stay intact. Gameplay TAAU remains excluded, and `RX_VK_NETWORK_KEEP=all` takes precedence. The setting is sampled on first dispatch after the host loads the environment file. A once-per-process message confirms successful use of the linear compute path. Linear movie images may look softer. Validation: - The focused game-free policy regression passes with bundled Clang, covering default/invalid values, the manual option, automatic fallback and gameplay/keep-all exclusions. - A matching Windows host/renderer build completed with zero failures; source hashes matched before and after. - RTX 5090 playback checks used the same binaries, frame generation off, no FPS override and separate empty profiles. After the default run, its caches were retained. Setting the option only through `hookshot_env.txt` selected the linear compute path; the default run did not. - Both runs progressed through the story images at 60 FPS without persistent black screens or obvious corruption and closed normally. Main-movie timestamp/wall-time slopes were 1.00012 (default) and 1.00003 (linear); maximum logged offsets were 0.06 s and 0.02 s. This addresses the manual-switch part of #336. Automatic-threshold tuning, RTX 3050 Ti/AMD/Intel/Linux runtime validation, physical audio, precise image quality and forced-mode gameplay progression remain open. The playback checks establish path selection and basic correctness on this PC; they do not establish laptop performance gains.
shayderrr commented 2026-11-07 23:03:56 +00:00 (Migrated from github.com)

Thanks!

Thanks!
Commenting is not possible because the repository is archived.
No description provided.