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

Reply
 
Thread Tools Search this Thread Display Modes
Old 10th March 2017, 23:07   #3121  |  Link
Groucho2004
 
Join Date: Mar 2006
Posts: 3,712
@pinterf
I noticed that in cpuid.cpp the reported CPU features (AVX, FMA) depend on CPU and OS support. So, if I run "Info()" on XP for example, these new extensions will be hidden even though the CPU has them.
In "Info()", it says "CPU detected:" so is it not a bit misleading? With the OS conditional, should it not rather read something like "CPU features supported by OS"?
Groucho2004 is offline   Reply With Quote
Old 11th March 2017, 05:52   #3122  |  Link
tuanden0
Registered User
 
Join Date: Oct 2016
Posts: 69
@pinterf

Quote:
- New MT mode: MT_SPECIAL_MT. Specify it for MP_Pipeline like filters, even if no Prefetch is used (MP_Pipeline issue, 2 fps instead of 20)
Can you give me an example or document for this?
tuanden0 is offline   Reply With Quote
Old 11th March 2017, 06:55   #3123  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 964
Quote:
Originally Posted by tuanden0 View Post
@pinterf
Can you give me an example or document for this?
SetFilterMtMode("MP_Pipeline",MT_SPECIAL_MT)
pinterf is offline   Reply With Quote
Old 11th March 2017, 07:29   #3124  |  Link
ryrynz
Registered User
 
ryrynz's Avatar
 
Join Date: Mar 2009
Posts: 2,779
Can you list a few MP_Pipeline like filters please?
ryrynz is offline   Reply With Quote
Old 11th March 2017, 07:31   #3125  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 964
Quote:
Originally Posted by Groucho2004 View Post
@pinterf
I noticed that in cpuid.cpp the reported CPU features (AVX, FMA) depend on CPU and OS support. So, if I run "Info()" on XP for example, these new extensions will be hidden even though the CPU has them.
In "Info()", it says "CPU detected:" so is it not a bit misleading? With the OS conditional, should it not rather read something like "CPU features supported by OS"?
The text now is simply "CPU:", I have made it shorter, there is only a little place, I wanted to fit the feature list in 300-400 pixels wide, which is hard when the capabilities include FMA3, AVX2, etc.

Possible AVX512 extensions are listed in a second line however, there is quite a few of them.

XP users in 2017, well, they know what they do I don't want to warn them in Info() that AVX or better requires a decent OS
pinterf is offline   Reply With Quote
Old 11th March 2017, 07:56   #3126  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 964
Quote:
Originally Posted by ryrynz View Post
Can you list a few MP_Pipeline like filters please?
No, I don't know yet similar filters like MP_Pipeline, but I did not know it either, before the issue had been reported.
Similar filters:
Behaving as source filters because they have no input clip parameter.
Unlike regular source filters, they are internally starting processes in multiple script environments (?)

Unfortunately this mt thing is the most difficult area in avs core, I was not able to understand it 100% (not even near of that) or else I could fix it by rewriting the relevant module.

Basically this option prevents Avisynth core from trying to figure out the effective mt mode of this filter.
I'm not sure that it will work in all situations, but in this specific MP_Pipeline case it works fine.

(When a filter is invoked it may invoke other filters, the core follows the nested invoke list and the effective mt mode is determined by the weakest mt mode, e.g. if there are invokes for filter with an MT_NICE_FILTER and MT_SERIALIZED, the latter will be chosen as the safest mt method. During the process internal MT guard object(s) is(are) created.)

Last edited by pinterf; 11th March 2017 at 07:59.
pinterf is offline   Reply With Quote
Old 11th March 2017, 08:20   #3127  |  Link
burfadel
Registered User
 
Join Date: Aug 2006
Posts: 2,235
Quote:
Originally Posted by pinterf View Post
XP users in 2017, well, they know what they do I don't want to warn them in Info() that AVX or better requires a decent OS
Encoding on XP would be a significant slowdown on AVX and AVX2 machines when compared to running Windows 10, not to mention security and other issues. Also unless they're running 64-bit XP you are limited in RAM, which in turn could impinge on encode rate.

Any reason for using XP on a 'modern' AVX CPU?
burfadel is offline   Reply With Quote
Old 11th March 2017, 09:48   #3128  |  Link
Groucho2004
 
Join Date: Mar 2006
Posts: 3,712
Quote:
Originally Posted by pinterf View Post
XP users in 2017, well, they know what they do I don't want to warn them in Info() that AVX or better requires a decent OS
I know it's mostly semantics and I see your point. However, my opinion is that if you report CPU features, report them all, regardless of OS support
- or -
if you're including OS dependency, phrase it differently like x264 does:
Code:
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
Groucho2004 is offline   Reply With Quote
Old 11th March 2017, 10:00   #3129  |  Link
Groucho2004
 
Join Date: Mar 2006
Posts: 3,712
Quote:
Originally Posted by burfadel View Post
Encoding on XP would be a significant slowdown on AVX and AVX2 machines when compared to running Windows 10, not to mention security and other issues. Also unless they're running 64-bit XP you are limited in RAM, which in turn could impinge on encode rate.

Any reason for using XP on a 'modern' AVX CPU?
I was hoping that this wouldn't turn into another OS argument.
Groucho2004 is offline   Reply With Quote
Old 11th March 2017, 10:38   #3130  |  Link
jmac698
Registered User
 
Join Date: Jan 2006
Posts: 1,860
I just wanted to clear up something. Using avx requires OS support. It seems strange at first, but it's because the os has to save the extra registers so they don't get changed between processes. You could try to use it, but the program would mess up the results.

avx requires win7+ I believe.
jmac698 is offline   Reply With Quote
Old 11th March 2017, 10:40   #3131  |  Link
jmac698
Registered User
 
Join Date: Jan 2006
Posts: 1,860
I have a question, did you derive the exact values for the high bit depth colour bars? I was the one who got them into avisynth in the first place. Especially the -I value requires some sin() calculations.

ConvertToDoubleWidth
was confusing to me, perhaps ConvertToDoubleDepth ?

Last edited by jmac698; 11th March 2017 at 11:06.
jmac698 is offline   Reply With Quote
Old 11th March 2017, 11:17   #3132  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 964
Quote:
Originally Posted by jmac698 View Post
I just wanted to clear up something. Using avx requires OS support. It seems strange at first, but it's because the os has to save the extra registers so they don't get changed between processes. You could try to use it, but the program would mess up the results.

avx requires win7+ I believe.
AVX safe context switching is available from Windows 7 SP1
pinterf is offline   Reply With Quote
Old 11th March 2017, 11:24   #3133  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 964
Quote:
Originally Posted by jmac698 View Post
I have a question, did you derive the exact values for the high bit depth colour bars? I was the one who got them into avisynth in the first place. Especially the -I value requires some sin() calculations.

ConvertToDoubleWidth
was confusing to me, perhaps ConvertToDoubleDepth ?
The values are scaled from the 8 bit constants. Can you help me with that if it is not correct?

DoubleWidth is a compatibility format ("hack"), sometimes called as interleaved. Format is an Avs2.6 compatible 8 bits one, but internally stores 16bit pixels, thats why the reported width is double than the original. Unlike stacked format its internal layout is the same as Avs+'s high bit depth formats.
pinterf is offline   Reply With Quote
Old 12th March 2017, 08:00   #3134  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 964
ConvertBits supports ordered and Floyd-Steinberg dithering.
Latter is new, available from r2440. You can dither down to 1-2-4-6-8..14 bits with parameter dither_bits. For restriction see the readme or the release announcement some posts back. Ordered dither is simd optimized.
pinterf is offline   Reply With Quote
Old 13th March 2017, 14:47   #3135  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 285
I started to use the x64 version now and noticed one thing. It's seems it is impossible to autoload avsi script for both 32 and 64 bit.

Would it be a good idea to implement a seperate "script-autoload-folder" in avs+?
This would also make the plugins plugins folder less cluttered.
__________________
Search and denoise
ChaosKing is offline   Reply With Quote
Old 13th March 2017, 14:54   #3136  |  Link
Groucho2004
 
Join Date: Mar 2006
Posts: 3,712
Quote:
Originally Posted by ChaosKing View Post
I started to use the x64 version now and noticed one thing. It's seems it is impossible to autoload avsi script for both 32 and 64 bit.

Would it be a good idea to implement a seperate "script-autoload-folder" in avs+?
This would also make the plugins plugins folder less cluttered.
Judging by your earlier post today I assume that you're using my Avisynth Version Selector which supports separate plugin directories for 64 and 32 bit by default.
Groucho2004 is offline   Reply With Quote
Old 13th March 2017, 14:59   #3137  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 285
Yes. But I would like to have a shared avs script autoload folder, so I don't need to copy my avsi script in both (32 & 64 bit) folders.

The goal is:
Plugins32
Plugins64
Avs-Scripts (witch can be used by 32 & 64 avisynth) <-- missing yet



Edit:
I just found that there is a AddAutoloadDir() function. Will test it...

Edit2:
ok this is working, but it needs to be placed in the scripts header everytime. I guess I can live with that. But a global extra folder like the plugins folder would still be convenient.

AddAutoloadDir("D:\AvisynthRepository\SCRIPTS")

Sadly it does not work when I put a "scriptlaoder.avsi" with the line above in my plugins folder.
__________________
Search and denoise

Last edited by ChaosKing; 13th March 2017 at 15:21.
ChaosKing is offline   Reply With Quote
Old 13th March 2017, 16:17   #3138  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 992
speaking of that

the autoload folder list order now is

PluginDir+ in Software/Avisynth in HKEY_CURRENT_USER
PluginDir+ in Software/Avisynth in HKEY_LOCAL_MACHINE
PluginDir2_5 in Software/Avisynth in HKEY_CURRENT_USER
PluginDir2_5 in Software/Avisynth in HKEY_LOCAL_MACHINE

why not like this?

PluginDir2_5 in Software/Avisynth in HKEY_LOCAL_MACHINE
PluginDir2_5 in Software/Avisynth in HKEY_CURRENT_USER
PluginDir+ in Software/Avisynth in HKEY_LOCAL_MACHINE
PluginDir+ in Software/Avisynth in HKEY_CURRENT_USER

see here to know why https://forum.doom9.org/showthread.p...35#post1789735
__________________
My Avisynth Stuff
real.finder is offline   Reply With Quote
Old 14th March 2017, 10:14   #3139  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 964
Quote:
Originally Posted by videoFred View Post
Hello everybody,

PS: I have tried the modified AvsPmod v2.5.1 r452 no more error messages , but this version does not like this:
Code:
[Multi Tasking=0]
Prefetch(4)
[/Multi Tasking]
It throws this error message:
"Only one prefetcher...."

But the only prefetch in the script is this one, at the end as it should be and it works fine with AvsPmod v2.5.1.
I realy need the option to switch MT on/off so I can not use AvsPmod r452.
Hi Fred, welcome to Avisynth+! I hope we'll solve your problems.

I have downloaded AvsPMod r452, and toggleing the option is working for me.
However when another Prefetch line is present, the "Only one prefetcher is allower per script" error occurs (as expected)
Code:
[Multi Tasking=1]
Prefetch(4)
[/Multi Tasking]
Prefetch(4)
Can you check that you don't have another Prefetch somewhere else (for example in an imported avsi)?

Last edited by pinterf; 14th March 2017 at 11:52. Reason: typo
pinterf is offline   Reply With Quote
Old 15th March 2017, 00:19   #3140  |  Link
Motenai Yoda
Registered User
 
Motenai Yoda's Avatar
 
Join Date: Jan 2010
Posts: 684
Looks like someone has to add Is400()/IsYXX or mod IsY() to return true with 8+ Y-only clips too.
edit: I mean >8
__________________
powered by Google Translator

Last edited by Motenai Yoda; 15th March 2017 at 21:45.
Motenai Yoda is offline   Reply With Quote
Reply

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 00:01.


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