Log in

View Full Version : fft3dGPU 0.8.2


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

Fizick
10th April 2005, 14:11
LordIntruder,
your comparizon is not quite correct.
I change default overlap width since v.0.9.
(for speed).
3DNow was used previusly by FFTw internally for fft calculation (i think),
now in v.0.91 I add 3DNow for my Wiener calculation. The gain is about 25%.

tsp
11th April 2005, 23:38
I finaly got rid of the memory leaks so now you can F5 as crazy as you want in virtualdub(or use it in conditionalfilter/scriptclip/frameevaluate although I wouldn't recommend that because of the slow initialization).
Maybe this filter is ready for the avisynth usage categorie

MacAddict
12th April 2005, 02:36
Was the block artifact bug fixed mentioned earlier in this thread fixed? I've got an FX5200 using the 71.90 Nvidia driver with XP SP2. I still see 0.42 displaying the blocks. Many thanks for the effort!

vinetu
12th April 2005, 06:41
Just curious - what is the type of the picture where the blocks are best
visible - a gradient ...or a flat colored one?

tsp
12th April 2005, 07:53
vinetu: With mode=0 a sharp(gradient) image would produce the most borderartifacts. A single colored area with the same intensity wouldn't produce as many artifacts. But it's easier to spot the artifacts in a flat area. This should produce them:

fft3dGPU(mode=0,bw=128,bh=128,sigma=50)

MacAddict
12th April 2005, 11:06
Guess my picture attachment for the above post was never approved. The black blocks I mention above can be seen in
this screenshot. (http://home.insightbb.com/~macaddict01/gpu.jpg) They appear on every frame.

tsp
12th April 2005, 12:49
Originally posted by MacAddict
Guess my picture attachment for the above post was never approved. The black blocks I mention above can be seen in
this screenshot. (http://home.insightbb.com/~macaddict01/gpu.jpg) They appear on every frame.
yes the mysterious geforce fx bug. I don't know what's causing it. If you read page 2 in this thread Leo 69 had the same problem. I have compiled a new test version. It disables some of the filtering so if you could try it and tell me if it works. It is here (http://www.tsp.person.dk/test.zip). If it works try to replace the ps.hlsl file with the one from version 0.42 and see if it produces black boxes.

Also I have uploaded version 0.42 again because I forgot to update the dll :o

bill_baroud
12th April 2005, 17:02
hey i was the first to report this problem ;) but i didn't have the time to post my screenshot (was moving...) and to test your test version. Did you notice that the size of block depend on the bw/bh parameters ?

nevertheless, i was here to ask you another question: how is your algo scalable ?
because i found a website here (http://openvidia.sourceforge.net/) on parallel vision computation algorithm, and they use a computer with 6 PCI FX5200 (http://openvidia.sourceforge.net/hexagraphic_thumb.jpg).
So i was wondering if something like that could be usefull for our purpose :D

tsp
12th April 2005, 17:41
bill_baroud: If you want you can try the new test version and you're welcome to try fixing the bug ;) (src included) It's very strange that some of the block isn't processed.

I'm wondering if the bedst method to split the work between multiple GPUs would be to give each 1 frame or to split the frame up. Also wouldn't a single geforce 6800 GT be faster than 6 PCI fx5200 (they most be awfull bandwidth limited). If someone wants a multiple GPU version they could give me 2 geforce 6800 ULTRA and a nforce 4 SLI motherboard to work with :)

MacAddict
12th April 2005, 18:02
Originally posted by tsp
yes the mysterious geforce fx bug. I don't know what's causing it. If you read page 2 in this thread Leo 69 had the same problem. I have compiled a new test version. It disables some of the filtering so if you could try it and tell me if it works. It is here (http://www.tsp.person.dk/test.zip). If it works try to replace the ps.hlsl file with the one from version 0.42 and see if it produces black boxes.

Also I have uploaded version 0.42 again because I forgot to update the dll :o The new test build seems to work perfect. Blocks appeared again only when I replaced the ps.hlsl file from the 0.42 build. Seems like your narrowing it down:) Thx again!

tsp
12th April 2005, 18:35
MacAddict: ok try to change Line 481 to 495 in ps.hlsl from this:

//***************************************************************************
#ifdef BETA
float4 WFilter( PS_INPUT In) : COLOR
{
float4 src=tex2D(Src,In.texCoord);
//float2 PSD=float2(length(src.xz),length(src.yw));
float2 PSD=float2(src.x*src.x+src.z*src.z,src.y*src.y+src.w*src.w);
float4 MulFac=float4(BETA.x,BETA.x,BETA.x,BETA.x);
if(SIGMA.x<PSD.x)
MulFac.xz=((PSD.x-SIGMA.y)/PSD.x);
if(SIGMA.x<PSD.y)
MulFac.yw=((PSD.y-SIGMA.y)/PSD.y);
return MulFac*src*float4(1,1,1,1);
}
#endif

to this:

//****************************************************************************
#ifdef BETA
float4 WFilter( PS_INPUT In) : COLOR
{
float4 src=tex2D(Src,In.texCoord);

float2 PSD=float2(src.x*src.x+src.z*src.z,src.y*src.y+src.w*src.w);
float2 PSDInv=1/PSD;
float4 MulFac=float4(BETA.x,BETA.x,BETA.x,BETA.x);
if(SIGMA.x<PSD.x)
MulFac.xz=(PSD.x-SIGMA.y)*PSDInv.x;
if(SIGMA.x<PSD.y)
MulFac.yw=(PSD.y-SIGMA.y)*PSDInv.y;
return MulFac*src;
}
#endif

if that doesn't work try this variant:

//****************************************************************************
#ifdef BETA
float4 WFilter( PS_INPUT In) : COLOR
{
float4 src=tex2D(Src,In.texCoord);

float2 PSD=float2(src.x*src.x+src.z*src.z,src.y*src.y+src.w*src.w);
float2 PSDInv=1/PSD;
float4 MulFac=float4(BETA.x,BETA.x,BETA.x,BETA.x);
if(SIGMA.x<PSD.x)
MulFac.xz=1-SIGMA.y*PSDInv.x;
if(SIGMA.x<PSD.y)
MulFac.yw=1-SIGMA.y*PSDInv.y;
return MulFac*src;
}
#endif

vinetu
12th April 2005, 19:01
MacAddict,
If you get troubles counting lines in ps.hlsl - you can use the script editor inside VirtualDubMod.

tsp,
Now (thanks to your script example) I see the blocks...

here are before/after zipped images (the web host is doing some weird things with my images,so I've zipped them)

before (http://www.hostinganime.com/nikotin05/tmp/before.zip)

fft3dGPU(mode=0,bw=128,bh=128,sigma=50) (http://www.hostinganime.com/nikotin05/tmp/after.zip)

the right Aspect Ratio for viewing is 16:9 (original resolution is 720x576),
the VGA is Radeon9600 non pro (Latest Drivers) AGPx8,
WinXP SP1,DirectX 9c 4.09.0000.904,FFT3dGPU.dll version 0.42 (updated one :) )

Ah and if you get troubles downloading images above with IE ("Save Target as..." did not work here) -try with some download manager...

vinetu
12th April 2005, 19:44
tsp,
now I did remember that nVidia VGA chips are working at low speed in 2D mode!
Typical example - 300MHz in 2D (avisynth) and 500MHz in 3D mode (Doom III :) ).
This is true for FX 5xxx and 6xxx series.

Did you know that?

tsp
12th April 2005, 19:49
Originally posted by vinetu
tsp,
now I did remember that nVidia VGA chips are working at low speed in 2D mode!
Typical example - 300MHz in 2D (avisynth) and 500MHz in 3D mode (Doom III :) ).
This is true for FX 5xxx and 6xxx series.

Did you know that?

yes I have mine clocked at 80 Mhz at 2D. I have a really noise fan on my graphc card so I have it run at very low speed in 2d mode.
Also don't worry when using fft3dgpu the 3D mode clock is used because I'm using Direct3D, you just don't see the rendered scene directly.

Also I can't download the after.zip even with a download accelerator. Couldn't you just upload the uncompressed picture
(The png file is compressed so you don't gain extra compression by "ziping" it)

vinetu
12th April 2005, 20:51
the problem with this .png images is that the web host there is "too smart" - at first try the files was .png and when i decide
to check them and download the hosted images - I get .png ,but looking like heavy down-resized and compressed .jpg ...
that's why i zipped them.

EDIT - Ok here they are:
before (http://www.freewebs.com/vinetu/before.zip)
after (http://www.freewebs.com/vinetu/after.zip)

script:
--------------------------------------
fft3dGPU(mode=0,bw=128,bh=128,sigma=50)
--------------------------------------

Radeon9600 non pro,WinXP SP1,DirectX 9c 4.09.0000.904

koszopal
13th April 2005, 09:16
@vinetu
maybe u can try post 2 png on
http://www.imageshack.ws/ ?
u can try post there as png files
and point here :D
koszopal

tsp
13th April 2005, 21:17
vinetu: That is exactly the kind of border artifacts. Also note how the plain area interacts with high detail area. So don't use such a high sigma value or use mode 1 or 2.

MacAddict: You can try this (http://www.tsp.person.dk/ps.hlsl) ps.hlsl file. It might work.

vinetu
13th April 2005, 22:06
Originally posted by tsp
That is exactly the kind of border artifacts.

Are these artifacts somehow different from these you get on nVidia?

I ask because long time ago I've read a review (something like "Ati vs nVidia") where was a lot of screen shots showing differences in rendered images in 3D games.For example the dithering on gradients was beter on Radeon 8500 ( IIRC the oposite card was GeForce 3 ).
I'm not an Ati fan :) this is technical question... I'm courious what could be my next VGA - for now the winner is FX6600... :)

bill_baroud
14th April 2005, 08:31
@vinetu: imho, you should go for a 6800 non-GT/non-ultra, the price difference is not that much with a 6600GT, and you got a much much better chip (10ps/5vs pipelines instead of 8/3...)

@tsp : v0.42 + ps.hlsl from the test version fixed the problem, i didn't get any blocks with many different parameter.
I didn't got nvperfhud working though, but it's not like it's important ;).

btw, i took a (really) quick look at your code (nice one indeed) and saw some DirectInput stuff ??? why do you need to manage something like that in an avisynth filter (just wondering) ?

tsp
14th April 2005, 08:59
bill_baroud: the ps.hlsl file from the test version disables the Wienerfiltering. So the problem lies in the WFilter function. Could you try the ps.hlsl from my last post. It's a fully working version.

About NVPerf:
Also you did use NVperf=true and used this commandline to run it:

"PATH TO NVPerfHUD\NVPerfHUD.exe" "PATH TO VIRTUALDUBMOD\virtualdubmod.exe" "PATH TO AVS\test.avs"

and enabled "force NON PURE device"

The DirectInput code is included to intercept keyboard commands to nvperfhud. So if nvperfhud isn't enabled the DirectInputcode isn't executed. Also I will have to comment the code better some day and organize the Getframe code. To many if..else.


Vinetu: The artifacts are the same. This filter doesn't use anything fancy like anisotopic filtering or even bi/trilinear filtering but it uses many pixelshaders. So the only difference between ati and nvidia is that nvidia uses 32 bit precision and ati only 24 bit. It doesn't matter that much because when usefloat16=true(the default) is used the result from each pixelshader is saved at 16 bit precision.
A artifact I haven't seen on a ATI card is this (http://www.tsp.person.dk/arti.png) when using high bw,bh like this:

fft3dGPU(mode=0,bt=1,bw=512,bh=256)

MacAddict
14th April 2005, 14:06
Originally posted by tsp
MacAddict: You can try this (http://www.tsp.person.dk/ps.hlsl) ps.hlsl file. It might work. tsp, using this file with the 0.42 build I'm still getting artifacts using fft3dGPU(bt=1):( Haven't tried other parameters yet.

tsp
14th April 2005, 14:42
Originally posted by MacAddict
tsp, using this file with the 0.42 build I'm still getting artifacts using fft3dGPU(bt=1):( Haven't tried other parameters yet.

:angry: :angry:
Oh well I ordered a Geforce FX 5200 today so I will see if I can fix it when it arrives.

bill_baroud
14th April 2005, 15:47
Originally posted by tsp
About NVPerf:
Also you did use NVperf=true and used this commandline to run it:

"PATH TO NVPerfHUD\NVPerfHUD.exe" "PATH TO VIRTUALDUBMOD\virtualdubmod.exe" "PATH TO AVS\test.avs"

and enabled "force NON PURE device"
uh no, i didn't thought of that .. tried the combo-key but it didn't work, and it can't launch the dll ;)

Oh well I ordered a Geforce FX 5200 today so I will see if I can fix it when it arrives.
i'm very curious of the performances it can achieve in your filter :)

bill_baroud
15th April 2005, 16:06
ok, i did some tests yesterday, here the results :

fft3dGPU(bw=32, bh=32,NVPerf=false, bt=1,sigma=2, plane=1, mode=0) : mixed normal/greenish image / no bug with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=1,sigma=2, plane=1, mode=1) : greenish image / no bug with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=1,sigma=2, plane=1, mode=2) : mixed normal/greenish image / a pink/green triangle, no filtering with test-ps.hlsl

fft3dGPU(bw=32, bh=32,NVPerf=false, bt=2,sigma=2, plane=1, mode=0) : close vdub / same with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=2,sigma=2, plane=1, mode=1) : greenish image / no bug with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=2,sigma=2, plane=1, mode=2) : close vdub / same with test-ps.hlsl

fft3dGPU(bw=32, bh=32,NVPerf=false, bt=3,sigma=2, plane=1, mode=0) : close vdub / same with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=3,sigma=2, plane=1, mode=1) : greenish image / no bug with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=3,sigma=2, plane=1, mode=2) : close vdub / same with test-ps.hlsl

fft3dGPU(bw=32, bh=32,NVPerf=false, bt=2,sigma=2, plane=0, mode=0)
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=2,sigma=2, plane=0, mode=1) : black with image blocks ;) / same with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=2,sigma=2, plane=0, mode=2) : no filtering, only a black with white dots triangle in the left high corner. / same with test-ps.hlsl
same with bt=3

fft3dGPU(bw=32, bh=32,NVPerf=false, bt=1,sigma=2, plane=0, mode=0/1) : mixed image/black blocks / no bug with test-ps.hlsl
fft3dGPU(bw=32, bh=32,NVPerf=false, bt=1,sigma=2, plane=0, mode=2) : mixed image/black blocks / black triangle bug with test-ps.hlsl

opening many avs file in vdub without closing it > no more video memory and crash


some screenshots can be found here (http://moodub.free.fr/fftgpu.zip)

edit: it was v0.42 + ps.hlsl from your last post and from the test.zip

tsp
15th April 2005, 17:10
bill_baroud: The pink/green block is the same error as the black blocks just in the U og V plane. In mode 2 the blocks are triangulair because each block is created using two triangles (in mode 0 and 1 the entire image is made up by two triangles). I'm really curious what warnings the debug directx dll will produce when I get my new superfast Geforce fx 5200 with 64 mb ram :)

Also did you download version 0.42 before I updated it with the right dll since you getting out of video memory? You can see the version number in explorer.

bill_baroud
16th April 2005, 12:32
yes i think i did get the silent update version (can't verify now) because i downloaded it after you said so (iirc).

Also, i have the dx SDK installed with debug version and co, you could have asked me a report or something, by giving me the procedure to follow. Well now you can enjoy the blazing speed of the geforce FX series :D

tsp
19th April 2005, 19:52
ph33r |v|¥ n33w G'ph0Я5e 5200!!!! 1+ W1||| PWN J00!!!!!!!!!!!!!

oh well got my new geforce fx and finnaly fixed the stupid bug. A small riddle:
What is 1000/1000?
Is it 1 not if you ask a geforce fx no it's 13231 ???

Here's the fix change line 481 to 495 in ps.hlsl from this:


//***************************************************************************
#ifdef BETA
float4 WFilter( PS_INPUT In) : COLOR
{
float4 src=tex2D(Src,In.texCoord);
//float2 PSD=float2(length(src.xz),length(src.yw));
float2 PSD=float2(src.x*src.x+src.z*src.z,src.y*src.y+src.w*src.w);
float4 MulFac=float4(BETA.x,BETA.x,BETA.x,BETA.x);
if(SIGMA.x<PSD.x)
MulFac.xz=((PSD.x-SIGMA.y)/PSD.x);
if(SIGMA.x<PSD.y)
MulFac.yw=((PSD.y-SIGMA.y)/PSD.y);
return MulFac*src*float4(1,1,1,1);
}
#endif

to this:


//****************************************************************************
#ifdef BETA
float4 WFilter( PS_INPUT In) : COLOR
{
float4 src=tex2D(Src,In.texCoord);
//float2 PSD=float2(length(src.xz),length(src.yw));
float2 PSD=float2(src.x*src.x+src.z*src.z,src.y*src.y+src.w*src.w);
float4 MulFac=float4(BETA.x,BETA.x,BETA.x,BETA.x);
if(SIGMA.x<PSD.x)
MulFac.xz=((PSD.x-SIGMA.y)/(PSD.x+0.0000000000000000000000000000000000001);
if(SIGMA.x<PSD.y)
MulFac.yw=((PSD.y-SIGMA.y)/(PSD.y+0.0000000000000000000000000000000000001);
return MulFac*src;
}

or download the ps.hlsl from here (http://www.tsp.person.dk/ps.hlsl)
I will release a new version when I fixes the mousecursor shuttering.

edit
hmm it seems as the shuttering is only present when the framerate drops below 4 fps and that it is the nvidia driver that is causing it. If you look at the cpu utilization in the task list and enables show kernel time you will notice a very high kernel time cpu utilization(in this case the nvidia driver) when the shuttering is present. The only solution I have found is to decrease the number of commands the GPU process at once. This however really kills the framerate (something like 1 fps for a 64x64 images :( ) so the only real solution is to upgrade the graphics card to something faster


Also the Geforce FX 5200 is about 15-30 times slower than my geforce 6800 GT. Can't wait to get it back in the computer.

bill_baroud
20th April 2005, 08:07
1000/1000 = 13231 ?? that's a nifty bug... you should perhaps forward it to nvidia :rolleyes: ?

I'll test the new ps.hlsl this evening, thanks :)

MacAddict
21st April 2005, 12:25
tsp,

It seems you definitely found the block bug a few of us were getting with the FX cards. The ps.hlsl modification seems to have fixed the issue.

I seen this stuttering problem while encoding and your right about the kernel times. In fact, while encoding my CPU only uses around 80% max utilization. I'm guessing my FX GPU is the bottleneck and thats why the CPU isn't being utilized 100%:)

tsp
22nd April 2005, 00:03
good to hear the modification worked. If you is not getting 100 % cpu just use some more demanding encoding settings or some more filters before fft3dgpu. Just curious what framerate do you get with a geforce fx 5900? also is it the total cpu utilization(green color) or is it the kerneltime(red color) that uses 80%?

FrEEwilL
26th April 2005, 11:18
i have a problem the filter working. :(
whenever i use FFT3DGPU() in avs, avisynth gives me unrecognized exception error and crashes vdub(or vdubmod) with a memory reference error (....xxxxxxx can not be read").

i'm using
P4 2.8e
Win2k3 Ent.
ATI 9500Pro(firmhacked to 9700)
Catalyst 0.48 (Aug, 2004)

firm patch can cause the problem?
i tried to install the driver both with original (recognized as 9700) and edited (forced to 9500Pro) ini settings but got the same error.

btw i have no problem with fft3dfilter or catalyst for other uses.

tsp
26th April 2005, 12:28
FrEEwilL: I don't think it's the firm patch that's causing the problem. It might be hyperthreading causing problems. Try disabling it and if it then works I will see if I can fix it.

MacAddict
26th April 2005, 12:30
@tsp

I'm actually using a FX5200 card unfortunately which gave me about 6-8fps. 60% of the CPU usage was kernel and the other 20% green. I suspect the high kernel usage could explain the mouse cursor sluggishness?

I'll be trying my other box with a Radeon 9700 Pro in the next 48hrs to see how it compares. Thanks again!

tsp
26th April 2005, 14:28
MacAddict: I also get shuttering when the framerate drops below 8 fps on my geforce 6800GT (although I have to use this setting to get is so low: fft3dGPU(mode=1, bt=3, sigma=10,usefloat16=false) )
the shuttering is reduced when decreasing the number of commands the GPU process at once but the speed is reduced by ~50%. I don't know if I should at it as an option(it could be cool if it only was enabled when the mouse was used. I just have to find a way to detect that)

bill_baroud
26th April 2005, 16:46
Originally posted by MacAddict
I'm actually using a FX5200 card unfortunately which gave me about 6-8fps.

!!
Are you sure it's a FX5200 ? i get 5-6fps with a FX5900 :eek:

which settings do you use (and codec) ?

FrEEwilL
30th April 2005, 11:27
Originally posted by tsp
FrEEwilL: I don't think it's the firm patch that's causing the problem. It might be hyperthreading causing problems. Try disabling it and if it then works I will see if I can fix it.

I tried to disable HT but it didn't help. :(

tsp
1st May 2005, 16:44
FrEEwilL: Could you try this (http://www.tsp.person.dk/test.zip) version. It will generate a text file called FFT3dGPU_log.txt in c:\. If you could post the content of this file I could see where it craches.

MacAddict: Any luck with the Radeon 9700 Pro?

FrEEwilL
3rd May 2005, 12:02
@tsp, i've tried test version and got the following,

when loading from the default avisynth plugin dir, w/ or w/o LoadPlugin()

AvisynthPluginInit2

when loading from the external path by LoadPlugin()

AvisynthPluginInit2

Create_fft3dGPU

FFT3dGPU Constructor

tsp
3rd May 2005, 12:58
FrEEwilL: thanks I have created a new test version that will generate a more detailed report. You can get it here (http://www.tsp.person.dk/test2.zip).
If you could post the new log when loaded from the default avisynth plugin dir and from an external dir.

FrEEwilL
6th May 2005, 12:44
@tsp, here is a log ('ext_log') when loading from the external dir.
when loading from the default dir, two logs are created.
one is in plugin dir and the other is in the root of c:
the former contains the first 2 lines of the following and
the latter is same as 'ext_log' except for the numbers in memory address.


AvisynthPluginInit2:

AvisynthPluginInit2 Addfunction done
CREATE_fft3dGPU

FFT3dGPU constructor address: 1c84ee8
imgp: 0
hr: 1
GetDevice
pDevice :0
RegisterClassEx
create window
Creating D3D
d3dpp: 12c2ec ZeroMemory
Setup d3dpp
Creating D3Ddevice...

tsp
6th May 2005, 18:56
FrEEwilL: ok I have a new test version ready here (http://www.tsp.person.dk/test.zip). It it will again produce a logfile in c:\ so if you could repeat the procidure and post the logfile and include the the adress that couldn't be read. You could also try to set NVPerf=true.

Another thing that could be wrong if you are using windows 2003 server is that directx acceleration is disabled as default. (http://groups.google.dk/groups?hl=da&lr=&threadm=eHoFwFfdDHA.3260%40TK2MSFTNGP09.phx.gbl&rnum=1&prev=/groups%3Fhl%3Dda%26lr%3D%26q%3D%2522Windows%2BServer%2B2003%2522%2Bdirectx) I don't know if you have enabled it or having problem with other non-fullscreen directx accellerated applications/games, also you need directx 9.0 (I think directx8.1 is the default installed). I don't know if you also have windows xp/2000/98 installed and could try it in these OS's instead.

MacAddict
6th May 2005, 19:47
Originally posted by bill_baroud
!!
Are you sure it's a FX5200 ? i get 5-6fps with a FX5900 :eek:

which settings do you use (and codec) ?

Yep, it's an Asus 5200/128MB card. I'm just using a simple script with XviD of course-
mpeg2source("D:\DIvX RIPs\Test Clips\xxxx\xxxx.d2v",idct=6)
crop(4,64,712,352)
fft3dGPU(bt=1)
LanczosResize(672,272)
Undot()
Limiter()

Not sure if it plays a part or not but my AGP bus is running around 69Mhz due to this MSI AMD64 board not supporting locked bus speeds when overclocking.

MacAddict
6th May 2005, 20:21
Originally posted by tsp

MacAddict: Any luck with the Radeon 9700 Pro? Yes indeed:D I'm averaging around 17fps using XviD and the above script. Now I just need to find time to do compression tests and play with the settings. Thx so much for your effort tsp.

Anyone with advice yet on clean DVD movie sources?

dragonfly
7th May 2005, 19:41
I am using fft3dGPU 0.42 and can't help getting the following error;
"Only pixelshader 2.0 or greater is supported."

Well I have an Nvidia Geforce2 Ti 64MB card. Could it be that this is an old card and that fft3dGPU doesn't work with old cards? At least fft3d.dll works with my card, but that is sooooo slow :p

tsp
7th May 2005, 23:25
dragonfly: Yes a geforce 2 is to old. You will need at least a geforce fx 5200 or a Radeon 9500 that is a card with full support for DirectX 9 not just compatible with directx 9 but thanks for testing the supported pixelshader code :)

The following cards will not work:

Nvidia:
TNT
TNT2
Geforce 256
GeForce2 Ultra, Ti, Pro,MX,Go and GTS
Geforce3 Ti 200, Ti 500
GeForce4 Ti, MX, Go

Ati:
Radeon 7xxx
Radeon 8xxx
Radeon 92xx

Matrox:
G2xx
G4xx
G5xx
maybe Parhelia

The following should work:
Nvida
Geforce FX 5xxx
Geforce 6xxx

Ati:
Radeon 9500
Radeon 9550
Radeon 9600
Radeon 9700
Radeon 9800
Radeon Xxxx

where x means any digit.



MacAddict: When testing the speed of the different setting remember to encode to Xvid while doing it. There are a bigger difference in speed between the various setting when using a less cpu demanding codec(like Huffyuy) or no codec compaired to Xvid and other demanding codecs.

LordIntruder
7th May 2005, 23:26
dragonfly:

Read the first page:

"To use this filter you need directx 9 and a graphics card supporting directx 9 in hardware"

Geforce 2 does not support DirectX9 in hardware but DX8 or DX7 don't remember exactly.

dragonfly
7th May 2005, 23:45
@tsp
Thanks for the quick and detailed reply. I guess I have to purchase a new card :D

@LordIntruder
I almost never play games on my pc, so I don't know much about DirectX and the support for it on my card. So when the error came I did some research and found out that pixel shaders are used in DirectX. But wasn't sure if my card supported the right DirectX in hardware.
Thanks for your reply. Slowly I get to know the world of Doom9!

Fizick
8th May 2005, 00:19
Tsp,
Some time ago I read some Dr. Kokaram articles where he describe FFT processing with old good Geforce2 GPU (with NVidia SDK - may be too complex for programming?).

tsp
8th May 2005, 23:38
Fizick: I don't think it will be easy to make a version working on directx 7.0 hardware(geforce2/radeon 7xxx) because it doesn't have programmable shaders so it's only posible to add or subtract textures also it doesn't support floating point math (this is first includes in directx 9) only 8 (maybe 16) bit precision integers. It is posible to do integer fft but I don't know how fast it would be on directx 8 hardware.
Another thing if you would like to know how to do convolution in the frequency domain take a look at the varialble blur source code.

FrEEwilL
9th May 2005, 13:27
Originally posted by tsp
FrEEwilL: ok I have a new test version ready here (http://www.tsp.person.dk/test.zip). It it will again produce a logfile in c:\ so if you could repeat the procidure and post the logfile and include the the adress that couldn't be read. You could also try to set NVPerf=true.

i've tried to toggle the params of bool type but no one helped.

AvisynthPluginInit2:

AvisynthPluginInit2 Addfunction done
CREATE_fft3dGPU

FFT3dGPU constructor address: 1c94ee8
imgp: 0
hr: 1
GetDevice
pDevice :0
RegisterClassEx
create window
Creating D3D

constructor address changes occasionally while repeating the procedures and
depending on what program is used to load the script (vdub,vdubmod, mpc, zp, wmp...)
i don't get memory reference error box any more.
vdub just crashes(disappear) silently _when i switch application focus_.
only mpc gave one _when i'm closing_ (it works if i just keep it open)

The instruction at "0x01fb1177" referenced memory at "0x0229a6c8". The memory could not be "read".

the address changes slightly too.


Another thing that could be wrong if you are using windows 2003 server is that directx acceleration is disabled as default. (http://groups.google.dk/groups?hl=da&lr=&threadm=eHoFwFfdDHA.3260%40TK2MSFTNGP09.phx.gbl&rnum=1&prev=/groups%3Fhl%3Dda%26lr%3D%26q%3D%2522Windows%2BServer%2B2003%2522%2Bdirectx) I don't know if you have enabled it or having problem with other non-fullscreen directx accellerated applications/games, also you need directx 9.0 (I think directx8.1 is the default installed).
i've been using win2003 more than a year and already know those issues.
everything has been set properly and dx 9.0b is installed.
to re-verify, i ran dxdiag and all of d3d/ddraw tests passed successfully.

I don't know if you also have windows xp/2000/98 installed and could try it in these OS's instead.
sorry but i don't have any other OS installed and won't be back to XP
because currently i'm using a soft-raid mirror set (along with hardware stripe sets), which is supported only on the server family.