mpv icon indicating copy to clipboard operation
mpv copied to clipboard

Support for Nvidia Smooth Motion on Windows 11

Open XSpark0 opened this issue 1 month ago • 10 comments

Expected behavior of the wanted feature

So i can simply enable it by typing nvsmoothmotion=yes in mpv.conf allowing MPV to directly utilize the Nvidia Smooth Motion feature in the Nvidia driver without having to globally enable Nvidia Smooth Motion so i can finally have judder/stutter free panning of 23.976 fps videos, probably. Currently Nvidia Smooth Motion doesn't work even if i globally enable it in the Nvidia App since MPV has no support for it yet. Adding MPV in "Nvidia App > Graphics > Add a program" doesn't work either.

I have basic G-Sync Compatible Monitor LG 24GS65F 180 Hz which probably doesn't have LFC (Low Framerate Compensation).

I have tried MPV's built-in video-sync, interpolation, tscale, override-display-fps, etc. and it simply didn't work no matter what i did and it caused even more judders/stutters during panning scenes and lot of dropped frames in all videos with any guide i followed, no dropped frames when i go back to not using video-sync and interpolation. Obvious since MPV's built-in features doesn't properly or natively support G-Sync and Free-Sync Monitors yet or very high hz monitors in general.

Alternative behavior of the wanted feature

No response

Log File

No response

Sample Files

No response

XSpark0 avatar Dec 16 '25 21:12 XSpark0

Obvious since MPV's built-in features doesn't properly or natively support G-Sync and Free-Sync Monitors yet or very high fps monitors in general.

There's no "yet", you're just not supposed to use display-resample with variable refresh rate panels, because the two mechanisms try to do the same thing but from opposite ends of the equation.

or very high fps monitors in general.

Use fewer cargo culted meme shaders.

CounterPillow avatar Dec 16 '25 21:12 CounterPillow

Works fine on Linux Vulkan if you set the appropriate environment variables before running mpv. I don't know if they provide equivalent Vulkan layers on windows.

philipl avatar Dec 16 '25 23:12 philipl

https://github.com/hooke007/mpv_PlayKit/discussions/607#discussioncomment-13940247

HedioKojima avatar Dec 17 '25 08:12 HedioKojima

hooke007/mpv_PlayKit#607 (comment)

It finally works!!!

Added gpu-context=winvk and video-sync=audio to mpv.conf Added mpv.exe to Nvidia App > Graphics > Add a program. Enabled Smooth Motion.

No more judder/stutter during panning scenes. Awesome!

Wish it worked with gpu-context=d3d11 too since MPV starts slightly slower with gpu-context=winvk.

Also i am using vo=gpu-next gpu-api=auto and hwdec=auto

XSpark0 avatar Dec 17 '25 12:12 XSpark0

hooke007/mpv_PlayKit#607 (comment)

It finally works!!!

Added gpu-context=winvk and video-sync=audio to mpv.conf Added mpv.exe to Nvidia App > Graphics > Add a program. Enabled Smooth Motion.

No more judder/stutter during panning scenes. Awesome!

Wish it worked with gpu-context=d3d11 too since MPV starts slightly slower with gpu-context=winvk.

Also i am using vo=gpu-next gpu-api=auto and hwdec=auto

Following these instructions I finally got it working. But the winvk context messes up inverse tonemapping. Transfer stays as SRGB and won't change to gamma2.2 with target-trc or the new SRGB transfer commands. Black levels are too dark. ... OK need to set target-colorspace-hint=target then target-trc=gamma2.2 works for inverse tonemapping. However Terminal says that the command is wrong. So if I leave target-colorspace at default (which the manual says is "target") it should work, but it doesn't.

Nvidia Smooth Motion is pretty smooth but can cause some fast motion artifacts that LSFG3.1 when set correctly does not.

netExtra avatar Dec 17 '25 14:12 netExtra

Noticed those occasional fast motion artifacts while watching videos too. Subtitles can also get weird while changing. Nvidia will need to fix that issue with their Smooth Motion.

XSpark0 avatar Dec 17 '25 16:12 XSpark0

@netExtra wrote:

OK need to set target-colorspace-hint=target then target-trc=gamma2.2 works for inverse tonemapping. However Terminal says that the command is wrong. So if I leave target-colorspace at default (which the manual says is "target") it should work, but it doesn't.

Set everything else to default and then just use:

target-colorspace-hint-strict=no target-trc=gamma2.2

Raza-0007 avatar Dec 17 '25 19:12 Raza-0007

@XSpark0 wrote:

No more judder/stutter during panning scenes. Awesome!

Keep in mind that sometimes judder and stutter is baked in during a poor encoding process and cannot be completely removed using interpolation/smooth motion techniques. I downloaded an anime show from a user and it had stutter in panning scenes. The same show downloaded from another user did not have that stutter. This was just with mpv's display-resample and default interpolation.

Raza-0007 avatar Dec 17 '25 19:12 Raza-0007

I still would like to see option to add nvsmoothmotion=yes in mpv.conf which will be pre-configured to get nvidia smooth motion working perfectly in one step and doesn't require adding mpv.exe to nvidia app.

XSpark0 avatar Dec 18 '25 12:12 XSpark0

I still would like to see option to add nvsmoothmotion=yes in mpv.conf

Ask CEO NVIDIA uncle Huang Jen-Hsun (Jensen Huang) to send his engineer. LMAO

YukiNeeSan avatar Dec 18 '25 20:12 YukiNeeSan

It broke. Turning On Smooth Motion now causes flickering. This started happening after Nvidia App updated itself and Windows 11 updated to KB5074109. Smooth Motion flickering issue only happens in MPV. It doesn't happen in MPC-BE.

XSpark0 avatar Jan 14 '26 15:01 XSpark0