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
AMD Radeon build - an active call for testers. A separate repository, NeuralScreen-AMD - the same overlay with the neural pass aimed at RX 7000 / 9000 (RDNA3/RDNA4). It has not run on a real Radeon yet. Start with native/AMD.md, and if it does not come up, press Settings -> Program -> Create diagnostic package and attach that one file: log, card, driver, the stage it stopped at, paths already scrubbed.
Three fixes that came straight out of user reports, and one that came out of reading our own logs.
Fixes
Washed-out colours on a 10-bit display, HDR off (#99). A display that can produce a high-colour surface has its capture format pinned to FP16 so it cannot flap - that is the #86 flicker fix, and it works. But with HDR off that FP16 frame carries an ordinary SDR desktop, and the capture shader was tone-mapping it as if it were scRGB, because it keyed on the format alone: white landed at ToSrgb(1/(1+1)) = 0.735 - 187 instead of 255, the "all colors washed out, whites especially become grey" report. The two facts are now separate constants: isFloat (the frame arrived as FP16) and hdr (the picture really is scRGB). Only a real scRGB capture is tone-mapped; FP16-without-HDR keeps SDR white at 255. Covered on WARP with no HDR monitor and no GPU: the same unit-white frame dispatched twice, differing only in the flag - 255 with it, ~187 without.
The panel showed a multiplier that was not running (#100). After a refused x4 the worker steps down to x2 instead of failing; the buttons still showed the pick, so the only way to notice was comparing FPS. The panel now reads the step the presenter really runs and says so - "this card caps at x2; x4 is retried next time" - while the buttons keep your preference, so the next attempt asks for it again.
A minimised foreign window opened our menu (#96). Windows activates our 1x1 taskbar window as a fallback when the previous foreground window is minimised, and that activation arrives as the same message a real click on our button does. The window now distinguishes them by the state before the event plus the minimised window in the message, so only an actual click opens the menu.
The z-order guard saw no window on a left-hand monitor (#89). The 30-frame guard tested each window's rect against the PRIMARY screen, so on a monitor to the left of the primary - where every window has a negative x - a full-screen window was rejected as "cannot cover". The HUD was then never re-asserted and the panel stayed under the picture while the screenshot still baked it in. The rule now intersects the virtual desktop, so a window on any monitor counts.
Every NGX failure code is named now. The worker printed ? for results it did not cover, and two of them reached user logs: 0xBAD0000C is FAIL_OutOfDate (the header's literals are decimal, so Fail | 12 is 0x0C) - an older driver, which was the answer to a report that showed only ?. The requirements line prints the name beside the hex.
Tests
Seven test files in this package, each proven by mutation (the test fails when the thing it names is broken): the NGX result names (9 mutations caught), the FG step-down (8), the taskbar activation discriminator (4), the virtual-desktop z-order rule (3), and the SDR-FP16 white case on WARP (3).
Suite: 171 checks, 168 PASS / 0 FAIL / 3 SKIP, GUI-E2E 9/9. The three SKIPs are opt-in tests that need a live GPU run.