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. |
2nd June 2016, 14:08 | #1701 | Link | |
Registered User
Join Date: Mar 2012
Location: Texas
Posts: 1,666
|
Problems with MT and crt_display
A while back NightSprinter reportred this problem with crt_display while using MT.
Quote:
Code:
Import("MTModes.avsi") Import("crt_display.avsi") SetFilterMTMode("DEFAULT_MT_MODE", 2) ColorBars() Trim(0,500) ar = 10.0 / 11.0 crt_display (2*ar, 2, ppp=1*ar, blurh=2.0) Prefetch(4) |
|
3rd June 2016, 09:08 | #1702 | Link |
Registered User
Join Date: Oct 2002
Location: France
Posts: 2,316
|
Question about the multi-threading parts.
In case filter is MT_NICE, or MT_MULTI_INSTANCE. Especialy for this last case, are the multiple instances of the filter real different instances, or should i worry about eventualy copy constructor issues ? |
3rd June 2016, 09:31 | #1703 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Strange.
O.K. (Default MT = 3 + Eval + Function Call) Code:
SetFilterMTMode("DEFAULT_MT_MODE", 3) ColorBars() Trim(0,2500) test() Prefetch(1) Function test(clip src) { src r = ShowRed ("Y8") g = ShowGreen ("Y8") b = ShowBlue ("Y8") Eval("Interleave (r, g, b)") } # I dont' know what 'r' means Code:
SetFilterMTMode("DEFAULT_MT_MODE", 2) ColorBars() Trim(0,2500) test() Prefetch(1) Function test(clip src) { src r = ShowRed ("Y8") g = ShowGreen ("Y8") b = ShowBlue ("Y8") Eval("Interleave (r, g, b)") } Code:
SetFilterMTMode("DEFAULT_MT_MODE", 2) ColorBars() Trim(0,2500) test() Prefetch(1) Function test(clip src) { src r = ShowRed ("Y8") g = ShowGreen ("Y8") b = ShowBlue ("Y8") #Eval("Interleave (r, g, b)") Interleave (r, g, b) # ok } Code:
SetFilterMTMode("DEFAULT_MT_MODE", 2) ColorBars() Trim(0,2500) #test() r = ShowRed ("Y8") g = ShowGreen ("Y8") b = ShowBlue ("Y8") Eval("Interleave (r, g, b)") Prefetch(1) |
3rd June 2016, 23:18 | #1705 | Link | |
Registered User
Join Date: Feb 2004
Location: NYC
Posts: 124
|
1080i/color matrix operations ctd.
Quote:
Four passes:
A few observations:
Last edited by bilditup1; 3rd June 2016 at 23:24. Reason: elaborated a bit |
|
3rd June 2016, 23:46 | #1706 | Link | |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
Quote:
|
|
3rd June 2016, 23:50 | #1707 | Link | |
Registered User
Join Date: Feb 2004
Location: NYC
Posts: 124
|
Quote:
|
|
4th June 2016, 00:24 | #1709 | Link |
Registered User
Join Date: Feb 2004
Location: NYC
Posts: 124
|
I have only vague suspicions though. If this is a stability issue I have not seen other symptoms. BOINC runs all the time without errors, programs open the way they should, no BSoDs or random restarts. I included that disclaimer for completion's sake.
|
4th June 2016, 01:49 | #1710 | Link | |
Registered User
Join Date: Mar 2009
Posts: 3,650
|
Quote:
That doesn't matter.. Instability can often go unseen. Go back to defaults and retest. Last edited by ryrynz; 4th June 2016 at 01:52. |
|
4th June 2016, 03:12 | #1711 | Link | |
Registered User
Join Date: Feb 2004
Location: NYC
Posts: 124
|
Quote:
I will also split off the rest of this discussion to its own thread. Not here to make trouble - just trying to make a positive contribution. |
|
4th June 2016, 16:21 | #1712 | Link |
Soul Architect
Join Date: Apr 2014
Posts: 2,559
|
Ever since I added Dither Tools in this script, sometimes it works and sometimes it crashes the encoder or MPC-HC or freezes VirtualDub.
I tried running the same under AviSynth 2.6 MT and opened it 10-15 times without any crash or freeze. I'm guessing the most likely cause is a difference in MT modes for one of the DitherTools filters. Code:
P="Encoder\" Import(P+"AviSynthMT.avsi") LoadPlugin(P+"LSMASHSource.dll") LoadPlugin(P+"Dither.dll") Import(P+"Dither.avsi") LoadPlugin(P+"KNLMeansCL.dll") LoadPlugin(P+"svpflow1.dll") LoadPlugin(P+"svpflow2.dll") Import(P+"InterFrame2.avsi") Import(P+"ResizeX.avsi") LoadPlugin(P+"Shaders\Shader.dll") Import(P+"Shaders\Shader.avsi") file="VCD.mpg" LWLibavVideoSource(file, cache=False, threads=1) AudioDub(LWLibavAudioSource(file, cache=False)) Crop(0, 0, -8, -0) Dither_convert_8_to_16() Dither_resize16(Width, Height/2, kernel="Spline36", csp="YV24") KNLMeansCL(D=1, A=2, h=2.1, cmode=true, device_type="GPU", device_id=0, lsb_inout=true) SuperResXBR(5, 1, 0.15, XbrStr=2.7, XbrSharp=1.3, MatrixIn="601", lsb_in=true, lsb_out=true) Dither_resize16(Width, Height/2, kernel="Spline36", csp="YV12", invks=true) DitherPost() InterFrame(Cores=8, Tuning="Smooth", NewNum=60, NewDen=1, GPU=true) SuperResXBR(3, 1, 0.15, XbrStr=2.7, XbrSharp=1.3, fWidth=1012, fHeight=778, fKernel="Bicubic", fB=0, fC=.75) ResizeX(1004, 768, 0, 5, -8, -5) Prefetch(8) |
4th June 2016, 16:46 | #1713 | Link |
Soul Architect
Join Date: Apr 2014
Posts: 2,559
|
I have set all DitherTools functions to MT mode 2. The first time I opened it, it freezed again, but afterwards I couldn't get it to freeze again. Dither Tools will require more testing for its MT compatibility/stability level.
By the way, at the top of the MT modes list, there should be a link to where the list actually came from and how to update it. When I want to refer changes about it, I don't even remember where it came from and who wrote it. |
4th June 2016, 18:53 | #1714 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
This "I dont' know what 'r' means" is not an easy bug hunt.
At least now I know how to reproduce it. All these conditions must be me met:
There were quite a few permutations of these possible cases. Sample scripts. Fail. "I dont' know what 'r' means" Eval MT mode 2 + function call + last filter in Eval is non cacheable and NICE_FILTER (Interleave) Code:
SetFilterMTMode("Eval", 2) #or SetFilterMTMode("DEFAULT_MT_MODE", 2) ColorBars() Trim(0,2500) test() Prefetch(1) Function test(clip src) { src r = ShowRed ("Y8") g = ShowGreen ("Y8") b = ShowBlue ("Y8") Eval("Interleave (r, g, b)") } Code:
SetFilterMTMode("Eval", 2) #or SetFilterMTMode("DEFAULT_MT_MODE", 2) ColorBars() Trim(0,2500) test() Prefetch(1) Function test(clip src) { src r = ShowRed ("Y8") g = ShowGreen ("Y8") b = ShowBlue ("Y8") Eval("a=Interleave (r, g, b) StackVertical(a,a)") } Code:
SetFilterMTMode("Eval", 1) ColorBars() Trim(0,2500) test() Prefetch(1) Function test(clip src) { src r = ShowRed ("Y8") g = ShowGreen ("Y8") b = ShowBlue ("Y8") Eval("Interleave (r, g, b)") } |
4th June 2016, 18:58 | #1715 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Quote:
|
|
4th June 2016, 19:47 | #1716 | Link | |
Registered User
Join Date: Mar 2012
Location: Texas
Posts: 1,666
|
Quote:
This works, but if I change SMDegrain() to SMDegrain(globals=1) I get "I don't know what 'bv2' means". I do not know how to reproduce this without SMDegrain but if I find an alternative I'll let you know. Code:
ColorBars(pixel_type="YV12") SMDegrain () |
|
5th June 2016, 08:33 | #1719 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Setting one filter to a stricter MT mode affects the timing and parallel execution conditions of the other filters in the chain, too. So unfortunately you cannot say that DitherPost is culprit. We can only state that bottlenecking MT at DitherPost solves this problem.
|
6th June 2016, 13:33 | #1720 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Quote:
bv2 is a variable that a former processing phase outputs as global You have to run a first phase in order to bv2 and the other variables exist. Code:
ColorBars(pixel_type="YV12") SMDegrain (globals=3) # 3 - Output globals only, don't process SMDegrain (globals=1) # 1 - Read globals and Process |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|