v2.1.0 - cheaper and smarter
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).
Cheaper and smarter: a neural pass can now differ from pass to pass, the recording runs on the GPU, and files can be converted from a new tab.
What is new
The second pass can run its own settings. The cascade has repeated the same pass up to four times since v2.0.0 - the same values on every one, which made it expensive rather than useful. Passes 2 and later now take their own set of parameters from a switch under NR passes, and the set survives a launch, a resize and a restart. Pass 1 keeps following the profile, so turning it on does not change the picture you already tuned. The second pass still costs about a third of the frame rate: a tool for a deliberate look, not a free win.
Recording moved to the GPU. Num0 now encodes on the graphics card (NVENC) at 60 fps with sound by default, so recording no longer costs frame rate. It records the frame the worker presents and nothing else: the panel, its menu and the desktop around the picture stay out of the file, and a recording an error cuts short is still kept. Turning Record on the GPU off returns to the older CPU path, which is also the automatic fallback.
Files can be converted. A new Media tab converts a video or an image with the settings the sliders are set to - the same look the desktop gets - as a queue with progress, stop and retry, drag and drop, and a choice of output folder, codec, quality and audio. It does not need the overlay to be on.
The client is off the critical path. The worker used to answer a frame only after presenting it; it now answers as soon as the frame is queued, and the client's own work runs in that window. Measured by a contributor off-screen at 2560x1440 on an RTX 5080, with the client's per-frame work simulated at the 1.6 ms a user's log shows: 147.7 FPS against 119.6 lockstep, +23.6%, picture unchanged (Boost workloads gain 3.9%, already at the refresh). NS_EARLY_REPLY=0 turns it off. It applies only on the plain present path - Frame Generation, HDR, screenshots and CPU recording keep the old timing, nothing is reordered, and a dead worker still shows as a missing answer.
What was fixed
The Boost switch stopped responding while an apply was queued. Toggling Boost asks the worker to rebuild, which takes a moment; a second press in that window was dropped, so the switch looked dead. It now keeps toggling and the last press wins.
Changing monitor kept the old window target, and the pointer jumped. A monitor switch rebuilds the pipeline for the new monitor's size but never cleared the window being captured - only leaving window mode did - so the program held a stale handle and asked for two sources in one session. It clears it now, with a line in the log. The same pass stopped moving the pointer when it did not have to move, which is what made the cursor jump.
GPU recordings ran ahead of their own sound. Each frame was handed to the encoder with a zero duration, so the video track drifted ahead of the audio over a long recording. A frame now lasts until the next one.
A change at 1:1 with Boost on rebuilt the feature for nothing. With the cascade pinned to the source size, a parameter change threw away a working feature and rebuilt it. It no longer does. Passes also sized the work even when Boost was off, and the worker said only that something was missing instead of naming Boost.
Tests
The full suite before tagging: 214 checks, 211 PASS, 0 FAIL, 3 SKIP in 442 s. The GUI group closed 9/9, and the smoke launch reached 102.3 FPS at 101 frames. All three skips are opt-in checks that need a flag or HDR hardware, not failures. The GUI cycle recorded 296 frames over 4.9 s and the worker encoded 295 of them, with a clean exit and no processes left.
Thirteen test files are new with this release, each new check proven by mutation: the per-pass set reaching the worker, the wire-message numbers being unique (two branches on one number silently shadow each other - the defect behind this release's hardest bug), the conversion page and its queue, the GPU recorder with its fallback and audio, the early reply, and the Boost switch that no longer drops presses.