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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Development

Closed Thread
 
Thread Tools Search this Thread Display Modes
Old 27th August 2015, 14:06   #1221  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 1,899
Absolute winner is...... avs+ 1576 !
jpsdr is offline  
Old 27th August 2015, 14:12   #1222  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,191
Quote:
Originally Posted by jpsdr View Post
Absolute winner is...... avs+ 1576 !
Yes indeed. I hope this issue can be resolved. KNLMeans and even FFmpeg requires AviSynth+ r1779 or greater (or any version with the latest header) .
Reel.Deel is offline  
Old 27th August 2015, 14:38   #1223  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,054
Quote:
Originally Posted by Reel.Deel View Post
Ok I finally finished testing...
I don't get such a big difference between 2.6 and AVS+ r1576. What processor did you run this on?
Groucho2004 is offline  
Old 27th August 2015, 14:47   #1224  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,191
Quote:
Originally Posted by Groucho2004 View Post
I don't get such a big difference between 2.6 and AVS+ r1576. What processor did you run this on?
Intel core i7 4930k on 64-bit Windows 7. I'll test 2.6/AVS+ r1576 on another processor to see if I get similar results.

I also added this issue to GitHub: https://github.com/AviSynth/AviSynthPlus/issues/63
Reel.Deel is offline  
Old 27th August 2015, 15:45   #1225  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,054
Quote:
Originally Posted by Reel.Deel View Post
Intel core i7 4930k on 64-bit Windows 7.
Hm. I ran this on my i5-2500K on XP. The only difference between XP and Win7 that could be relevant here is that Win7 supports AVX intrinsics. However, I'm not aware of any AVX intrinsics in AVS+. Maybe one of the plugins is using them?

Edit: Which nnedi3 are you using?

Last edited by Groucho2004; 27th August 2015 at 18:19.
Groucho2004 is offline  
Old 28th August 2015, 04:56   #1226  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,191
Quote:
Originally Posted by Groucho2004 View Post
I don't get such a big difference between 2.6 and AVS+ r1576. What processor did you run this on?
Here's the results with an i7-4770k also on Windows 7; more or less the same as the previous results. Out of curiosity I might test this with my old computer (Q6600 / XP).

AviSynth+ r1576:
Quote:
[Runtime info]
Frames processed: 45338 (0 - 45337)
FPS (min | max | average): 10.25 | 218.7 | 32.83
Memory usage (phys | virt): 1046 | 1068 MB
Thread count: 18
CPU usage (average): 15%
Time (elapsed): 00:23:00.899



AviSynth 2.6:
Quote:
[Runtime info]
Frames processed: 45338 (0 - 45337)
FPS (min | max | average): 6.128 | 222.0 | 27.15
Memory usage (phys | virt): 1053 | 1074 MB
Thread count: 18
CPU usage (average): 15%
Time (elapsed): 00:27:49.653



Quote:
Originally Posted by Groucho2004 View Post
Which nnedi3 are you using?
I'm using jpsdr's nnedi3 (SSE4.2). Both AVS/AVS+ are using the the exact same plugins.
Reel.Deel is offline  
Old 28th August 2015, 05:42   #1227  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,268
While it was mentioned in the issue on Github, the drastic difference in memory consumption between r1576 and newer builds of avsplus is because r1576 still uses the old cache system that 2.6 does, just bugfixed and tweaked a bit with the rest of the performance boosts that were already present in 0.1. But the MT branch (which is where *all* post-r1576 builds come from, since there weren't any public builds made available prior to r1689, IIRC) has a redesigned cache system, leading to the much-reduced memory consumption and different thread count numbers. It's a bit of comparing apples to oranges there.

So more correctly, the drop-off in performance after r1765 is a regression that was introduced late in the cycle for the new cache system. I may go in and do some builds so we can try to bisect this, once I have access to my VS2013 build environment again.
qyot27 is offline  
Old 28th August 2015, 06:32   #1228  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Hollola, Finland
Posts: 5,061
The performance issue aside, is r1825 generally safe to use for MT purposes or are there other issues still lurking?
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline  
Old 28th August 2015, 08:59   #1229  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 1,899
Quote:
Originally Posted by Reel.Deel View Post
Yes indeed. I hope this issue can be resolved. KNLMeans and even FFmpeg requires AviSynth+ r1779 or greater (or any version with the latest header) .
Stupid thought : Can't the r1576 just be compiled with the latest header ?
jpsdr is offline  
Old 28th August 2015, 09:25   #1230  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,054
Quote:
Originally Posted by jpsdr View Post
Stupid thought : Can't the r1576 just be compiled with the latest header ?
You mean having avisynth.dll pretend to support AVISYNTH_INTERFACE_VERSION 6?
That would almost certainly crash if a plugin tries to use for example the updated Avisynth_C API.
Groucho2004 is offline  
Old 28th August 2015, 23:47   #1231  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,191
Can someone please make an AviSynth+ changelog (or list) that contains revision numbers and the corresponding commit hash? Since AviSynth+ uses revision numbers for it's releases is kinda hard to find the corresponding commit unless it's been tagged. I'm not familiar with GitHub so I'm not sure how to accomplish this.

Last edited by Reel.Deel; 29th August 2015 at 01:34.
Reel.Deel is offline  
Old 29th August 2015, 01:46   #1232  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,268
That's actually impossible, because the commit count can change during merges because git slips commits into the history by date (and in fact, this is exactly what happened when the Sphinx docs were merged). This is expected git behavior. The reason some projects don't have this as an issue is because they don't do merges, and apply patchsets through git am.

The revision numbers are more akin to plain commit counts than static revision numbers like in Subversion. In fact, the method by which the number is generated is 'git rev-list --count HEAD'.

The better option (although it wouldn't do anything to existing commits), would be to have the abbreviated commit hash visible in the output of Version().


The dumb way of doing it is to simply do 'git rev-list HEAD', and then open it in a spreadsheet so you can look at the row numbers or generate them in a column. But like I said, that only shows which commits were in those positions at the time you perform the operation, not forever.

Last edited by qyot27; 29th August 2015 at 01:49.
qyot27 is offline  
Old 29th August 2015, 15:40   #1233  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,191
Thanks for the info qyot27. If I'm understanding correctly does that mean that AviSynth+ rxxxx actually means the commit count rather than the revision number?
Reel.Deel is offline  
Old 29th August 2015, 17:51   #1234  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,268
Pretty much, yes. Revision numbers are a form of commit counts, even in Subversion. The difference is that where Subversion's are static numbers and thus the revision number is always true for X commit, in normal git usage the number is only representative of the latest commit on the branch you're on (and since the most common usage for the numbers is as a constantly tracking upward number of commits, it works well enough). Like I said, some projects - x264, for instance - don't do merges and force git to keep a strictly linear history, in which case the revision numbers and commit hashes would be static and pretty much just like in Subversion. But those would definitely be the exceptions for projects using git, not the rule.

For AviSynth+, the revision numbers are really just a shorthand, and the only ones that might pack extra meaning are those that are shown in the Version() output for an official point release. That's why 'AviSynth+ r1576' is treated as synonymous with the official release of 'AviSynth+ 0.1'. Otherwise, the numbers are more for seeing how much activity has occurred between builds (or in relation to classic AviSynth; currently, avsplus is about 500 commits ahead or so). Whatever the number happens to be when 0.2 gets tagged and released will have the same popular association to it.
qyot27 is offline  
Old 29th August 2015, 18:40   #1235  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,396
It is certainly similar for x265 which uses Hg (Mercurial), a kind of git variant. There are version "milestones" and additional patch counts. But it seems not to progress as sequentially as expected either; I remember a point when the "stable" branch got merged into the "default" branch and should have raised the count of patches by about half a dozen, I expected, but it increased only by one... So I am not sure if only the patches in the "default" branch count, or if there are "meta patches" which don't increase the number after the version milestone. Only the hash pattern is sufficient as identification.
__________________

New German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid
LigH is offline  
Old 29th August 2015, 22:54   #1236  |  Link
foxyshadis
ангел смерти
 
foxyshadis's Avatar
 
Join Date: Nov 2004
Location: Lost
Posts: 9,566
Tagging specific builds/releases makes the most sense, then a changelog for the tagged revision will be the same forever. Tags are a lot easier to find visually than hashes.
foxyshadis is offline  
Old 30th August 2015, 21:05   #1237  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,268
Okay, here's a pack of 4 different snapshots so that we can start narrowing down where in the last 100 commits this regression appeared:
http://www.mediafire.com/download/aj...bisect_test.7z

I also included the git hash in the directory names so we know what the exact commits are.
qyot27 is offline  
Old 30th August 2015, 21:26   #1238  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,054
Quote:
Originally Posted by qyot27 View Post
Okay, here's a pack of 4 different snapshots so that we can start narrowing down where in the last 100 commits this regression appeared:
http://www.mediafire.com/download/aj...bisect_test.7z
I also included the git hash in the directory names so we know what the exact commits are.
Thanks for building these. r1727 and r1770 are OK, everything above (r1779, 1783, ...) is not.

A script for quickly checking if the dll exhibits the "fps deterioration":
Code:
SetMemoryMax(1024)
colorbars(width = 640, height = 480, pixel_type = "yv12").killaudio().assumefps(25, 1).trim(0, 49999)
AssumeTFF()
QTGMC(Preset="Super Fast")
Running this through AVSMeter you'll see after 3000~5000 frames whether the FPS is stable or not.

Last edited by Groucho2004; 31st August 2015 at 22:01.
Groucho2004 is offline  
Old 31st August 2015, 01:16   #1239  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,268
Quote:
Originally Posted by Groucho2004 View Post
Thanks for building these. r1727 and r1770 are OK, everything above (r1779, 1783, ...) is not.
Okay, that narrows it down to 13 commits that need to be checked. Better yet is that some of them are clearly not related to this at all, and some of the others only have to do with how filters register themselves as MT or in naming (which probably wouldn't be causing any issues with speed drops after the script starts). Which only really leaves 4 that are highly suspect, and they're all together:
Code:
c4972da Fix leaking subframes.
b361e59 Fix #37 by not using filter instances to get their MT mode.
422aae8 At least avoid leaking the VFBs when plugin or host is leaking.
3cb1122 Report invalid param of SelectEvery to user.
I strongly suspect it's either 422aae8 or c4972da that's doing it. Of course, those commits look like they're supposed to fix leaks in the core, so it's either doing it too aggressively, or it may even actually be exposing leaks in the plugins QTGMC uses.
qyot27 is offline  
Old 31st August 2015, 03:37   #1240  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,268
Round 2:
http://www.mediafire.com/download/f2...test_round2.7z

This has builds of the four commits I mentioned in the last post.
qyot27 is offline  
Closed Thread

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 14:16.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.