mirror of
https://github.com/tangerineturtle1/NX2navi.git
synced 2026-11-15 19:19:58 -04:00
Put back a profile a run that did not close left in RivaTuner Statistics Server, also at a start that keeps RTSS out.
The review found that the worker read rtss-profile.txt only on its first poll with the hooks library, which it loads only for a limit, so a start with frame generation on, with the driver's low latency on from the first present, or with NX2NAVI_RTSS=0 never put back a killed run's limit: RTSS then went on limiting the game at that value (counting the generated frames too under frame generation), and the log and the menu reported it as the player's own limit beside the game's limiter. rtss_limit.c worker now looks at the state file on its first poll that finds RTSS running (left_start): a limit puts the profile back with the library it loads anyway, as before; frame generation and low latency load the library for that one restore (restore_left, which now takes the line found); NX2NAVI_RTSS=0 keeps the thread read-only and logs that the file holds the game's limit from a run that did not close and that a start with RTSS let in puts it back. A restore the library could not be loaded for waits for the first poll with the library. tests/rtss_worker_check.c adds kill_restart_framegen (the next start asks frame generation first: the profile is removed, no limit written, the line gone) and kill_restart_setting (NX2NAVI_RTSS=0: no library loaded, the profile and the line stay, the log says so). The rtss_limit.c header, docs/architecture.md, docs/building.md and nx2navi.ini.example say so, and the ini text no longer says the game alone paces movies under RTSS. Not reproduced before the change. Checks that passed: tests/rtss_limit_check.py (40 of 40), pass_cc_check.py --wall on rtss_limit.c, tools/check_content.py --staged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -497,8 +497,8 @@ its rewrite and what a start does with a line a run that did not close left. Sta
|
||||
`rtss_limit.c` against a fake RTSS (its registry key, hooks library, profile files and shared memory) and runs each
|
||||
scenario in a process of its own, among them a want after the exit's restore and one the worker read before it, a
|
||||
worker polling without pause while the want switches, the registry and file calls a present must not make, and a run
|
||||
killed while RTSS held its limit followed by the next start, each in a process of its own. No GPU, no RTSS, no game
|
||||
files.
|
||||
killed while RTSS held its limit followed by the next start, each in a process of its own (a next start with a limit,
|
||||
with frame generation on and with `NX2NAVI_RTSS=0`). No GPU, no RTSS, no game files.
|
||||
|
||||
A change to how the mixer applies volumes (`runtime/audio_mixer.c` `accumulate_ramp`, the voice and splitter paths
|
||||
of `audio_mixer_render`) or to what it owes the device after a stall (`ring_pull`, `audio_mixer_owed`) passes
|
||||
|
||||
Reference in New Issue
Block a user