CPU->GPU Sync in glDrawArrays

Hi, I have one large vertex array (~16000) but have to access through ~200 calls to glDrawArrays. I only get ~26 fps.

I have some questions:

  1. Is that too much?
  2. What would be better?

The best would be to draw the whole array with one call. Standard OpenGL does not allow better syncronization, but the VAR extension does. ATI also has an extension for that, don’t know its name. With VAR, glDrawElements will return immediately, so you just can send those 200 small arrays to OpenGL, without waiting for one to be transfered to OpenGL to send the next.


But wouldn’t glDrawArrays wait again until the previous array has been transfered completetly? Or for what else would I need the fence then (except for syncin anything myself)?

Or another thing: Is there any possibility to send arrays for different textures in one call?

Btw, nobody could tell me where I can find a doc about the index arrays, which suit better in my case!

And aren’t you the guy who told me this already on flipcode, too?

If you use glDrawElements then you can use an array of indices.