Advertisement Jump to content


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


compiled_vertex_array vs draw_range_elements

This topic is 6181 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 recently wondered what the difference between GL_EXT_compiled_vertex_array and GL_EXT_draw_range_elements is, but i found no difference. So where is it ?

Share this post

Link to post
Share on other sites
Don''t know at the prog level what''s different but compiled vertex arrays are faster.

-* So many things to do, so little time to spend. *-

Share this post

Link to post
Share on other sites
The difference is simply, that they have nothing in common
They are two totally different extensions / commands.

GL_EXT_compiled_vertex_array (CVA) simply let''s you lock a standard vertex array into video memory, so it gets rendered faster, if you draw it a second time (or more). The driver copies your VA data into video memory the first time you render it, consecutive accesses are faster. But this also means, that if you use CVA on data that will only be rendered once, then it is actually slower than standard VA, because of the extra copy step.

GL_EXT_draw_range_elements is just an extended way of calling the DrawElements() call. It lets you specify additional parameters (an index range), so that the OpenGL driver can directly stream your index array to the hardware, without needing further processing.

You can (and should) actually use RangeElements in combination with CVA''s to get the best performance.

Now, there is a third one: vertex_array_range (VAR), this one is the fastest possible, but it''s complex to use and nVidia proprietary (won''t work eg. on ATi).

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!