I’ve been playing with VAR to see what the speed-ups are like. Unfortunately, I can’t seem to get it working properly.
My test case is this:
1024 particles, 2 triangles each, drawn by glDrawElements(GL_TRIANGLES…). Textured and coloured, no lighting or normals. Particles change their position every frame, and so the vertex array is refilled, sequentially.
If I allocate the vertex array with new[…], I get about 250fps. If I allocate the vertex array with
wglAllocateMemoryNV(…,0.2,0.2,0.5) then the frame rate drops to about 120fps. The vertex array is never read from. The texture and colour arrays are in normal memory. Vertex types are 3 * float per vertex, 4 floats for colour and 2 floats for texture.
Furthermore, if I call glVertexArrayRangeNV(…) with the correct range, and then enable GL_VERTEX_ARRAY_RANGE_NV, everything goes a bit wrong - textures are messed up, not bearing any real relation to the originals.
Anybody got any idea what I’m doing wrong?