narkohol wrote:

I just get this error when playing the next file in the playlist

Thanks, I managed to reproduce it: a playlist of 1080p, 720p and 540p files crashed SVP's mpv with the same nvcuda64.dll error. It was a bug in my vstrt_rtx.dll, which released its cached engines in the wrong order once a third video size came along.

Fixed in trt-rtx-svp-2026-10-04.zip in the same Drive folder. Coming from the 09-24 archive, only SVP 4\rife\vstrt_rtx.dll needs replacing (close SVP and the player first).

If it still crashes, tell me your player and the resolutions of the files.

Drakko01 wrote:

Any tips, scripts, or guidance would be highly appreciated.

Best tip I can give: any of the top models on artificialanalysis.ai, with a $20 subscription, can run tests like this with you. They'd probably reach the same conclusion mine did:

SVP can't run R81 as is. R80 dropped the old plugin API (API 3) and svpflow, which every SVP profile loads, still uses it. R81's big changes are for VapourSynth's own GPU filters, which SVP doesn't use. SVP's plugins do the heavy work themselves, so a faster VapourSynth can gain nothing with svpflow and at most about 1% with RIFE.

I made a small add-on plugin that sits between R81 and SVP's old plugins and translates the old API to the new one, so R81 can run SVP. With it, R81 gives identical frames (to R73 too) and the same speed as R79. R79 is faster than SVP's R73 (svpflow about 6% at 1080p, more at 4K), but the VS-R79 package already has that.

To try it anyway: VS-R81.zip, same steps as VS-R79, just point VSSCRIPT_PATH to C:\VS-R81\Lib\site-packages\vapoursynth\vsscript.dll instead (full steps in the README inside). My tip is to stay on VS-R79 until svpflow gets updated.

You can check it here:
https://drive.google.com/drive/folders/ … XX-S2JMOXD

redraiderj wrote:

If I use 4.4v2 for vertical, there is no frame skipped.

That's the answer then: on your card 4.6 is too heavy for a 4K vertical frame at x2, and 4.4 v2 fits.

I need to correct my Task Manager tip. With the same model and frame rates here (4.4 v2, 24 to 48 fps, no drops), nvidia-smi shows only 63-74% GPU utilization. So utilization doesn't reach 100% even at the limit, and skipped frames are the real test, which you already did.

One difference: my monitor is 1440p, not 4K. RIFE still processes the full 4K frame (SVP doesn't scale it to the window), only the final scaling in the renderer differs.

redraiderj wrote:

firstly I played vertical video on horizontal monitor, got 748 skipped frames; secondly I played horizontal video on vertical monitor, no skipped frames.

Thanks, that settles it: the drops follow the vertical video, not the rotated monitor. So it's the RIFE side on your card, not the display.

I repeated your setup here with MPC Video Renderer (adjust present time), a 24 fps 4K clip, RIFE 4.4 v2 on TensorRT x2 to 48 fps, on my monitor rotated to portrait and set to 60 Hz, 3 runs per video. No difference between them here: landscape skipped 0 / 129 / 135, portrait 0 / 133 / 139. All of those skips happened in the first seconds after opening the file, none during playback. That matches the "warm-up" you noticed, and why your second run dropped from 748 to 57.

In VSPipe, the portrait frame is about 2% slower for RIFE here (4.4 v2: 81.5 vs 79.7 fps). If your 5070 Ti is right at its limit with 4K x2, the difference may be bigger on your card and enough to tip it over. To check, open Task Manager > Performance > GPU while each video plays: if the vertical one sits at 100% and the horizontal one below, that's it.

redraiderj wrote:

For horizontal video there are no skipped frames, and the frame curve in Ctrl-J is very flat; while for vertical video there are 357 skipped frames

Your two screenshots come from different monitors. The horizontal video played on the XV272K (primary, 120 Hz) and the vertical one on the P272U PRO (the rotated one, running at 60 Hz). So the video and the monitor changed together, and the stats can't tell which one causes the drops. The vertical one also looks like it's falling behind before the renderer: 47.606 fps measured vs 47.952 target, while the horizontal one is at 47.984.

Could you swap them? Play the vertical video on the XV272K and the horizontal one on the P272U, with the same settings, and check Ctrl+J again. If the drops stay with the vertical video, it's the video/RIFE side. If they move to the P272U, it's the rotated monitor or its 60 Hz. Here the rotated monitor made no difference, but mine is 1440p and I tested with EVR-CP. You use MPC Video Renderer on a 4K screen, so your setup may behave differently.

redraiderj wrote:

I wonder if you have any ideas why vertical videos consume more than horizontal videos?

I tested it here (RTX 5090 Laptop, stock TensorRT, x2 to 60 fps). The difference is small:

RIFE itself runs at the same speed on both. 4K in VSPipe, 3 runs each: 4.4 did 74.6 fps landscape vs 75.0 portrait, 4.4_v2 81.5 vs 79.7.

The difference comes from SVP's script for MPC-HC: it cuts 16 rows off the bottom and pads the frame for RIFE, so a 4K landscape video ends up as 3840x2144 and a portrait one as 2176x3840, about 1.5% more pixels. In MPC-HC with your model (RIFE 4.4 v2 on TensorRT) both held 60 fps at about the same GPU power, 126 W vs 127 W on average.

The rotated monitor made no difference either. I rotated my second monitor to portrait and played both files fullscreen on it in MPC-HC: both held 60 fps, with the same jitter as on a landscape monitor.

My guess: you already get 296 skipped frames on landscape 4K30 with TensorRT, so your GPU is right at its limit, and even 1.5% more work for portrait is enough to turn a few drops into many.

One thing that did cause stutter here: if MPC-HC starts on one monitor and you drag it to a monitor connected to a different GPU, it keeps rendering on the first one (Ctrl+J shows it under "Render device"). If both of your monitors are on the same card, this doesn't apply.

redraiderj wrote:

when I open a video file, it will say failed to load C:\Program Files\SVP 4\rife\akarin.dll. If I copy akarin.dll to your rife folder and reopen the video, it will say Importing the numpy C-extensions failed.

Your screenshot shows the cause: your VapourSynth runs on Python 3.13, but the rife\pylib folder in my zip is built for Python 3.12, which is what SVP's own VapourSynth uses, so numpy can't load.

To fix it, either download the archive again and copy it over the same way:
https://drive.google.com/drive/folders/ … XX-S2JMOXD

or run this command, it installs the Python 3.13 versions of the packages TensorRT-RTX needs into your own Python (numpy, onnx and onnxconverter-common to convert the model to fp16, onnxruntime to prepare the v2 models):
d:\develop\python\python313\python.exe -m pip install numpy onnx onnxconverter-common onnxruntime
Your own packages are used before pylib, so nothing else needs changing. I reproduced both of your errors here with Python 3.13 + R79, and after this command RIFE worked with both the normal and v2 models.

About akarin.dll: the zip's rife folder is meant to be copied on top of SVP's rife folder (merge and overwrite), not to replace it. SVP's own rife folder already has akarin.dll, the models and the rest. If yours was replaced, restore it (SVP's maintenance tool or a reinstall), then copy the zip's rife folder over it again.

Drakko01 wrote:

could you share how exactly you got R79 to work with SVP?
I'm trying to test it myself, but MPC-HC crashes instantly as soon as I try to use R79.

I had only tested their performance with vspipe: SVP's RIFE (TRT and TRT-RTX) and svpflow scripts at 1080p and 4K on R73 and R79 (RIFE also on R80 via a ported plugin), all the same speed within noise.

If you actually want to run R79, try this (works in both MPC-HC and SVP's mpv, RIFE and seeking fine). Don't replace anything in SVP's folder, both players can be pointed at a separate R79 folder instead:

1. Download VS-R79.zip from here and extract it to C:\ so you get C:\VS-R79\python.exe
https://drive.google.com/drive/folders/ … XX-S2JMOXD

2. Add a user environment variable (Win+R, type SystemPropertiesAdvanced, Environment Variables..., New under "User variables"):
Name: VSSCRIPT_PATH
Value: C:\VS-R79\Lib\site-packages\vapoursynth\vsscript.dll

3. Close SVP and the player completely, start them again and play a video.

The player then loads R79 from that folder instead of SVP's R73. To undo, delete the variable.
The zip is just SVP's own Python 3.12 files plus the official R79 package from GitHub.

narkohol wrote:

Is there any improvement by using latest versions of Vapoursynth?

Tested it: no. RIFE (TRT and TRT-RTX, 1080p and 4K) runs at the same speed on R73 (what SVP ships), R79 and R80, within 0.6%. Plain svpflow (non-RIFE profile, 1080p and 4K) is the same on R73 and R79, within run to run noise. R80 dropped API 3 plugins, so SVP's svpflow, vstrt and akarin don't load on it at all; R79 is the newest SVP can use.

Whoops, didn't check mpc-hc, noticed it re-uses VapourSynth core on seek so i added a guard, pls retry:
https://drive.google.com/drive/folders/ … XX-S2JMOXD

It now also replaces script\generate.js (one-line fix).

Chainik wrote:

is it possible that 5090 is not a bottleneck in your case?
what is the GPU load?

GPU load is 98%. I attached the benchmark I use (svp-rife-bench.zip), so you can
run the same test. It only needs an SVP 4 install: it uses SVP's own VSPipe and
a synthetic clip, so no video file, decoder or display is involved. The GPU is
the only thing working, and numbers are comparable between machines. Unpack, run
run_svp_rife_bench.cmd, details are in the README.

My numbers from that test (5090)

max output fps at x2, 2 GPU threads, best of 3 runs (a 24 fps video at x2 only
needs 48):

resolution  model     TensorRT   TensorRT-RTX   RTX vs TRT
1080p       4.6         312.8       312.5         same
1080p       4.6 v2      330.7       349.1         +5.6%
4K          4.6          71.9        74.8         +4.0%
4K          4.6 v2       77.6        83.6         +7.7%

v2 is also faster than v1: 6 to 8% on TensorRT, about 12% on TensorRT-RTX.

Archive updated: v2 models now work
https://drive.google.com/drive/folders/ … XX-S2JMOXD

The archive is updated to support the v2 models. That fixes the crash pituz hit.
Please re-download before testing. The v2 models are the "(v2)" entries in the
"AI model" list, for example "4.6 (v2)", and they show up there once their files
are in rife\models\rife_v2.

I also did what you suggested: generate.js is no longer patched. TensorRT-RTX is
now switched on with a "rife_rtx" user defined option. How to enable it:

1. Close SVP and any player, back up the SVP 4 folder.
2. Copy the "SVP 4" folder from the archive over "C:\Program Files (x86)\SVP 4"
(needs admin rights once).
3. Start SVP, then main menu -> Application settings -> "User defined options"
tab, fill in the fields below and press "Add option".

Title:          TensorRT-RTX   (any text, it is just the label)
Script name:    rife_rtx       (this exact name matters)
Option scope:   FRC profile
Allowed values: ON or OFF

4. Open your RIFE profile. At the bottom there is now a "User defined options"
section with a "TensorRT-RTX" row: set it to On. "Neural network engine" must
still be "NVIDIA TensorRT".
5. Play a video.

The second attachment is a screenshot of both places: the option being added on
the right, and the "TensorRT-RTX" row set to On in the profile on the left.

Off is the default and gives exactly stock SVP behaviour, so the option is safe
to leave in place.

What I bumped into: v2 models gave corrupted frames on TensorRT-RTX

Every interpolated frame had a checkerboard of blown pixels over the whole
picture. A speed test cannot show this, I only saw it when I compared the output
frames. I should have checked sooner.

What breaks:

* v2 model + TensorRT-RTX 1.6.1: corrupted
* v2 model + plain TensorRT: fine
* v1 model + either backend: fine

Why: the v2 models compute their warp grid from the tensor shape at runtime
(ops: Shape, Gather, Range, Expand, Where, Equal, ConstantOfShape). TensorRT-RTX
1.6.1 miscompiles that part of the graph. The v1 models do not have those ops.
It is not a precision problem: a pure fp32 engine shows the same corruption, and
the same fp16 graph is correct on plain TensorRT.

Fix (in the updated archive): constant-fold that part of the graph for the
padded resolution before building the engine. After that, TensorRT-RTX and
TensorRT output is bit identical. Folding takes 0.3 s, once per model and
resolution. The engine is already cached per resolution, so the folded model
sits next to it.

Chainik wrote:

for me _rtx is significantly slower (on the 4070), last time I tried was ~half an year ago
plus, it doesn't need "slow engine compilation", yes, BUT it's much slower at initialization. TRT runs instantly after the initial engine compilation, TRT_RTX needs some time at every run and every seek.

You are right, and I measured exactly that: 7.7 seconds per seek against 0.9 s
on the current backend. Then I looked at where the time goes, and it turned out
to be fixable.

TensorRT-RTX compiles its kernels when an execution context is created, not
when the engine is loaded. Loading the engine is 0.04 s. Creating the contexts
is 3 s for one stream, 4 s for two. A player throws away its whole VapourSynth
graph on every seek, so that cost was paid again on every jump.

Two changes in the vs-mlrt plugin:

1. Keep the compiled kernels. TensorRT-RTX has IRuntimeCache for this, vs-mlrt
   master does not use it yet. The plugin now stores it next to the engine,
   about 3 MB.
   Seek goes from 7.7 s to 3.1 s.

2. Stop rebuilding. The loaded engine and its contexts now go into a small pool
   when the filter is destroyed and come back when it is created again, so a
   seek reuses them instead of building them. Seek goes to 0.45 s.

                  TensorRT      TensorRT-RTX
seek in mpv          0.9 s          0.45 s
runtime files      2565 MB          222 MB

So the initialization cost you remember is gone on my side, and the 100 second
engine build stays gone. Opening a file still costs about 2 s more than TRT,
only seeks are solved.

About it being slower: that was half a year ago. With 1.6.1 the odd-size crash
is fixed and the speed is 261.8 vs 267.4 fps at 1080p and 60.0 vs 62.8 at 4K
(model 4.6, x2). A 4070 may land differently, the archive in my previous post
is ready to copy over an install if you want to retest.

Source attached: the diff against vs-mlrt master, both patched files, the build
command, and a README with the API calls, the two environment switches to turn
the changes off, and the cost of the pool (it holds the engine, 464 MiB here,
until the entry is evicted or the player closes).

The pool is Windows only as written, it pins the plugin DLL in the process, a
Linux equivalent probably exists but I have not looked.

If you want to apply TensorRT-RTX, do this:

https://drive.google.com/drive/folders/ … XX-S2JMOXD

1. Close SVP and the player.
2. Make a backup of your "SVP 4" folder.
3. Copy the "SVP 4" folder from the archive on top of yours, overwrite all. Merge it, don't delete or replace your rife folder: SVP's own files in it are still needed.
4. Start SVP and add the switch once: main menu (the vertical dots) > Application settings > "User defined options" tab. Title: TensorRT-RTX (any text), Script name: rife_rtx (this exact name matters), Option scope: FRC profile, Allowed values: ON or OFF, then Add option.
5. Open the RIFE profile you use. At the bottom there is now a "TensorRT-RTX" row under "User defined options", set it to On. Engine stays "NVIDIA TensorRT".
6. Play a video.

Off gives stock SVP behaviour. The first time a model or a resolution is used
it prepares the engine by itself, after that it is cached.

If you use your own VapourSynth instead of SVP's, Python 3.12, 3.13 and 3.14 work as is. On any other Python version, also run this once in that Python:

<your python.exe> -m pip install numpy onnx onnxconverter-common onnxruntime

Numbers here, RTX 5090 Laptop, model 4.6, x2, 5 runs each:

                      TensorRT      TensorRT-RTX
1080p                261.8 fps       267.4 fps
4K                    60.0 fps        62.8 fps
engine build 1080p       103 s            12 s
engine build 4K          122 s            14 s
seek in mpv              0.9 s          0.45 s
runtime files          2565 MB          222 MB

The last row is what the two backends need on disk to build and run engines.
The archive does not remove anything from your install, it adds the RTX
runtime next to what you already have, but it shows what SVP could ship
instead of the old TensorRT 10 builder libraries.

14

(35 replies, posted in Using SVP)

jimdogma7 wrote:

I was unable to have the AI run a program off my computer.

So where did the AI get stuck? Maybe it's easier to fix this first.

Nevermind, asked Fable and it did some tests:

The setup: RTX 5090 Laptop GPU, SVP's bundled stack (TensorRT 10.8, vstrt.dll) vs TensorRT-RTX 1.6.1 (vs-mlrt v16.2.test1 vstrt_rtx.dll), RIFE 4.26 Heavy, fp16 + static shape + CUDA graph + 2 streams (SVP defaults), synthetic source through vspipe, so the numbers are max interpolation throughput and source fps does not change them. Numbers below are TensorRT vs TensorRT-RTX, median of 5 runs per config; the dashed marks in the chart show what a 23.976 movie needs at each multiplier:

https://i.gyazo.com/5ba59183e64e59e029c4a87da7c25899.png

1080p (1920x1088): x2 132.6 vs 135.4, x3 102.8 vs 101.1, x4 91.2 vs 90.3, x5 84.7 vs 84.1. Identical within run to run noise.
4K (3840x2176): x2 30.6 vs 33.0, x3 22.6 vs 24.4, x4 20.3 vs 21.4, x5 19.4 vs 20.4. TensorRT-RTX is 5-8% faster and won every single repetition.
For a 23.976 movie that means 4.26 Heavy is real-time at 1080p up to x3 (x4 barely misses, 91 vs 96 needed) and not real-time at 4K even at x2.

Engine build for 4.26 Heavy: 99 to 112 seconds on TensorRT 10.8 vs 0.5 seconds on TensorRT-RTX (about 7 seconds total setup including first engine load). Rebuilt engines from scratch twice per backend to confirm, it holds.

Also confirmed the weird-size crash is really fixed in 1.6.1: 1920x832, 1280x768 and 896x512 all build and render fine.

So: same speed at 1080p, faster at 4K, and the 100 second engine build basically disappears. Looks like a clear win. SVP's script generator already has the rife_rtx hook that loads vstrt_rtx.dll, it just needs the updated rife package (vstrt_rtx.dll + tensorrt_rtx DLLs + newer vsmlrt.py).

Can anyone check performance for latest TensorRT RTX?
They just fixed a crash that was happening at weird video sizes:
https://gyazo.com/bc40853110360394cd72264eea910699
+ it still has the benefit of building the rife engine faster than current TensorRT non-RTX so we should switch if looks like improvement...

17

(35 replies, posted in Using SVP)

Install ChatGPT locally and tell it to play a video with SMplayer and fix any errors found.

If too complex, you can try to install Codex and ask it to debug and fix VapourSynth on your system:
https://developers.openai.com/codex/qui … ?setup=cli

pauzel wrote:

In case it is useful for sb, I added (let Codex/GPT 5.5 add) full res SBS view mode to MPC-BE: https://github.com/pauzel/MPC-BE/pull/1/changes. Seems to work fine. I also can provide my build of the installer if sb needs it. I needed it since Virtual Desktop for VR does not support other formats provided by MPC-BE.

It's nice to see AI models being able to improve existing apps with minimal knowledge. If you ever find some new features/fixes, please share them. Just add a clear explanation so it's description is easily searchable.
Good job!

Sopheus wrote:

As a sidenote, I care about clear image more than FPS

To make image more clear by removing blur, click download zip here:
https://gist.github.com/igv/8a77e4eb827 … c1c50c317e
and put the .glsl file in a shaders folder like this:
"C:\Program Files (x86)\SVP 4\mpv64\shaders\adaptive-sharpen.glsl"

Then add this line in mpv.conf to enable it:
glsl-shaders="~~/shaders/adaptive-sharpen.glsl"

If you want to see comparison ON-OFF add this in input.conf:
CTRL+1 no-osd cycle-values glsl-shaders "~~/shaders/adaptive-sharpen.glsl" ""; show-text "AdaptiveSharpen ON-OFF"

21

(3 replies, posted in Using SVP)

I misread title.
Good answer btw!

22

(3 replies, posted in Using SVP)

Nice, then try to make a request to SVP devs to update default mpv config to remove "-copy", enable blend frames by default
and to drop RIFE support since out of the box SVP config outperforms in smoothness and quality.
And maybe allow users to select from menu dropdown higher values than "Movie Frame rate x6" multiplier and 240 fps. xD
Constructive feedback is always welcomed.

If u add this in mpv.conf:
vf=d3d11vpp=scale=2.00:scaling-mode=nvidia

and you click the Nvidia Super Resolution checkbox for "Show status indicator on video" in NVIDIA App, it will show a small "RTX VSR" on top right side of mpv that Video Super Resolution is active:
https://gyazo.com/12f86d12f896441994a3421b2cc78af7

but changing DLSS models doesn't seem to do anything so no clue how we can use it at transcoding.

matiasflyhigh wrote:

Hello everyone,
a performance issue with the integrated mpv on SVP that hasn't occurred before. Recently

Ooh SVP updated to latest mpv version so it probably reseted your mpv.conf configuration file
and since it's newer mpv version, slight chance that it works slower than old version and might trigger this error in console:
https://gyazo.com/2cfe3723f732a057a8a838249d01320c (you can confirm by pressing ` in mpv)

Try to play around with mpv.conf settings and see which removes the stutter:
hwdec=auto
or
hwdec=no

add this too if slowdown persists:
profile=fast

If you think it's caused by bad SVP settings, then go to your SVP profile -> Automatic options selection -> and select one of the default profiles to reset it to recommended settings, and restart SVP.
This should fix the recent performance issue.

raider10 wrote:

I'm not going over 63fps (which is already pretty good for me).

If dawkinscm's config doesn't give good enough results, and tinkering with the profile settings might make it slower, i would also test with the default automatic profile + masking disabled (to confirm if it's better/worse).
And lowering the monitor resolution a bit if it's already at 3840x2160 (but you only watch movies at 1920x1080).
You can also use the "Alter video frame size" button to lower the amount of pixels that get interpolated:
https://gyazo.com/92109d19b50e5eeb29a72123fc0ea5a8
But the quality loss is not worth it if u ask me.

Surely applying a combination of above will get u to stable 120 fps.

Yes of course. All our hardware setups are different.
Last ideea: selecting "Film" here requires much more processing power:
https://gyazo.com/8ca66edc6222cea98e6b79436b0363d9
So even if you only watch live-action movies, i would still recommend the "Animation" button for less memory usage. (Or the old 4.4-4.6 RIFE v2 models cause they eat less)