Ok, I’ve searched high and low for information on the best way to optimise opengl code for a radeon, with these results:
using my skeletal animation system, same mesh:
600mhz celeron, geforce2mx: 75+fps
1.2ghz athlon, ati radeon DDR: 50fps
Not a good comparison. ATI’s developer website isn’t much help - does anyone know the fastest way to render on a radeon?
What method are you using actually ?
Vertex arrays ? Display lists ???
Tell us more
Oops - forgot you can’t read my mind.
I’m using VAR with vertex data in video memory on the geforce, and as I can’t find an equivalent for the radeon, I’m falling back to vertex arrays in system memory for the radeon.
I guess I could use display lists, but I dislike the memory overhead. Is there an equivalent of wglAllocateMemoryNV on the radeon that I can’t find?
Remember, each submission to the graphics driver (each call to, say, glDrawElements) has some amount of overhead. You’re often better off using software skinning optimized for your CPU into one big temporary vertex buffer, and then drawing the entire mesh in one go.
quoting directly from an ATI reply on the same subject!!
‘For the Vertex Array Range equivalent, we have an upcoming equivalent (but better extension: ATI_vertex_array_store. This shipping is dependent on something else being used in the driver, so I
don’t know the exact timeframe. The extension is still not exposed and therefor please do not comment on it to anyone else, this is strictly for your information right now.’
Good thing you didn’t comment about it to anyone
You should try a compiled DL, using triangle strips. This should be blazing fast.
You can save a bit of frame overhead by only clearing the depth
buffer. Radeon has an extremey fast depth clear. This is
dependent on your scene content obviously.
The ATI_vertex_array_object and ATI_element_array extensions are what you’re looking for here. They allow you to store vertex and index information in hardware-accessible memory. These extensions will be supported in the very near future on RADEON and RADEON 8500 drivers. For more information on these extensions, see our white paper Fast Geometry Processing with ATI_vertex_array_object and ATI_element_array .
For your skeletal animation, ARB_vertex_blend may also be of use. Can you describe your current skeletal animation technique?
[This message has been edited by JasonM [ATI] (edited 09-25-2001).]
BTW, the SimpleVAO sample is now online.