HDR is experimental and it is OFF. Nothing changes until you turn it on:
Num2 → the gear → CAPTURE → HDR compatibility. Everything else in this
release is the same program you had yesterday.
What the switch does
Until now an HDR desktop was captured as SDR, and the result read as
"everything is too bright and the sliders do nothing" - the commonest bad
report this program gets. With the switch on, the screen is duplicated in
FP16 scRGB instead of 8-bit, the network is handed a tone-mapped SDR copy,
and its edit is returned to the original signal as a bounded linear residual -
the same shape as the Boost composite, in HDR scale. Highlights above white
and the negative values wide-gamut colour uses survive, and a zero edit
reproduces the original exactly. Presentation switches the swap chain to
scRGB.
This is not native HDR inference: the neural runtime still works on an SDR
proxy. The details, the arithmetic and the limits are in
docs/HDR.md.
Contributed by @saffd96 in #36 - the capture, the shaders, the
presentation and a WARP test for all of it. He also split a 46-file branch
into this one when asked to, which is more than most people would do.
What it does not do. Screenshots, recording and the Spout output stay
tone-mapped 8-bit SDR - they carry the processed proxy, not an HDR copy of
the screen. Windows HDR has to be on as well. If FP16 duplication is refused
(no IDXGIOutput5, or the driver says no) the capture falls back to SDR
rather than failing, and the log says which of the two happened.
Why it is off. It changes the capture format, the swap chain format and
the colour space of the presentation. Each of those is a way for the picture
to disappear on hardware that cannot be tested here. On an SDR display the
switch changes nothing that can be measured: the pixel-exact tests pass with
it forced on, and three timed runs at 4K came back 20.9 / 20.9 / 20.7 frames
against 20.0 / 21.0 / 20.9 without it.
Three places in the contribution were hardened before it went in: the SDR
present could be refused over a colour-space call this program has never made
(the picture would simply not appear), an HDR desktop without IDXGIOutput5
lost its capture entirely instead of falling back, and the HDR pipeline
released its resources twice on a size change.
One line under a control, not a paragraph
The settings page had grown explanations - three lines under the Spout2
switch, two under four more controls. Fourteen controls with paragraphs under
them stop reading as a list of options; the page becomes a document. Every
hint is one line now, in all twelve languages, and the panel is 1980 px tall
instead of 2115. Anything that needed a paragraph has one in the README.
The four documentation images are regenerated to match.
Tests
99 checks, 100 with this release's additions:
- the HDR shaders now run in the suite.
hdr_gpu.cpptakes the two
shaders the worker actually compiles and runs them on WARP - no HDR
monitor, no NVIDIA runtime - checking highlights, signed gamut, bit-exact
zero edit, bypass, the wipe and the SDR export. It was a batch file nobody
ran. - the hardware HDR test runs itself. With no argument it used to print
SKIP and exit 0, which is a green tick for nothing. It now asks Windows
whether the display is in HDR and takes the test when it is. Verified here
on an RTX 5070 Ti at 4K with HDR on: WGC and DDA, capture and presentation
in FP16, and a byte-exact SDR frame after switching back. - every hint is measured with the real faces at the real row widths in
twelve languages - the menu truncates a hint, silently, and nothing wraps. - the capture-visibility check identified its marker by the colour it
painted; on an HDR desktop the compositor returns a different one, and the
test failed for a reason that had nothing to do with its subject. - the freshness check now watches every source the worker is built from, not
only the.cpp.
Files
neuralscreen-v1.8.0-full.zip- everything inside, unpack and runREADME.md/README.ru.md- the guideTECHNICAL.md/TECHNICAL.ru.md- how it works
Controls
Num2 menu · Num1 NR on/off · Num3 screenshot · Num0 record · Num4/Num6 resolution · Num5 one window · Ctrl+Alt+Q quit