Archived

This topic is now archived and is closed to further replies.

Vertex program performance in older cards

This topic is 5156 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi. I''m just starting to learn and experiment with vertex programs and have the following query with regards to vertex program performance for you experts out there: You can use a vertex program to translate the position of the vertex. You can also use the program to calculate the lighting. I see from delphi3d.net''s extension registry that even an old TNT card supports the ARB_vertex_program extension with recent drivers. Now I''ve heard (and this could very well be wrong) that on pre-Geforce 3 cards (including the GF4 MX) that vertex shaders are emulated by the driver. Now the Geforce 1''s big selling point was that it did transformations and lighting in hardware, but surely if I use an emulated vertex program on such "older" cards then the transformations and lighting are no longer done in hardware, and thus be slower than the fixed function pipeline. I''ve checked this out a bit on a simple "sin wave grid" vertex program on a GF2 MX. The frame rate was much better with the vertex program disabled, but I noticed no difference in frame rate when I ran it on a GF FX 5900. This is not exactly a real world situation, but it seems to illustrate my suspicions. Is my line of thinking correct or am I missing something fundimental here? If the fixed function pipeline is faster on these older cards then how do I detect if the program is emulated or not (an extension string lookup will just tell me if the extension is available). I''d far rather use the fixed function pipeline for "emulated" cards and give the newer cards the benefits of hardware vertex programs. Any thoughts? Flames?

Share this post


Link to post
Share on other sites
From what I learned (very) recently, the newest cards simply run the fixed function pipeline with vertex programs, hence the lack of a difference. D3D gives you whether or not it''s hardware...I know of no way in OGL.

Share this post


Link to post
Share on other sites
quote:
Original post by Promit
From what I learned (very) recently, the newest cards simply run the fixed function pipeline with vertex programs, hence the lack of a difference.

Well, there''s some speculation as to what the GeforceFX does. Early on I heard that it has a dedicated T&L unit, but a couple months ago I read speculation about it being emulated in vertex shaders. I do know for sure that the Radeon 9500 and higher have totally abandoned T&L and are emulating everything. I''ve even heard that ARB_shadow is in fact emulated.

Share this post


Link to post
Share on other sites
quote:
Original post by Ostsol
quote:
Original post by Promit
From what I learned (very) recently, the newest cards simply run the fixed function pipeline with vertex programs, hence the lack of a difference.

I do know for sure that the Radeon 9500 and higher have totally abandoned T&L and are emulating everything.


Bull. Vertex programs on the R300 upwards are most definitely implemented in the hardware in almost every case. My own vertex programs implemented on a radeon 9700 pro give me far better performance than the equivilant code implemented in software. The kind of performance boost I'm getting is only really possible with vector processing and the high level of parallellism offered by modern graphics cards.

[edited by - benjamin bunny on November 5, 2003 6:49:49 PM]

Share this post


Link to post
Share on other sites
You must have misread my statement and perhaps I worded it poorly. I meant that T&L on Radeons from the 9500 and up are emulated in shaders (which are definitely supported most thoroughly in hardware). Some support to that statement:

From ATI''s OpenGL SDK:

quote:
http://www.ati.com/developer/sdk/radeonsdk/Gl_sdk.zip
All geometry processing is performed by the four vertex engines in the 9500+ series. The peak geometry rate is roughly the number of operations per vertices divided by four. All fixed function and user vertex shaders use the same resources , so the approximate penalty of a feature in fixed function is equivalent to the cost if it were hand-coded in a vertex program.

Share this post


Link to post
Share on other sites
quote:
Original post by Ostsol
You must have misread my statement and perhaps I worded it poorly. I meant that T&L on Radeons from the 9500 and up are emulated in shaders (which are definitely supported most thoroughly in hardware). Some support to that statement:

From ATI''s OpenGL SDK:

quote:
http://www.ati.com/developer/sdk/radeonsdk/Gl_sdk.zip
All geometry processing is performed by the four vertex engines in the 9500+ series. The peak geometry rate is roughly the number of operations per vertices divided by four. All fixed function and user vertex shaders use the same resources , so the approximate penalty of a feature in fixed function is equivalent to the cost if it were hand-coded in a vertex program.




In that case, I forgive you .

Share this post


Link to post
Share on other sites
quote:
Original post by Raloth
...

Last time I checked the fixed function pipeline was on the GPU.

Indeed it is! What did I post that implied that the fixed function pipeline wasn't on the GPU?

[edited by - Ostsol on November 5, 2003 9:00:24 PM]

Share this post


Link to post
Share on other sites
Oops, I misread your post. Somehow I read "shaders" as "software" in "I meant that T&L on Radeons from the 9500 and up are emulated in shaders". I''m having a really bad day for common sense...ugh...

Share this post


Link to post
Share on other sites