mirror of
https://github.com/tangerineturtle1/NX2navi.git
synced 2026-11-15 19:19:58 -04:00
With Helpers take small jobs on (replay_small, with replay_pipe) the whole scene flashed for single frames under DLSS, with the interface intact. The pass hooks keep what the last pass that ran them left: the upscaler's light target is the one of the last scene pass before the output pass. A group's hooks run in its first chunk, and a pass that chunk began again (after a barrier, or a texture lookup that waited for its turn) ran them a second time. With the submitting thread already past the group, that came after the hooks of later passes and put the group's own target back, so the upscaler took an earlier image of the frame for that frame. The log showed it: the light target changed to another image and back at each flash. The rule is in runtime/vk_pass_hooks.h, with tests/pass_hooks_check, which fails against the old rule. Measured by replaying a bug capture in Kakariko (DLSS Performance, 3 workers, replay_pipe = 4, replay_small = 16, 100 s a run): 51 and 52 flash frames as installed, none with replay_small = 0, none with the helpers off, 52 with the render target reuse off. Two copies of the installed build made the same way, one with this change and one without: no flash frame in two runs with it, 373 in one run without. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>