Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
6th May 2012, 19:52 | #382 | Link |
Software Developer
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
|
Dependency Walker has a "profiling" feature that can be used to track all the DLL's loaded at runtime too.
Other than that, one can also use VMMap to show all modules (DLL's) that a given processes has currently loaded...
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊ |
12th May 2012, 19:45 | #383 | Link |
Anime addict
Join Date: Feb 2009
Location: Spain
Posts: 673
|
I will discuss my experience. If I use:
Code:
SetMemoryMax(512) SetMTMode(3,4) source_filter() SetMTMode(2) processing_filters() If I use: Code:
SetMemoryMax(512) SetMTMode(4,4) source_filter() SetMTMode(2) processing_filters() Using follow script, run fine. Code:
SetMemoryMax(512) SetMTMode(5,4) source_filter() SetMTMode(2) processing_filters()
__________________
Intel i7-6700K + Noctua NH-D15 + Z170A XPower G. Titanium + Kingston HyperX Savage DDR4 2x8GB + Radeon RX580 8GB DDR5 + ADATA SX8200 Pro 1 TB + Antec EDG750 80 Plus Gold Mod + Corsair 780T Graphite |
12th May 2012, 22:16 | #384 | Link |
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,718
|
I think you are supposed to use SetMTMode(5,x) before a source filter, so the last example is correct (and thus runs without errors).
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
12th May 2012, 23:10 | #386 | Link |
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,718
|
Well, for example DGSource doesn't like SetMTMode(3) on my computer while it works fine with SetMTMode(5). Of course, decoding the source is the smallest thing in my case so it can well run singlethreaded.
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
14th May 2012, 15:17 | #387 | Link | |
Registered User
Join Date: Mar 2005
Posts: 50
|
Quote:
i installed a clean Windows XP Service Pack3 into an Oracle VirtualBox VM, installed official avisynth 2.58 and it was ok. Downloaded your last build of 2.6MT and i got the avsp crash again. System config: Oracle VirtualBox 4.1.14 r77440 Windows XP SP3 (with all the security patches at the time of writing) AvsP.exe 2.0.2.0 Avisynth 2.5.8 + Avisynth 2.6MT (latest version) I used Dependancy Walker's profiling tool, you can find the profiling log attached, the exception is at line 476 Last edited by Anacletus; 14th May 2012 at 17:43. Reason: Added Application versions |
|
19th May 2012, 11:54 | #392 | Link |
Registered User
Join Date: Dec 2006
Posts: 10
|
SEt, I've searched through this threat on information about the MT() function.
I noticed a post you made where you state that the MT.dll is not supported. Remarkably however, in the beginning of this thread, notably BigDid stated he was able to use the latest MT0.7 dll with your AS2.6 Still, MT.dll does not work for me (AV complains "wrong avisynth version. Use avisynth 2.6 or greater or modified avisynth 2.5.6"). Am I correct in assuming that for instance MT("FluxSmoothST(7,7)",threads=2) cannot be used with any of your AviSynth MT builds? And that the only possibility to use the MT() mode would mean having to use the older 2.5.7 build supplied with the MT.dll? I'm a great fan of temporal denoisers, and I have perceived the SetMTmodes to limit their effectiveness. If I understand the Wiki correctly the MT() mode is the only true option for effective temporal filters. But this may of course be incorrect; I do not really understand all the differences between SetMTmode - maybe I missed something and the MT() mode is deprecated? |
19th May 2012, 12:03 | #393 | Link |
Registered User
Join Date: Aug 2007
Posts: 374
|
MT() is unsupported by me, though it's not impossible to update it to the current Avisynth 2.6 MT state.
And sure MT() is not your only option besides MTMode: look in the forum – there are other threading attempts like pipelining. |
19th May 2012, 12:46 | #394 | Link | |
Registered User
Join Date: Mar 2009
Posts: 3,646
|
Quote:
SetMTMode(3,2) ffdshow_source() SetMTMode(2) FluxsmoothST(7,7) SetMTMode(1) GetMTMode(false) > 0 ? distributor() : last Basically taken from the front page. I use this within ffdshow, I use Fluxsmooth often and had zero issues with SEt's builds. Last edited by ryrynz; 19th May 2012 at 13:04. Reason: Source filters are optimal in modes 3 or 5. |
|
19th May 2012, 13:10 | #397 | Link |
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,718
|
Actually using SetMTMode makes them work exactly like they work in single-threaded mode. A temporal denoiser works over a certain area in a single frame and processes multiple sequential frames for each single frame. Depending on the spatial radius and the overlap value, using MT() could lead to sub-optimal results.
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
19th May 2012, 13:42 | #398 | Link | |
Registered User
Join Date: Dec 2006
Posts: 10
|
Quote:
As you are saying, the filter needs a sequence of sequential/subsequent frames to calculate whether it smooths something. This is also the reason why I understood the threading method of SetMTmode to be sub-optimal for this purpose, because in my endless naivity I assumed using this would mean the following: thread 1 gets e.g. frame 1,3,5,7 and calculates the temporal pattern of an area on their sequence. thread 2 gets e.g. frame 2,4,6,9 and calculates the temporal pattern of an area on their sequence. But if I understand your explanation correctly, two threads are created in which the same frame is thus present (i.e. read) in thread 1 on t=1, and present in thread 2 as well, at t=2. But the 'noise correction' is applied in thread 1 to frame n, and in thread 2 to frame n+1. [disclaimer] I apologise if I'm bringing things up again that have been explained already (given the fact that MT has been around for some years now), but I have been unable to fully apprehend its use and configuration despite of countless hours of searching and reading. It's these specific questions vs. explanations that keep fogging my understanding. [/disclaimer] So this is what I've got now, just for clarification: Code:
SetMTmode(3,0) LoadPlugin("") DGDecode_mpeg2source("C:\CT.d2v", info=3) SetMTmode(2,0) ColorMatrix(hints=true, threads=0) trim(125500,126500) FluxSmoothST(7,7) crop(10, 10, -8, -14) Undot() Spline36Resize(720,576) Undot() SetMTMode(1) GetMTMode(false) > 0 ? distributor() : last Last edited by BugiBugBug; 19th May 2012 at 13:44. |
|
19th May 2012, 14:00 | #399 | Link | |
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,718
|
Quote:
You should make sure that you really need Distributor() in your script. Many applications do not need it since they call it themselves.
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
|
19th May 2012, 14:26 | #400 | Link |
Registered User
Join Date: Aug 2007
Posts: 374
|
That's not how it works. Simplified a bit, it works this way: let's look at certain filter in the script in MTMode – there are indeed 2 threads, but both of them have all source frames, next from one thread frames 0,2,4... are requested and from the other thread frames 1,3,5... If the filter handles non-sequential requests correctly – it'll work exactly as in non-MT mode, but if it doesn't – things will break (note that they will also break in non-MT mode when some filter reorders frames like SelectEven or Trim).
The end Code:
SetMTMode(1) GetMTMode(false) > 0 ? distributor() : last |
Thread Tools | Search this Thread |
Display Modes | |
|
|