Repository navigation
MPCVR-DLSS5-v1.2
MPC Video Renderer with DLSS 5 Neural Rendering — 1.2
Changes since 1.1.
New
- Three network upscalers for the luma: FSRCNNX 8, FSRCNNX 16 and RAVU-zoom. They sit at the
end of the main page's Upscaling list and enlarge the picture the way mpv's prescalers do.
They are ordinary Direct3D 11 shaders: no NVIDIA DLL, no RTX card, and they work in the
32-bit filter as well — any GPU at feature level 11.0, AMD and Intel included.-
What they are worth, on seven 4K film frames reduced and enlarged again, as PSNR on the most
detailed quarter of the picture, against Catmull-Rom:Method 1080p→4K 720p→4K 1080p→4K, compressed FSRCNNX 16 +1.80 dB +2.65 dB −0.33 dB FSRCNNX 8 +1.33 dB +2.36 dB −0.42 dB RAVU-zoom +1.26 dB +1.68 dB −0.02 dB Jinc2m −4.87 dB −1.65 dB −2.21 dB They restore edges close to the original's sharpness (0.96 to 0.97, where the original is 1.00
and Catmull-Rom 0.90) without the halos and the aliasing Jinc2m adds at 1.13. -
Cost on the luma, 1080p to 4K on an RTX 3050: RAVU-zoom 2.8 ms, FSRCNNX 8 4.6 ms,
FSRCNNX 16 16.6 ms. Render ahead (below) keeps them on the audio clock. -
The colour still comes from Catmull-Rom, which also covers the scale the networks leave and
stands in wherever they cannot run — below 1.3×, on Direct3D 9, on older hardware, and while
DLSS Super Resolution is enlarging the picture.
-
- RAVU-zoom for the chroma. A fourth entry in Chroma upsampling brings Cb and Cr to the
luma size with the same shader, each plane on its own and placed where the video's chroma siting
puts it. On film none of the network methods beats Catmull-Rom on chroma — RAVU-zoom is about a
decibel under it and a little better only on colour edges — so Catmull-Rom stays the default and
this entry is there to be judged by eye. It runs on 4:2:0 through the shader video processor. - Defaults changed for a fresh installation: Upscaling is Jinc2m and Chroma upsampling
Catmull-Rom. Settings already saved in the registry are left alone. - Render ahead covers the new upscalers too, and moved: it is now
Render ahead to keep audio sync, at the bottom right of the Settings page, where the
32-bit filter reaches it as well. Its saved value is kept. - The DLSS 5 page is now the DLSS page.
- The lists say what they are for. Chroma upsampling, Upscaling and Downscaling are greyed when
the hardware video processor leaves them nothing to do — it converts the formats ticked under
Use for:, chroma included, and resizes too when Use for resizing is on. The greying follows
what the renderer is really doing with the picture being played, so a file that falls back to the
shaders (Dolby Vision, YCgCo, RGB on Nvidia) keeps its lists live. - Statistics (Ctrl+J): the processor line says
converts chromawhen the hardware video
processor does the chroma itself, which is why no chroma upsampler is listed next to it; the
Prescale (ms) line shows what the new upscalers cost.
Fixed
- The statistics box no longer runs out of room. It was sized once, when the font was created,
so the lines that come and go — DLSS, prescalers — ran past the grey background, and the green
scrolling marker sat on the last line. The box now follows the text in both directions, marker
included. - Upscaling stayed greyed after DLSS Super Resolution was switched off on the other page, until
the properties window was closed. Both pages now follow each other while they are open.
For developers
dlssnr_harness.exe --tchromameasures the chroma upsamplers, and--tmpvportchecks the
filter's prescaler runner against the harness's, chroma siting included.playback_test.exe --scalers [--vp]plays a still picture through each Upscaling and Chroma
upsampling method and compares the results;--mainpage,--dlsspageand--click <id>show a
property page of the built filter and capture it, which is how the greying is checked.Shaders/mpv/mpv_shaders.pytranslates mpv user shaders to HLSL offline, through glslang and
SPIRV-Cross — the route libplacebo itself takes on Direct3D 11.
All of it is described in README-DLSS5.md.
Requirements
- The new upscalers: Direct3D 11 at feature level 11.0. Nothing else — no NVIDIA card, no DLL.
- DLSS 5 NR and DLSS Super Resolution: an NVIDIA RTX GPU with a recent driver, Windows 10 1703 or
later, and x64. They neednvngx_dlssnr.dllandnvngx_dlss.dll. Neither is included: they
are NVIDIA's property and cannot be redistributed.
Upgrading from 1.1
- Close the player.
- Replace the files with the ones in this archive, keeping the
dlssfolder next to
MpcVideoRenderer64.ax. - Run
Install_MPCVR_64.cmdagain as administrator.
Your settings are kept, including render ahead, which changed page but not registry key.
New installation
- Close the player and extract the archive to a permanent folder. Keep the
dlssfolder next to
MpcVideoRenderer64.ax: it holds a smallnvngx.dllthe filter needs. - For DLSS, put
nvngx_dlssnr.dllnext toMpcVideoRenderer64.axor in itsdlssfolder, or set
its path on the DLSS page. Do the same withnvngx_dlss.dllfor DLSS SR. The new upscalers need
neither. - Run
Install_MPCVR_64.cmdas administrator. - Select MPC Video Renderer as the player's video renderer and open its properties. The upscalers
are at the end of the Upscaling list on the Settings page; DLSS 5 NR is on the DLSS page,
where Enable turns it on and F12 toggles it during playback.
See README-DLSS5.md for how it works, every setting and the measurements.