Posts: 736
Threads: 70
Joined: Feb 2020
Problem solved.
After having installed the last version I have to install over the file "VapoursynthR57_torch_2022.03.31.7z"
Regarding the problem of DLL already loaded. I noted that in the error message there is the path of DLL loaded
vapoursynth.Error: Plugin D:/Programs/Hybrid/64bit/vsfilters/DenoiseFilter/KNLMeansCL/KNLMeansCL.dll already loaded (com.Khanattila.KNLMeansCL) from D:/Programs/VapourSynth64Portable/VapourSynth64/vapoursynth64/plugins/KNLMeansCL.dll
So it seems that the new version of Vapoursynth R57 has gotten dumber or smarter (it depends on point of view) and now is able to find DLLs which are not included in the O.S. PATH. I really don't understand why the R57 was able to find the DLL "
D:\Programs\VapourSynth64Portable\VapourSynth64\vapoursynth64\plugins\KNLMeansCL.dll" which is stored on a different directory level respect to Hybrid Vapoursynth which is stored in "
D:\Programs\Hybrid\64bit\Vapoursynth".
I moved the portable version elsewhere and now is not more loaded and Hybrid is working as expected, but this behaviour is very dangerous.
Posts: 10.983
Threads: 57
Joined: May 2017
Probably some registry key.
Quote:I moved the portable version elsewhere and now is not more loaded and Hybrid is working as expected, but this behaviour is very dangerous.
Yup, but aside nagging the authors for adding a 'don't autoload' option that can be called from scripts there's nothing I can do about it.
Cu Selur
Posts: 10.983
Threads: 57
Joined: May 2017
Just as a small update:
using:
import site
# Import libraries for onnxruntime
import ctypes
path = site.getsitepackages()[0]+'/onnxruntime_dlls/'
ctypes.windll.kernel32.SetDllDirectoryW(path)
instead of loading the libraries one at a time works fine too.
(sadly it doesn't help with the crash when vsrife is used while onnxruntime is loaded.)
Cu Selur
Posts: 736
Threads: 70
Joined: Feb 2020
From VapourSynth documentation
Windows
Windows has in total 3 different autoloading directories: user plugins, core plugins and global plugins. They are searched in that order. User plugins are always loaded first so that the current user can always decide which exact version of a plugin is used. Core plugins follow. Global plugins are placed last to prevent them from overriding any of the included plugins by accident.
The searched paths are:
- <AppData>\VapourSynth\plugins32 or <AppData>\VapourSynth\plugins64
- <VapourSynth path>\core32\plugins or <VapourSynth path>\core64\plugins
- <VapourSynth path>\plugins32 or <VapourSynth path>\plugins64
Note that the per user path is not created by default. On modern Windows versions the AppData directory is located in <user>\AppData\Roaming by default.
Shortcuts to the global autoload directory are located in the start menu.
Avisynth plugins are never autoloaded. Support for this may be added in the future.
User plugins should never be put into the core\plugins directory.
Windows Portable
The searched paths are:
- <VapourSynth.dll path>\vapoursynth32\coreplugins or <VapourSynth.dll path>\vapoursynth64\coreplugins
- <VapourSynth.dll path>\vapoursynth32\plugins or <VapourSynth.dll path>\vapoursynth64\plugins
User plugins should never be put into the coreplugins directory.
In my case the portable version was located in "D:\Programs\VapourSynth64Portable\VapourSynth64"
In my installation VapourSynth.dll used by Hybrid is located in "D:\Programs\Hybrid\64bit\Vapoursynth" the KNLMeansCL.dll located by "autoload" was in the directory "D:\Programs\VapourSynth64Portable\VapourSynth64\vapoursynth64\plugins", while following the documentation the search paths used by the autoload should be:
"D:\Programs\Hybrid\64bit\Vapoursynth\core64\plugins"
"D:\Programs\Hybrid\64bit\Vapoursynth\plugins64"
"D:\Programs\Hybrid\64bit\Vapoursynth\Vapoursynth64\coreplugins"
"D:\Programs\Hybrid\64bit\Vapoursynth\Vapoursynth64\plugins"
of these directories only the last 2 are present and are almost empty, so I still don't understand how was possible the autoload of KNLMeansCL.dll in "D:\Programs\Hybrid\64bit\Vapoursynth".
Posts: 10.983
Threads: 57
Joined: May 2017
I think you are mixing stuff there.
Quote:vapoursynth.Error: Plugin D:/Programs/Hybrid/64bit/vsfilters/DenoiseFilter/KNLMeansCL/KNLMeansCL.dll already loaded (com.Khanattila.KNLMeansCL) from D:/Programs/VapourSynth64Portable/VapourSynth64/vapoursynth64/plugins/KNLMeansCL.dll
where:
"D:/Programs/VapourSynth64Portable/VapourSynth64/vapoursynth64/plugins/KNLMeansCL.dll" was autoloaded
and
" D:/Programs/Hybrid/64bit/vsfilters/DenoiseFilter/KNLMeansCL/KNLMeansCL.dll"
was explicitly loaded in the script.
The viewer you used used the VapourSynth64Portable and thus autoloaded the libraries from "D:/Programs/VapourSynth64Portable/VapourSynth64/vapoursynth64/plugins/" and ran into a conflict since "D:/Programs/Hybrid/64bit/vsfilters/DenoiseFilter/KNLMeansCL/KNLMeansCL.dll" was explicitly loaded.
Cu Selur
Posts: 736
Threads: 70
Joined: Feb 2020
No, this was not my test condition. In order to be sure that the proper Vapoursynth version was loaded. I opened a command window in the directory "D:\Programs\Hybrid\64bit\Vapoursynth" where is located the "Vapoursynth.dll" used by Hybrid, then I executed the commands described in my previous post, and in this case I received the error regarding the DLL already loaded. In my tests with vsViewer the error was related to y4m header. But fixing the problem of DLLs path fixed also the problem regarding the y4m header.
Posts: 10.983
Threads: 57
Joined: May 2017
01.04.2022, 19:11
(This post was last modified: 01.04.2022, 19:11 by Selur.)
But, the error message clearly says that "D:/Programs/VapourSynth64Portable/VapourSynth64/vapoursynth64/plugins/KNLMeansCL.dll" was autoloaded.
Never the less I'm happy you figured out what was causing the issues on your system.
Cu Selur