   Primitive restart vs multi-draw calls?
  Is primitive restart faster than glMultiDraw{Elements|Arrays|ArraysBaseVertex}?  I assume the multi-draw calls loop in the driver.  However, I read this in the 3.3 spec:"Because client enable/disable no longer exists in OpenGL 3.1, the PRIMITIVE RESTART state has become server state, unlike the Nvidia extension where it is client state."Does server state indicate this is completely handled by the GPU?  Thus there won't be multiple synchronization points and it's really a single call by the driver?BTW, I've been unable to get the multidraw to work right with element buffers.  I thought that, as with glDrawElements, the indices are treated as offsets if an element buffer object is used.  Thus, if I have a VBO with cube vertices, and and element buffer bound, then glDrawElements(GL_QUADS, 24, GL_UNSIGNED_INT, 0); should give me the same result asGLsizei counts[] = {4, 4, 4, 4, 4, 4};GLuint offsets[] = {0, 4, 8, 12, 16, 20};glMultiDrawElements(GL_QUADS, counts, GL_UNSIGNED_INT, (const GLvoid **)offsets, 6);However, I get nonsense rendering from the latter.  How do I get it to work with VBOs?  (or I might not bother if restart primitive is faster)[Edited by - Prune on April 26, 2010 4:09:12 PM]
  So hasn't anyone used both methods, or have some idea whether either one is CPU-based by the driver, or actually happens on the GPU?  I need the fastest way to draw multiple meshes.   ;  Personally no I have not used these methods, but are you sure that this is worth worrying about? Unless you're sure that OpenGL api calls are your bottleneck (which I guess is pretty unlikely). And even if it was, I don't think there's too much you can do about it.Also why do you think you need to use Primitive Restarts? Unless you are using triangle strips (which I think aren't even in favor that much anymore), I wouldn't think Primitive Restart would be of any use to you. If you're just using glQuads, you can just put all of your quads in a list, so I don't understand where you think you need primitive restarts. (Maybe I am wrong though).This just sounds like a non-issue to me, which is probably why you're not getting much response, because nobody else is worrying about it.Hope that helps.   