View Single Post
Old 8th June 2019, 21:37   #14  |  Link
johnmeyer
Registered User
 
Join Date: Feb 2002
Location: California
Posts: 2,695
Quote:
Originally Posted by GillesH View Post
If John Meyer goes through Doom9.
Did you try your "filldrops" function with Prefetch in your new script AVS+ ?
I posted a version of my film restoration script that is written for AVISynth+. I am using r2508 MT, i386, by Ben Rudiak-Gould.

Here is a link to that script:

https://forum.doom9.org/showthread.p...34#post1861734

I just ran this (with GamMac enabled) and enabled filldrops(). I set the filldrops comparison variable absurdly high so filldrops would be activated on almost every frame. I had threads=3. I let the script run for a few minutes and on 720x480 16 fps progressive standard 8mm film, I got 4.68 fps.

I then did the same test, but with threads=1. After a minute (to let any caching clear out), I measured the fps and was getting 1.73. So the MT was definitely doing something.

I then set threads=8 (equal to the number of cores on my computer). This caused the render to "start and stop," with long pauses with no screen refresh. It finally froze.

Threads = 6 also froze. Also, I got an error I had never seen before: "Something appears to be stuck while trying to stop (thread deadlock)." This is exactly how it felt while the script was running, so I was not surprised.

While keeping threads at 6 I commented out the filldrops() call. This time it kept running, but there were long pauses where it didn't seem to be doing anything, and I got only about 2.2 fps.

I dropped threads to 5 and, without any calls to filldrops(), VD and AVISynth+ seemed to now be very happy, and I got 6.65 fps, a 50% increase from threads=3. I ran the script for over two minutes, and it seemed to be perfectly stable.

Since threads=5 seemed to be some sort of threshold, I kept it at 5 and then re-enabled the filldrops() call to see if the extra instance of MVTools2 (which is what this causes, since I'm not re-using any of the MVTools2 vectors, unless it is cleverly doing that behind my back) would cause a problem.

Well, performance plummeted to about 2.5 fps, and the script eventually hung. The extra invocation of MVTools2 definitely caused a problem (BTW, I'm not sure what version of MVTools2 I'm using, but I'm sure it is not very recent).

As the last test, I went back to threads=3, which is where I started, but with filldrops() enabled and with the filldrops() parameter set to cause it to execute on almost every frame. I got about 4.64 fps, but no screen refresh in VD, which made me wonder whether anything was really happening. I let it crunch for two minutes, closed VD, and then looked at the video it created. Despite not having any screen refresh in VD, the video produced by the script looked just fine.

I hope this helps!

P.S. If you need to know DLL versions, remind me what tool I use to get that (AVSMeter?) and I'll post that info.

Last edited by johnmeyer; 9th June 2019 at 01:52. Reason: add p.s.
johnmeyer is offline   Reply With Quote