vp speed issue

i`ve written the simpliest vp ever:
“DP4 R0.x,v[OPOS],c[12];
DP4 R0.y,v[OPOS],c[13];
DP4 R0.z,v[OPOS],c[14];
DP4 R0.w,v[OPOS],c[15];”
“MOV o[HPOS],R0;”
“MOV o[COL0],v[COL0];”


now, that just transform the vertex,and pass the original color. correct me if i`m wrong.

now displaying a glut_torus WITHOUT the vp
i get 220 FPS.

with vp and backface culling i get only 60FPS.

with vp and no backface culling a get ONLY 30FPS.

i have a geforce2MX(4-AGP,fast writes…) and running with vsync off.

now, can anyone please tell me why to hell is it SO SLOOOW?

You hardware doesn’t support vertex programs, so they are being handled by the CPU…

There’s no way around it, sorry.

so, if do a query with “GL_NV_vertex_program”,it only tells me that the driver supports that, and not the card,or what?

is there a way to find out if its hardware accelerated? bc. it makes then absolutely no sense to use it, if its not hw-a.


I’m not the best person to help you on this since my card doesn’t support them either (ATI Radeon).

A reason why it appears as a supported extension would be that you can try it out even without hardware support.

As t0y said, your card can’t handle vertex programs in hardware, and there is nothing you can do about it (well, you can buy a new card of course). And no, there is no way to determine whether something in supported in hardware or not.

And as you san sanjo, you can only know what the driver can do, not the hardware. But on the other hand, knowing if something is done by the hardware or not is not what you want to know, you want to know whether it’s fast enough for you. It can be fast enough even if it’s done in software you know.

And yes, it does make some sense to expose extensions that are not hardware accelerated, for reason I have already mentioned. You don’t need to know if it’s hardwate accelerated, only if it’s fast enough for you. And it also makes it possible for you to at least try the extension.

And just to point it out sanjo, on new processors (P4 2Ghz, Athlon XP, etc.), I’m sure that vertex programs run quite nicely off the host CPU =)

You really don’t want to know if it’s hardware accelerated or not… when it doubt, leave it as an option for the user; afterall, someone two years from now may end up running your program in software, but it would still run perfectly because the CPU speed has gone out of the roof, etc…

Point is, if the driver says it supports it, then let the user choose.