Jump to content
  • Advertisement
Sign in to follow this  
Pooya65

which is fastest

This topic is 3421 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 am start to develop my game engine and i need to know fastest way for implmentng graphic in my game engine. which is fastest : 1. vbo,dispaly lists, indexed vertex arrays 2. FBO or gbuffer ( for deferred shading) 3. CSAA, MSAA, FSAA ( i think CSAA is faster than others) 4. GLSL, ARB shaders or CG

Share this post


Link to post
Share on other sites
Advertisement
IME:

1. Indexed VBO. Though currently on nVidia cards, display-lists are reported to be much faster
2. There's no g-buffer in openGL. It's a concept, that uses a FBO with multiple attached textures.
3. CSAA is nicest and almost as fast as MSAA.
4. They differ only in speed of binding + set constants. GLSL: fast to bind and set unis on ATi, slower on nVidia. ARB: fastest, but extremely limited (think Doom3 graphics only, no branching). NV-asm: available only on nV, as fast as ARB but with all latest features. CG: internally compiles only either to NV-asm, ARB-asm, or fails.

Share this post


Link to post
Share on other sites
Also, non-trivial GLSL is hell on different ATi drivers, judging from reports in the opengl forum. Your shader works fine on one driver, crashes/misbehaves on 2 others. There's no ATi alternative to nV-asm.

There is a new object, VAO - which promises speedups on binding VBOs.
Streaming vertex-data must use streaming VBOs (in round-robin fashion, and glMapBuffer).
Indexed triangles can make use of the vertex-cache.
I think that also the DX caps-viewer shows which vertex-data declarations are actually directly accelerated by the gpu (i.e 4 unsigned bytes for a color, instead of 3UBs). Anything not listed there is probably retranslated by the driver. I haven't benchmarked, yet.


If I would like to support the 30% ATi users, most of which anyway have SM2.0 cards, I'd make a second path in the engine (material-manager), where either dumbed-down ARB or slowed-down GLSL is used. While primarily using nV-asm, compiled from the Cg compiler.
ASM shaders will stay for as long as DX9, DX10 and DX11 exist (as they also use asm-code exclusively to instruct the driver), so I'm betting on asm.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!