Selur's Little Message Board

Full Version: VapourSynth preview error (FFT3DFilter)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi Selur,
I’m encountering an issue when trying to open the Preview in Hybrid using VapourSynth.
I’ve attached the debug output below.

Code:
# Import scripts
import qtgmc
import validate
# Source: 'E:\VHS_raw\capture3_5_1.avi'
# Current color space: YUV422P8, bit depth: 8, resolution: 720x576, frame rate: 25fps, scanorder: top field first, yuv luminance scale: limited, matrix: 470bg, format: Lagarith
# Loading 'E:\VHS_raw\capture3_5_1.aviÄ using LWLibavSource
clip = core.lsmas.LWLibavSource(source="E:/VHS_raw/capture3_5_1.avi", format="YUV422P8", stream_index=0, cache=0, prefer_hw=0)
frame = clip.get_frame(0)
# setting color matrix to 470bg.
clip = core.std.SetFrameProps(clip, _Matrix=vs.MATRIX_BT470_BG)
# setting color transfer (vs.TRANSFER_BT601), if it is not set.
if validate.transferIsInvalid(clip):
  clip = core.std.SetFrameProps(clip=clip, _Transfer=vs.TRANSFER_BT601)
# setting color primaries info (to vs.PRIMARIES_BT470_BG), if it is not set.
if validate.primariesIsInvalid(clip):
  clip = core.std.SetFrameProps(clip=clip, _Primaries=vs.PRIMARIES_BT470_BG)
# setting color range to TV (limited) range.
clip = core.std.SetFrameProps(clip=clip, _ColorRange=vs.RANGE_LIMITED)
# making sure frame rate is set to 25fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# making sure the detected scan type is set (detected: top field first)
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_TOP) # scan type: top field first
original = clip
# Deinterlacing using QTGMC
clip = qtgmc.QTGMC(clip, Preset="Fast", TFF=True) # new fps: 50
# Making sure content is preceived as frame based
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # scan type: progressive
# Deinterlacing using QTGMC
original = qtgmc.QTGMC(original, Preset="Fast", TFF=True) # new fps: 50
# Making sure content is preceived as frame based
original = core.std.SetFrameProps(clip=original, _FieldBased=vs.FIELD_PROGRESSIVE) # scan type: progressive
# adjusting output color from YUV422P8 to YUV420P8 for x264Model
original = core.resize.Bicubic(clip=original, format=vs.YUV420P8)
# adjusting output color from YUV422P8 to YUV420P8 for x264Model
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8)
original = core.text.Text(clip=original,text="Original",scale=1,alignment=7)
clip = core.text.Text(clip=clip,text="Filtered",scale=1,alignment=7)
stacked = core.std.StackHorizontal([original,clip])
# set output frame rate to 50fps (progressive)
stacked = core.std.AssumeFPS(clip=stacked, fpsnum=50, fpsden=1)
# output
stacked.set_output()
# script was created by Hybrid 2026.04.03.1
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9:   writing: UTF8BOM
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9:  VapoursynthPreview enabling show,..
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: VapoursynthPreview m_currentTempVPY: E:\temp\tempPreviewVapoursynthFile20_03_29_637.vpy
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: VapoursynthPreview m_currentCall: C:\Program Files\Hybrid\64bit\Vapoursynth\vsViewer.exe --preview-only E:\temp\tempPreviewVapoursynthFile20_03_29_637.vpy --matrix Rec601 -style=windows11
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: Creating index files,...
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: Files to index for VAPOURSYNTHPREVIEW:
 
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: Indexer createIndexFiles disable GUI(1),..
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: enableGui 0 + -1 = -1
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9:  -> m_toIndex is empty,... -> nothing to do,...
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: VsScriptGenerator indexerFinished(4612,0): VAPOURSYNTHPREVIEW
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: VsScriptGenerator indexerFinished enable GUI(5),..
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: enableGui -1 + 1 = 0
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9:  indexing finished,..
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: startPreview,..C:\Program Files\Hybrid\64bit\Vapoursynth\vsViewer.exe --preview-only E:\temp\tempPreviewVapoursynthFile20_03_29_637.vpy --matrix Rec601 -style=windows11
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9:  VapoursynthPreview disable show(2),..
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9:  VapoursynthPreview disable updating(2),..
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: Connected vsViewer -> 2finished(int, QProcess::ExitStatus) to VapoursynthPreview -> 1playerFinished(int, QProcess::ExitStatus), type: 384
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: Connected vsViewer -> 2readyReadStandardOutput() to VapoursynthPreview -> 1handlePreviewOutput(), type: 128
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: Connected vsViewer -> 2readyReadStandardError() to VapoursynthPreview -> 1handlePreviewOutput(), type: 128
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: startPreview call: C:\Program Files\Hybrid\64bit\Vapoursynth\vsViewer.exe --preview-only E:\temp\tempPreviewVapoursynthFile20_03_29_637.vpy --matrix Rec601 -style=windows11 --listen 5268_VPY_ --listen-to HYBRID
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: adjustProcessEnvironmentOfProcess(vsViewer),...
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: adjusted ProcessEnvironmentOfProcess(vsViewer),...
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: Connected unnamed -> 2messageReceived(QString) to VapoursynthPreview -> 1gotMessage(QString), type: 128
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: Connected unnamed -> 2connected() to unnamed -> 1socket_connected(), type: 128
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: Connected unnamed -> 2disconnected() to unnamed -> 1socket_disconnected(), type: 128
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: Connected unnamed -> 2readyRead() to unnamed -> 1socket_readReady(), type: 128
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: Connected unnamed -> 2errorOccurred(QLocalSocket::LocalSocketError) to unnamed -> 1socket_error(QLocalSocket::LocalSocketError), type: 128
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: tokenizing(2) 'C:\Program Files\Hybrid\64bit\Vapoursynth\vsViewer.exe' with:
  --preview-only
  E:\temp\tempPreviewVapoursynthFile20_03_29_637.vpy
  --matrix
  Rec601
  -style=windows11
  --listen
  5268_VPY_
  --listen-to
  HYBRID
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: tool(2): "C:\Program Files\Hybrid\64bit\Vapoursynth\vsViewer.exe"
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: arguments(2):
  --preview-only
  E:\temp\tempPreviewVapoursynthFile20_03_29_637.vpy
  --matrix
  Rec601
  -style=windows11
  --listen
  5268_VPY_
  --listen-to
  HYBRID
2026.04.03 - 20:03:29_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: Preview::indexingIsFinished 'VAPOURSYNTHPREVIEW' ignored,..
2026.04.03 - 20:03:30_Windows 11 Version 21H2 (64bit)_2026.04.03.1 - level 9: Failed to evaluate the script:
Python exception: Failed to load C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/FFT3DFilter/fft3dfilter.dll. GetLastError() returned 1114.

Traceback (most recent call last):
  File "src/cython/vapoursynth.pyx", line 3378, in vapoursynth._vpy_evaluate
  File "src/cython/vapoursynth.pyx", line 3379, in vapoursynth._vpy_evaluate
  File "E:\temp\tempPreviewVapoursynthFile20_03_29_637.vpy", line 15, in <module>
    core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/FFT3DFilter/fft3dfilter.dll")
  File "src/cython/vapoursynth.pyx", line 3114, in vapoursynth.Function.__call__
vapoursynth.Error: Failed to load C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/FFT3DFilter/fft3dfilter.dll. GetLastError() returned 1114.


Could you please take a look and advise what might be causing this?
Thanks in advance!
Code:
C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/FFT3DFilter/fft3dfilter.dll
What cpu are you using? My guess is that fft3dfilter has some issues with the cpu.
Try enabling 'Neo' in the QTGMC options.

Cu Selur

Ps.: you can also try replacing the fft3dfilter.dll with the 64bit one from https://github.com/myrsloik/VapourSynth-...ses/tag/R2 (not sure where I got the fft3dfilter.dll from that I added to Hybrid, but it does work fine here)
Also, I just noticed I have another fft3dfilter version in my Hybrid folder. Rolleyes
Maybe I accidentally added a Avisynth fft3dfilter.dll to the installer for Vapoursynth before. ¯\_(ツ)_/¯
Uploaded a new dev (Hybrid_dev_2026.04.03-194319) which comes with that version. (you can try that one too Smile)

Cu Selur
CPU: AMD Phenom II X4 975
Interesting behavior: Preview now works when Neo is enabled.
Previously, I was getting an error with Neo enabled, but now it’s the opposite — it only works with Neo on.

Thanks!

Thanks for looking into this and for the updated dev build — I’ll give it a try.
Appreciate your help!
Problem is that the CPU does not support AVX2 and most developer use that as minimum nowadays.

But happy that works with neo. Please let me know wheter the dev version works with normal ff3dfilter too.


Cu Selur
Hi Selur,
I think I figured out what happened.
Yesterday, when I switched the Neo option in the previous version (Hybrid_dev_2026.04.03-151241), I also enabled CropView, which ended up disabling all VapourSynth filters. That’s why no error occurred at that time.
I didn’t notice it initially, but since I didn’t need any filters for that tape, I was still able to process it with deinterlacing successfully.
Now I do need filters, so I installed Hybrid_dev_2026.04.03-194319. The error occurs when using TemporalDegrain2.
TemporalDegrain and MC Temporal Denoise work without errors.
I’ll proceed using the filters that don’t cause issues for now.
Thanks again for your help and the quick response!
TemporalDegrain and MCTemporalDenoise both use fft3dneo on Windows.
So TemporalDegrain2, probably will also work with 'Neo' enabled. (by defaults it's enabled)
I'll add a workaround to force fft3dneo for non-AVX2 capable CPUs in TemporalDegrain2 in the next dev.
=> I'm pretty sure the issue is due to fft3dfilter. Backstory, first fft3dfilter did not support AVX2, then fft3dneo came which only supported AVX2 up.
Then fft3dfilter also adjusted to this case (to catch speedwise up to fft3dneo) and then fft3dneo added back support for non-AVX2 systems, but fft3dfilter did not.

Cu Selur
Uploaded a new dev (Hybrid_dev_2026.04.04-224920), which does enforce using fft3dneo instead of fft3dfilter for non-AVX2 capable CPUs.

Cu Selur