Log in

View Full Version : Avisynth 2.6 MT


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22

Overdrive80
15th January 2013, 03:24
With last mt avisynth I have troubles to use masktools2. I know that its not trouble of your dll, but could do .dll for avisynth alpha4 with retrocompatibility according to version of date:2012.05.16?

Thanks in advance.

SEt
17th January 2013, 18:35
I won't do extra compatibility builds – no one forces you to upgrade, but don't expect any new featured then either.
You want to upgrade – it's time to solve the problems. I'd prefer updated masktools2 to special build of Avisynth.

Expect updated MT version in some days, I'm quite busy atm.

Overdrive80
17th January 2013, 19:47
I'd prefer updated masktools2 to special build of Avisynth.


Totally agree with you, but Masktools2 hasnt been updated from 2010; for this reason I request this.

Thanks for your answer.

SEt
17th January 2013, 19:49
Masktools2 is open source, so it's not like we can't do minor bugfix for it.

Overdrive80
18th January 2013, 00:31
Masktools2 is open source, so it's not like we can't do minor bugfix for it.

All right, I hope someone who knows how to do it can fix these problems. ^^

tormento
22nd January 2013, 07:43
Set, do you plan to try an alpha4 compile?

FLauBerT
30th January 2013, 13:37
"SetMTMode" SeeSaw does not work. XviD is not a problem, but it does not work at x264. Saving work in "Megui has stopped working" error. Every time you go. MT (parameters) as the between 65-80% When using the processor uses the x264 and I'm having a serious waste of time. Processor Intel Corei5 2300. Waiting for your reply. :)

Selur
30th January 2013, 13:58
"SetMTMode" SeeSaw does not work. XviD is not a problem, but it does not work at x264.
sounds like you are running out of memory, try to lower the lookahead values in x264

SubJunk
30th January 2013, 23:31
Try setting SetMemoryMax to lower. Between 400 and 700 is most stable for me.

FLauBerT
30th January 2013, 23:59
Try setting SetMemoryMax to lower. Between 400 and 700 is most stable for me.

Create and save the script in error when I say "stopped working Megui" he says. A problem that occurs only in SeeSaw. SetMTMode scripts (4,4) using the form. A denoise a debanding and using degrain filter. Waiting for your answers.

Porsche_fan
19th February 2013, 01:20
I’m having problems running the following script in ffdshow + MPC-HC.

SetMemoryMax(1024)
SetMTMode(3)
ffdshow_source()
SetMTMode(2)
FineSharp(sstr=2.5)
SetMTMode(1)
GetMTMode(false) > 0 ? distributor() : last

After a lot of effort, I used subtitle(string(GetMTMode)) to determine GetMTMode(false) returns "0". So I can get the script to work by changing the last line to...

GetMTMode(false) >= 0 ? distributor() : last

The modified script with the mode=0 is a little unstable but that may be related to other variables like SetMemoryMax. Any idea why Mode is "0" despite setting it to "1" in the previous line?

Here are my ffdshow settings

http://thumbnails106.imagebam.com/23802/6f6f45238019517.jpg (http://www.imagebam.com/image/6f6f45238019517)


I recently uninstalled 2.5.8 and replaced it with AVS 2.6.0 Alpha 4 [130114] initially then uninstalled and currently running AVS 2.6.0 Alpha 3 [110525] with 2012.08.28 2.6 MT.

One other question, I've read somewhere else that SEt's avisynth.dll should be placed in the ffdshow folder but I don't think that is correct. Currently there is no avisynth.dll or ffavisynth.dll in my ffdshow folder...is this the correct installation procedure?

Running Windows 7 64 on a i7 860.

Groucho2004
19th February 2013, 01:39
I’m having problems running the following script in ffdshow + MPC-HC.

SetMemoryMax(1024)
SetMTMode(3)
ffdshow_source()
SetMTMode(2)
FineSharp(sstr=2.5)
SetMTMode(1)
GetMTMode(false) > 0 ? distributor() : last

After a lot of effort, I used subtitle(string(GetMTMode)) to determine GetMTMode(false) returns "0". So I can get the script to work by changing the last line to...

GetMTMode(false) >= 0 ? distributor() : last

The modified script with the mode=0 is a little unstable but that may be related to other variables like SetMemoryMax. Any idea why Mode is "0" despite setting it to "1" in the previous line?

Here are my ffdshow settings

http://thumbnails106.imagebam.com/23802/6f6f45238019517.jpg (http://www.imagebam.com/image/6f6f45238019517)


I recently uninstalled 2.5.8 and replaced it with AVS 2.6.0 Alpha 4 [130114] initially then uninstalled and currently running AVS 2.6.0 Alpha 3 [110525] with 2012.08.28 2.6 MT.

One other question, I've read somewhere else that SEt's avisynth.dll should be placed in the ffdshow folder but I don't think that is correct. Currently there is no avisynth.dll or ffavisynth.dll in my ffdshow folder...is this the correct installation procedure?

Running Windows 7 64 on a i7 860.

1. You're running a single threaded version of Avisynth, that's why GetMTMode() is returning "0".

2. If you're using MPC-HC, you should not be using "Distibutor()" at all, the call is added automatically. So, if you are using Avisynth MT you are unnecessarily increasing the number of threads.

3. "SetMTMode(1)" in your script. Why?

4. The file avisynth.dll (any) should ideally be placed in the Windows or Windows/System32 (sysWOW64 on 64 bit Windows) directory, read the first post in this thread!

Porsche_fan
19th February 2013, 03:17
Thanks Groucho2004...I appreciate your reply!

I did read the first post of this thread multiple times and tried to follow it as best as I understood it. I think possibly my last question was misleading. The reason I asked about placing the MT version of avisynth.dll in the ffdshow folder is I read the following from another doom9 member who described one of the steps to setting up 2.6 MT with ffdshow as "- get avisynth 2.6 mt dll and put it in ffdshow directory". As I stated in my first post, I don't think the advice is correct but was asking.


1. You're running a single threaded version of Avisynth, that's why GetMTMode() is returning "0".

4. The file avisynth.dll (any) should ideally be placed in the Windows or Windows/System32 (sysWOW64 on 64 bit Windows) directory, read the first post in this thread!

As mentioned I am able to get multi-threading to work after modifing the script to GetMTMode(false) >= 0 ? distributor() : last. So based on this I believe I am running a MT version of avisynth.

However, I realize that mode=0 indicates the state of no multi-threading so possibly what you said has some truth. From the instructions I did the following...installed AVS 2.6.0 Alpha 3 [110525] (http://sourceforge.net/projects/avisynth2/files/AviSynth_Alpha_Releases/) then moved the avisynth.dll file from 2012.08.28 (http://www.mediafire.com/file/4dm34kc7tug7rrk/avisynth.7z) into syswow64 replacing existing avisynth.dll from the initial installation. If I did this incorrectly what should I have done?


2. If you're using MPC-HC, you should not be using "Distibutor()" at all, the call is added automatically. So, if you are using Avisynth MT you are unnecessarily increasing the number of threads.

3. "SetMTMode(1)" in your script. Why?

I have tried it without the distributor() call but couldn't get multi-threading to work with ffdshow in MPC-HC until it was added.

The reason I use the SetMTMode(1) and distributor() is because SEt said it was necessary on the first post of this thread and also in this post (http://forum.doom9.org/showthread.php?p=1351603).

Appreciate the help!

Groucho2004
19th February 2013, 03:34
From the instructions I did the following...installed AVS 2.6.0 Alpha 3 [110525] (http://sourceforge.net/projects/avisynth2/files/AviSynth_Alpha_Releases/) then moved the avisynth.dll file from 2012.08.28 (http://www.mediafire.com/file/4dm34kc7tug7rrk/avisynth.7z) into syswow64 replacing existing avisynth.dll from the initial installation. If I did this incorrectly what should I have done?
That sounds right to me.

The reason I use the SetMTMode(1) and distributor() is because SEt said it was necessary on the first post of this thread and also in this post (http://forum.doom9.org/showthread.php?p=1351603).
In that case ignore points 2. and 3. from my previous post. I have little experience with ffdshow so maybe someone else may be more helpful.

Either way, if GetMTMode() from your script returns "0", you are not using the correct (MT) Avisynth DLL. Make sure there is only one avisynth.dll on your system (in your syswow64 directory).

Edit: Do you really need Avisynth MT for FineSharp? As far as I know, it's quite fast.

Porsche_fan
19th February 2013, 06:12
Do you really need Avisynth MT for FineSharp? As far as I know, it's quite fast.

I agree I find my experience using singled threaded FineShap puzzling as you are right it is pretty fast. I always resize everything prior to applying FineSharp so that is an added factor.

DVD playback while using avisynth spline64 resizing before FineSharp has been trouble free. However, I have had differening results using FineSharp single threading with x.264 720/1080p with some instances of audio and video desynching. Desyncing seems to usually occur with x.264 encoded 720p @30fps...so far 24fps hasn't been an issue.

In some cases I've been able to solve the desync problem by having ffdshow decode but I prefer using the MPC AVC codec. I know ffdshow is suppose to be less CPU intensive when decoding but I can't think it should make that big a difference given the i7 processor.

I also had a strange issue with AVC in an avi container that had sync issues but it was fixed when I put it in a mkv container. Anyways, I've found that 2.6 MT allows the overhead/flexibility to use any codec without desync.

The really odd part to me is the graph pattern with or without multi-threading is the same in resource monitor for my i7 860 @2.8Ghz. In both cases 4 cores are parked and the other 4 cores that are active distribute the load equally and are at about 40% utilization. It could be that I have an issue with the way my computer is set up to process information. Would be interested in others thoughts.

EDIT: Don't know if this is the same for everyone else but after I uninstalled 2.5.8 I deleted the remaining folder labeled "AviSynth 2.5". I then installed 2.6 Alpha 3 but the new AviSynth 2.6 program is in a folder in Program Files (86) still labeled "AviSynth 2.5" not "AviSynth 2.6". I did use Version() to verify it is the 2.6 Alpha 3 build.

LigH
19th February 2013, 07:58
Some extremely annoying semi-freeware converters (ERightSoft SUPER, FormatFactory) are able to bend the hook to an own copy of an AviSynth DLL. But I believe the repeated re-installation of AviSynth versions should have repaired it, if that was a possible reason; still, better scan all your harddisk partitions for any copy.

ryrynz
19th February 2013, 09:55
Do not use SetMTMode(3). Use SetMTMode(3,4)!
mt_lutxy, mt_lut, FFmpegSource use a lot of memory. 8 threads will eat your memory faster.

Also 8 threads on i7 is useless. You will get slow execution, because most time the processor
will switch threads and wait for spin locks.

I use GraphstudioNext to benchmark my scripts (Psharpen, Awarpsharp, Vaguedenoiser etc) and on my 2600K with Hyperthreading I get a considerable performance improvement having 8 threads over 4.
My recommendation would be to test this for yourself.

CraziFuzzy
19th February 2013, 16:31
How close are you to rolling out an MT version of 2.6 Beta-4?

LigH
19th February 2013, 16:52
Last asked in #607 (http://forum.doom9.org/showthread.php?p=1612236#post1612236); no reply from SEt yet.

SEt
20th February 2013, 00:31
It took longer than I expected, but here we go – updated version. Can't say I've tested everything, so let's keep 'stable' status on previous one for some time.

rean, please don't write nonsense. i7-930 with 8 threads is my work environment for the last 3 years and so you can say "native mode" of these builds. Also, if you are doing things right, FFmpegSource will consume exactly the same amount of memory regardless of number of threads used.

LigH
20th February 2013, 08:52
... but here we go – updated version.

http://cosgan.de/images/smilie/froehlich/e035.gif (http://www.cosgan.de/smilie.php)

I will immediately get you a bunch of german-speaking testers!

ryrynz
20th February 2013, 09:46
Latest build is stable for me, cheers SEt.

SEt
20th February 2013, 15:03
rean, that you personally have problems is valid statement. But On i7 you will always get crashes. Do not use SetMTMode(3). Use SetMTMode(3,4)! is nonsense.

forclip
20th February 2013, 18:55
Do we need to recompile something again or is it a bug:


Cache: Filter returned invalid response to CACHE_GETCHILD_CACHE_MODE. 198139200


And so on (with different digits at the end). But only with this build, not with the build by IanB (14.01.2013).

I know I must provide more info, but it's quite hard to do as I'm not an expert in all those plugins, just noticed that in my application all (or mostly all) filtering presets is broken with this build. Deinterlacing with QTGMC() for example:

Cache: Filter returned invalid response to CACHE_GETCHILD_CACHE_MODE. 129064256
(D:\Program Files\Winnydows\XviD4PSP5\dlls\AviSynth\plugins\QTGMC.avs, line 776)
(D:\Program Files\Winnydows\XviD4PSP5\dlls\AviSynth\plugins\QTGMC.avs, line 386)

line 776:
diff = mt_makediff( Ref, Input, U=3,V=3 )

line 386
repair0 = (IsClip(srchClip) || Rep0 == 0) ? binomial0 : binomial0.QTGMC_KeepOnlyBobShimmerFixes( bobbed, Rep0, (RepChroma && ChromaMotion) )

LigH
21st February 2013, 08:07
QTGMC is certainly a useful monster of testing script... :D

Are these already "fatal" error messages, or may it be useful to have DebugView running while testing?

forclip
21st February 2013, 11:12
Seems like false alarm :)

mt_masktools-26.dll 2.0.48.0 944Kb (966 656 bytes) - was the problem. It is something old that claims to be compatible with AviSynth 2.6, but in reality it uses AvisynthPluginInit2. Works fine after replacing it with another build that uses AvisynthPluginInit3 and avisynth.h somewhere from the summer of 2012 (i.e. after the "new-new" interface was introduced).

But another part of my question is still valid: do we need to recompile everything again using recent avisynth.h or not? I see that avisynth.h in DirectShowSource isn't updated, so may I guess that all this new caching features currently not used in existing plugins and it is not neccessary to recompile them?

invy
21st February 2013, 12:24
! C:\Users\v\AppData\Local\Temp\avisynth_20130220.7z: Unknown method in avisynth.dll
! C:\Users\v\AppData\Local\Temp\avisynth_20130220.7z: Error - operation failed


Winrar message ^^

LigH
21st February 2013, 12:43
Your 7-zip DLL used in WinRAR may be outdated (the file is compressed with LZMA2, available since v9.04); use a current 7-zip:

http://www.7-zip.org
http://sourceforge.net/projects/sevenzip

invy
21st February 2013, 12:58
Yeah I googled it pretty easily right after posting. Problem solved after updating to latest version.

Just a heads up to anyone dumb/lazy like me that still was using a Winrar version from 2007! (3.71) :)

forclip
21st February 2013, 20:29
Do you mean mt masktool is not compatible with this Avisynth build?
I'm talking only about mt_masktools-26.dll. And yes, it isn't compatible with current AviSynth MT, but not with the latest official non-MT (aka Alpha4). I don't know why. The code can be simplified to something like this:


LoadPlugin("......\mt_masktools-26.dll")

ColorBars(pixel_type="YV12")
mt_average(last)

=

Cache: Filter returned invalid response to CACHE_GETCHILD_CACHE_MODE. 136600896

Overdrive80
21st February 2013, 23:07
Just checked - yes. I got this error, too. Previous stable version works.

Its issue known, its necessary that should be fixed in mt_masktools_26.dll.

http://forum.doom9.org/showthread.php?p=1589904#post1589904

http://forum.doom9.org/showthread.php?p=1589960#post1589960

http://forum.doom9.org/showthread.php?p=1610927#post1610927

SEt
22nd February 2013, 10:36
forclip, I get exactly the same error from official Alpha4. Actually, without MTMode my build should behave exactly like official. MTMode changes several things, so there can be problems (but here turning on MTMode actually makes it work with no error).

About recompiling: I suggest using 2.5 interfaces (unless you need something 2.6-specific) – this way you don't need to recompile each time. But if you are using 2.6 interfaces – be ready to recompile as official interfaces are changing.

blindbox
23rd February 2013, 01:52
The download links are down. Mediafire should no longer be used, apparently. Anyone has a mirror?

SEt
23rd February 2013, 02:43
I never thought Mediafire became this bad. Written them all I think about their quality, but don't expect any improvements. I'm open for suggestions of stable public (not personal) hosting (in PM).

Uploaded the archive as attachments to first post.

Well, I can say attachment rules here are also awful: not only attachments require approval, but also extremely limited in variants. Why the archive must be <= 200k? Oh and useless zips are somehow at premium and allowed 300k. More than that: it refuses 'multivolume' 7z in form name.7z.001 . These limits make absolutely no sense as all they do is prevent me from using the most compact format.

tormento
23rd February 2013, 11:29
SEt: dropbox or skydrive? You can make a public link.

LigH
23rd February 2013, 13:38
Here is a little backup (http://forum.gleitz.info/showthread.php?46165-AviSynth-2-60a4-MT-von-SEt&p=435017&viewfull=1#post435017) of mine; just repacked with optimal compression.

SEt
23rd February 2013, 22:42
Updated first post to Dropbox links. Report if you have any problems with it.

IanB
25th February 2013, 22:10
@rean,

Every thread that interacts with COM must initialise COM, you have rogue threads using the COM environment.

Try COINIT_APARTMENTTHREADED, it adds an protection apartment that may get you around the problem.

SEt
26th February 2013, 21:27
First of all you are using MTMode wrong: the lineGetMTMode(false)>0 ? Distributor() : lastis special hack for FFDShow and must not be used when you use Avisynth the regular way by opening avs script.

If you'd still get crashes without that line, my initial guess is that Ut Video codec does something wrong as I see no crashes with FFV1 also. Try to test with different codecs.

SEt
9th March 2013, 10:51
New build – updated to cvs.

06_taro
9th March 2013, 10:52
A minor updated build of mt_masktools-26.dll for 2.60alpha4's latest interface (current cvs 2013-03-09):
mt_masktools-26-for-2.6alpha4.7z (http://tmod.nmm-hd.org/Misc/mt_masktools-26-for-2.6alpha4.7z)

Patch (on top of Vit (http://forum.doom9.org/showthread.php?p=1568142#post1568142)'s 2.6 fixed one) included.

forclip
9th March 2013, 13:13
New build – updated to cvs.
Thanks!

Overdrive80
12th March 2013, 18:59
A minor updated build of mt_masktools-26.dll for 2.60alpha4's latest interface (current cvs 2013-03-09):
mt_masktools-26-for-2.6alpha4.7z (http://tmod.nmm-hd.org/Misc/mt_masktools-26-for-2.6alpha4.7z)

Patch (on top of Vit (http://forum.doom9.org/showthread.php?p=1568142#post1568142)'s 2.6 fixed one) included.

Thanks very much

radigast
13th March 2013, 17:07
A minor updated build of mt_masktools-26.dll for 2.60alpha4's latest interface (current cvs 2013-03-09):
mt_masktools-26-for-2.6alpha4.7z (http://tmod.nmm-hd.org/Misc/mt_masktools-26-for-2.6alpha4.7z)

Patch (on top of Vit (http://forum.doom9.org/showthread.php?p=1568142#post1568142)'s 2.6 fixed one) included.Was this build specifically made for QTGMC compatibility? I still get access violations when opening an .avs script that calls QTGMC (v. 3.33) using this modded mt_masktools with AviSynth 2.6.0 Alpha 4 and SEt's most recent avisynth MT (013.03.09). Reverting to avisynth MT (2012.05.16) fixes the problem.

06_taro
14th March 2013, 02:59
What is your QTGMC setting?
With default settings it works for me with both official alpha4 and SEt's latest MT version:
http://s21.postimage.org/zba6a3t1x/possibility.png (http://postimage.org/image/qt0q5rmj7/)

Also note that although the plugin was built by VS2012 with v110_xp profile, the huge boost libraries were built soon after my initial installation of VS2012 without update1 and I didn't recompile them with the new profile, so I cannot guarantee its capability on Win XP.

Edit: I managed to catch the access violations by using other Vit's old 2.6 fixed plugins. I was using 2.5 version of them except for masktools2, so I only updated it and didn't notice the same issue with other plugins. Then I recompiled some of them with the new interface and now they worked again. However, I don't think it makes sense to do so, because AFAIK none of those dependencies supports 2.6's new colorspace except for masktools2 and AddGrainC, and fortunately the latest version of the latter (1.7.0) does not need to be recompiled. So I prefer to keep using 2.5 version of the rest plugins instead of risking myself for unrevealed bugs during conversion to the new interface.

LigH
14th March 2013, 14:57
3 - one filter instance per call in script, Avisynth guards requests for output. The mode to use with source filters. (Mode 5 will do for them too, but is overkill and should be avoided.)

Okay, sounds reasonable together with the warning on the AviSynth MT support page (http://avisynth.org/mediawiki/MT_support_page):

Mode 5 is the slowest (slower than not using SetMTMode) but should work with all filters that don't require linear frameserving (that is the frames come in order: frame 0,1,2,...,last).

:o

Now there is this rumour that DGSource() in DGDecNV may require Mode 5.

Any comments to explain this opinion?

There are MT modes explained (http://avisynth.org/mediawiki/MT_modes_explained) in detail only up to Mode 2.
__

P.S.:

DGSource appears to work in Mode 3 without crashing; at least in a trivial script. May there be risks with more complex scripts with broader temporal windows?

Furthermore, AviSynth 2.60a4 appears to use a lot less memory in MT mode than in non-MT mode.

See: Post in the german doom9/Gleitz board (http://forum.gleitz.info/showthread.php?45902&p=435516#post435516)

radigast
16th March 2013, 06:32
What is your QTGMC setting?SetMemoryMax(1500)
SetMTMode(3,6)
LoadPlugin("C:\Program Files (x86)\Encoding Tools\Video\MeGUI\tools\avs\directshowsource.dll")
DirectShowSource("E:\...Source.mkv", fps=25.000, audio=false, convertfps=false)
crop(240, 0, -240, 0)
Spline64Resize(960,1080) # Spline64 (Sharp)
SetMTMode(2)
QTGMC(Preset="Slower",FPSDivisor=2,EdiThreads=6)
SetMTMode(3)
Spline64Resize(960,720) # Spline64 (Sharp)

I managed to catch the access violations by using other Vit's old 2.6 fixed pluginsThat was the problem. I was using Vit's 2.6 plugins. As the avisynth from 2012.05.16 runs QTGMC stable with Vit's 2.6 plugins and the above script, I'm not too worried about using the newest avisynth and reverting to Vit's 2.5 plugins. Thanks for the response and problem identification, though.

Edit: And, yeah, DirectShowSource sucks, but I can't be arsed to index the files...

Selur
17th March 2013, 15:19
but I can't be arsed to index the files...
You could try LWLibavVideoSource, which uses libav and allows to use it without indexing (if you set cache = false)

zerowalker
17th March 2013, 21:39
I get the error:

nnedi3: arg 0 must be a clip!
(QTGMC-3.32.avsi, line 721)
(QTGMC-3.32.avsi, line 510)

When i use Avisynth 2.6 later then 2012.05.16 i think.

Tried searching on it, but i can´t find anyone else who got it, atleast not in english.

bennynihon
20th March 2013, 22:57
Using SEt's latest Avisynth 2.6 MT and Masktools 2.0a48, I'm having an issue with frames being processed out of order when I enable MT via SetMTMode. In my output video (encoded by x264), I'll occasionally see a few interchanged frames which is noticeable as jumpiness in the output clip. When I comment out the SetMTMode lines, the issue disappears. I have tried mt_masktools-25.dll, mt_masktools-26.dll (both 2.0a48 and the for2.6alpha4 build) with Avisynth 2.6 MT, and mt_masktools-25-x64.dll and mt_masktools-26-x64.dll with SEt's 64-bit Avisynth as well. I've pretty much tried all permutations with MT enabled and the restults are the same. Occasional (a few every minute) frames being processed out of order. Not sure if this is an interaction between FFmpegSource2 and Masktools in Multithreaded mode. It also appears limited to the MAnalyse, motion compensation type filters with forward and backward motion vectors.

My clip is something as simple as this:

# Video Source
SetMemoryMax(1024)
SetMTMode(3)
FFVideoSource("e:\mymovie.mkv")

SetMTMode(2)
# Crop to 1920x800 (2.40:1 AR)
vSrc=Crop(0,140,0,-140)

# Degrain
bs = 16
super = vSrc.MSuper(pel=2, sharp=1)
bvec2 = MAnalyse(super, isb = true, delta = 2, blksize=bs, overlap=bs/2)
bvec1 = MAnalyse(super, isb = true, delta = 1, blksize=bs, overlap=bs/2)
fvec1 = MAnalyse(super, isb = false, delta = 1, blksize=bs, overlap=bs/2)
fvec2 = MAnalyse(super, isb = false, delta = 2, blksize=bs, overlap=bs/2)
vSrc.MDegrain2(super,bvec1,fvec1,bvec2,fvec2)