github perseval-BLR/NeuralScreen v2.1.8
v2.1.8 - Both tracker tickets: the screenshot dialog, and a hotkey master switch

3 hours ago

Notice. Not affiliated with NVIDIA; NVIDIA, DLSS and the NVIDIA logo are NVIDIA Corporation's trademarks. The bundled NVIDIA runtimes are NVIDIA's property, included unmodified as received, research/educational use only, no warranty, use at your own risk.

Warning

NeuralScreen requires the latest NVIDIA driver. Operation with older drivers or unsupported/non-standard configurations is not guaranteed.

Important

Radeon testers wanted. The AMD build lives in a separate repository, NeuralScreen-AMD, and it has not run on a real Radeon yet. Start from native/AMD.md there, and if it does not come up, attach the diagnostic package (Settings -> Program -> Create diagnostic package).

A patch on the v2.1 line: both open tracker tickets, the last native item from the v2.1.6 review, and the bench's own C++ toolchain.

The screenshot dialog opens while NR is off (#135)

With NR off and the panel closed, the program hides its window and sleeps - and the only call that took messages off that window's queue lived inside the menu branch, so nothing pumped it. Windows marked the window Not Responding, and the Save As dialog is OWNED by that very window, so opening it stalled. The reporter's log opened the dialog at 18:36:23.545 and recorded the answer at 18:37:22.643 - 59193 ms later, the only event in between being overlay menu opened, which is what started pumping again. Measured here: NR ON with the menu open answered in 2 ms; NR OFF with the menu closed did not answer at all and no dialog appeared in 100 s.

It also explains the second half of the report - the panel showing in the saved file "though it did not do that before": the file is written when the dialog is ANSWERED, so it carried the menu as it looked 59 seconds later.

Hotkeys: a master switch, and a command you can take off the keyboard (#134)

The numpad keys NeuralScreen binds belong to it while it runs - that is what RegisterHotKey does - and people lose them in games that use the numpad, in Blender, in a calculator. The menu could give the keyboard back for a moment, but never for good, and nothing survived a restart.

Settings -> Keys now has a master switch above the keys it governs. Off releases every binding, stays off across restarts, and is not undone by the menu closing - which used to put the keys straight back on. The shipped default is on, so an existing config.json keeps its hotkeys.

The other half, "keep only the hotkeys you actually need": a key could be REPLACED but never removed - an empty or unparsable value was ignored and the default stayed. A field now clears with Backspace or Delete (none in config.json), the row reads "none" in words, and the freed combination goes back to every other program. An unparsable value still means "leave it alone", so a hand-written config cannot mute a hotkey by accident.

The picture comes back after a resize with the frame that was just presented

When the output's size stops matching the overlay's, the overlay is hidden - right, it would otherwise show a stale-sized picture. It used to be shown again from inside the size check itself, which runs BEFORE that frame is presented: for one refresh the screen held the frame from before the mismatch, at the new size, with the sizes already matching. The decision stays where the sizes are known; the show now happens after that frame's Present.

Found while checking the review's other native item, the two-second waits while the overlay is hidden - it did not reproduce, and no change was made against it. With FG on at 4x and the overlay really hidden, the presenter's own two-second report, taken entirely inside the hidden state, showed 184 generated frames, zero waitable timeouts and a mean wait of 0.02 ms: the compositor keeps retiring presents for a hidden window.

The bench could not build the worker at all

Every native\build-*.bat failed with "Visual Studio C++ build tools not found via vswhere" while a complete MSVC sat in Program Files: vswhere hides prerelease installs unless asked, and the only C++ toolset here is Visual Studio 18 Insiders. Then MSVC 14.51 turned an SDK header into a hard error (STL1011).

Four checks compile the worker's own source with a generated command line, and all four carried the same stale assumption. One of them, test_capture_deep_scanout, had been reporting OK while skipping its compile entirely - an empty vswhere answer raises no exception, so its guard caught nothing. Fixing the toolchain made it compile, and then fail.

Tests

New, each failing on the code before its fix: test_idle_overlay_pumps, test_hotkeys_master_switch, test_hotkey_unbind, plus a re-show-after-resize block in test_worker_zorder_and_safety.

Suite: 226 pass, 0 fail, 6 skipped, GUI end-to-end cycle green.

Thanks to Saymoin and Koaxz, whose reports are what #135 and #134 were fixed from.

Don't miss a new NeuralScreen release

NewReleases is sending notifications on new releases.