Archived

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

executor_2k2

Which is faster on a geforce: matices or vectors?

Recommended Posts

Use them for what? Hardware accelerated matrix/vector math? One suggestion: forget about it!

Matrix/matrix multiplication is not hardware accelerated by the GeForce series, but matrix/vector are. This doesn''t mean that it''s fast to get the result from the hardware though. You can do ALOT better with your own code on the CPU.

Share this post


Link to post
Share on other sites
quote:
Original post by Brother Bob
Use them for what? Hardware accelerated matrix/vector math? One suggestion: forget about it!

Matrix/matrix multiplication is not hardware accelerated by the GeForce series, but matrix/vector are. This doesn''t mean that it''s fast to get the result from the hardware though. You can do ALOT better with your own code on the CPU.


Not necessarily.

If you compare the speed that a GeForce card performs a vector transformation with the speed that your CPU does it, then yes, you will find the CPU is a lot faster.

However, if you are doing transformation in software, then you need to transform it before it goes to the video card, and therefore you need to send all your vertices to the card every frame.

Alternatively, you can store your vertex buffers in video memory and use TnL. While the transformations may be slower, there is far less data sent to the card which may well be a limiting factor with complex scenes.

Finally, using TnL frees the CPU from this extra task and therefore gives it more cycles to spend doing physics and AI. This is one good reason why certain demos are poor benchmarks for TnL performance - these demos do nothing but graphics, so doing the transformations in software is actually quicker. In practical applications e.g games, TnL is usually a lot faster.

Share this post


Link to post
Share on other sites
I was talkning about using the hardware as a math library to perform your matrix and vector operations. Not that you should do all the vertex processing in software.

The hardware is more or less a one way street. Everything is fine as long as you only put things into the beginning of the pipe. But when you try to get results from the hardware, either in the middle on in the end, you are likely to have some performance hit. Processing vertices for drawing is good, you stuff then into the pipe, and don''t expect anything in return (as the values of the processed vertices for example). But if you intend to process vertices, and expect to get the result back, you can do it yourself.

Share this post


Link to post
Share on other sites