avisynth+ "DGDecodeNV_DGSource() does not have any MT-mode specification"

Support forum for DGDecNV
Post Reply
User avatar
hydra3333
Posts: 394
Joined: Wed Oct 06, 2010 3:34 am
Contact:

avisynth+ "DGDecodeNV_DGSource() does not have any MT-mode specification"

Post by hydra3333 »

Hello.

I started to look at logging in a rather long and torturous grab-and-rehack-and-add evolving avisynth+ template script with:

Code: Select all

SetLogParams("__vid__.debug.log", LOG_INFO)
LogMsg(Time("%Y-%m-%d %I:%M:%S %p, %z") + ": Start of debug logging", LOG_INFO)
When I noticed the logging yields the messages below, three of which relate to DG tools:

Code: Select all

INFO: DGDecodeNV_DGSource() does not have any MT-mode specification. Because it is a source filter, it will use MT_SERIALIZED instead of the default MT mode.
WARNING: RemapFrames_x64_RemapFrames() has no MT-mode set and will use the default MT-mode. This might be dangerous.
WARNING: Deflicker_Deflicker() has no MT-mode set and will use the default MT-mode. This might be dangerous.
WARNING: DGDecodeNV_DGSharpen() has no MT-mode set and will use the default MT-mode. This might be dangerous.
WARNING: DGDecodeNV_PVBob() has no MT-mode set and will use the default MT-mode. This might be dangerous.
Will there be a problem when I turn on avisynth+ MT by adding this to the end of the script ?

Code: Select all

Prefetch(6) # or see what happens with Prefetch(8)
with this at the top

Code: Select all

SetMemoryMax(4096) # 4096 8192 16834
(the script uses QTGMC etc so I hope for some speed improvement on a 3900X)

Should I perhaps add these to the top of the script ?

Code: Select all

SetFilterMTMode("DGSource", MT_SERIALIZED) # GPU Filter
SetFilterMTMode("PVBob", MT_SERIALIZED) # GPU Filter
SetFilterMTMode("DGSharpen", MT_SERIALIZED) # GPU Filter
While I'm here I may as well ask, does anyone know which MT Mode applies to these ?
RemapFrames
DeFlicker

and perhaps these ?
cnr2
MDegrain1
MDegrain2
MDegrain3
neo-dfttest
AutoAdjust
DeSpot
dctfilter
RemoveDirt
MedianBlur
ColorYUV2
asharp
awarpsharp2
TUnsharp

I'm hoping this at the top of the script as well takes care of them automagically:

Code: Select all

SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE) # http://avisynth.nl/index.php/SetFilterMTMode
Import("C:\SOFTWARE\AVISynth\AvisynthRepository\AVSPLUS370_x64\plugins-to-choose-from\mt_mode_definitions.avsi") # filters listed with MT_modes https://publishwith.me/ep/pad/view/ro.rDkwcdWn4k9/latest
User avatar
hydra3333
Posts: 394
Joined: Wed Oct 06, 2010 3:34 am
Contact:

avisynth+ "DGDecodeNV_DGSource() does not have any MT-mode specification"

Post by hydra3333 »

Well, taking a punt with prefetch(6) it goes from circa 2.1 fps to circa 3 fps :)

given the script is an unoptimised hack dealing with super8 and VHS material and qtgmc, I suppose I should be happy with that !

the source is 2h 10m, so a conversion takes a fair while.
User avatar
Rocky
Posts: 3555
Joined: Fri Sep 06, 2019 12:57 pm

avisynth+ "DGDecodeNV_DGSource() does not have any MT-mode specification"

Post by Rocky »

I can only speak on my filters.

DGSource() is serialized by default. Multi-threading it will slow it down.

PVBob() and DGSharpen() allow multi-instance. The only thing to watch out for is that you have enough GPU memory to support all the instances you want. Bigger frames will need more memory too. This is where that 3090 comes in handy. AVSMeter with the -gpu option will show GPU memory usage.

See here for other filters:

https://forum.doom9.org/showthread.php?t=175320
http://avisynth.nl/index.php/AviSynth%2 ... g_MT_modes
User avatar
DJATOM
Posts: 176
Joined: Fri Oct 16, 2015 6:14 pm

avisynth+ "DGDecodeNV_DGSource() does not have any MT-mode specification"

Post by DJATOM »

AFAIK source filters are always serialized by default, no need to add explicit mode. You can ignore those warnings.
User avatar
hydra3333
Posts: 394
Joined: Wed Oct 06, 2010 3:34 am
Contact:

avisynth+ "DGDecodeNV_DGSource() does not have any MT-mode specification"

Post by hydra3333 »

OK, thank you.
Post Reply