How to determine the pipelines' number in program?

Hi,everyone,
I wonder how I can determine the pipelines’ number in program, such as how many pipelines for vertex and pixel respectively. In this way, we can come to know the parallelism for each component.

Another problem is about the fragment program performance. When I enable the fragment program by the following:
glEnable(GL_FRAGMENT_PROGRAM_NV);
glBindProgramNV(GL_FRAGMENT_PROGRAM_NV, ShaderID);
The performance drop dramatically even only ONE intruction in that fragment program.
The primitive is following:
glBegin( GL_QUADS );
glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0, 0);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0, 0);
glVertex2d( 0, 0);

	glMultiTexCoord2fARB(GL_TEXTURE0_ARB, fTexCoord[0], 0);
	glMultiTexCoord2fARB(GL_TEXTURE1_ARB, fTexCoord[0], 0);	
	glVertex2d( _iWidth, 0);

	glMultiTexCoord2fARB(GL_TEXTURE0_ARB, fTexCoord[0], fTexCoord[1]);
	glMultiTexCoord2fARB(GL_TEXTURE1_ARB, fTexCoord[0], fTexCoord[1]);	
	glVertex2d( _iWidth, _iHeight);

	glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0, fTexCoord[1]);
	glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0, fTexCoord[1]);	
	glVertex2d( 0, _iHeight);
glEnd();

const int _iWidth = 256;
const int _iHeight =256;
With Fragment program disabled, the cost is less than 0.01ms. Just one output instruction, the performance drops to 90ms. Add an texture fetch instructure, the performance drops to 150ms.
Are there any tricks to overcome or to full dig out the potential of HW.
My machine is nVidia Quadro4 980 XGL with latest driver.

Thanks for any comments.
Happy New Year!

[This message has been edited by foollove (edited 12-31-2003).]

If Quadro4’s are based on the GeForce4 driver, then the reason you’re getting a performance drop is because fragment programs aren’t avaliable in hardware.

Thanks a lot for your reply.
But I download the driver from nvidia website which is special for Quadro products.

Still with updated driver, GeForce3 and GeForce4 MX support Fragment Program, but GeForce4 Ti4600 NOT support Fragment Program. I am really confused with this. Can someone tell me the reason.

Thanks again.

Originally posted by Korval:
If Quadro4’s are based on the GeForce4 driver, then the reason you’re getting a performance drop is because fragment programs aren’t avaliable in hardware.

[This message has been edited by foollove (edited 12-31-2003).]

I was shure that Quadro4 doesn’t support fragment programs.

no card under geforce/quadro FX supports fragment programs
you are getting software emulation.

the geforce4 should also have software emulation (works for my ti4200), try reinstalling your drivers and restarting your system.

on linux the nvidia drivers sometimes
forget a lot of extensions =)
(and don’t forget to export __GL_NV30_EMULATE=1)
cbwan

Originally posted by foollove:
[b]Thanks a lot for your reply.
But I download the driver from nvidia website which is special for Quadro products.

Still with updated driver, GeForce3 and GeForce4 MX support Fragment Program, but GeForce4 Ti4600 NOT support Fragment Program. I am really confused with this. Can someone tell me the reason.

Thanks again.

[This message has been edited by foollove (edited 12-31-2003).][/b]

I have updated the driver. But there are still problems with GeForce4 Ti4600 to support Fragment Program.

Once more, what’s the difference between Quadro and GeForce. If Quadro NOT support Fragment Program, what’s its advantage?

Thanks anymore.

Originally posted by foollove:
Once more, what’s the difference between Quadro and GeForce. If Quadro NOT support Fragment Program, what’s its advantage?
It’s more expensive and it has the word “professional” written on the box
Besides that, I think it has faster line rendering for CADish wireframe display.

“Consumer cards” regularly split a line into a pair of thin and long triangles, causing the inevitable performance drop. Quadros don’t.

Originally posted by foollove:
I have updated the driver. But there are still problems with GeForce4 Ti4600 to support Fragment Program.

Yes and there always will be. lol. Unless you have a GeForce FX OR Quadro FX you WONT get fragment programs. Unless you use NVEmulate to run them on the cpu in software, thus giving horrible performance.

-SirKnight

geforce3 and the according Quadro are the same chips! the technical difference is the layout of the graphicscard.
(whats the english word for the german “platinenlayout”? can’t remember ths at the moment)
and this difference makes the chipset to draw lines faster & smoother.
you can think of it as a kind of “hardwired jumper”.
actually you can turn a gf3 card into a quadro when you connect some of the pins of the

disclaimer:
i haven’t verified this information myself.(so my gf3 is still a gf3)
so if i am wrong feel free to correct me.

btw.: happy new year!

[edit] if forgot to say, that i don’t know if this is also true for the gf4 familiy, but i guess so.

[This message has been edited by AdrianD (edited 12-31-2003).]

platinenlayout == PCB board layout

Originally posted by ScottManDeath:
platinenlayout == PCB board layout
PCB = printed circuit board
“Printed circuit board board layout” would be a tad redundant

And happy new year. Make sure to drink enough

It’s kind of odd that you can execute NV_fp in the first place.

If your card doesnt support NV_fp, then by default you shouldn’t have NV_fp available unless YOU turn on emulation.

But instead, you have RC, RC2, TS, TS2, TS3, …