Well, well ! It seems that you guys are a little confused, too. Your answers are pretty evazive.
bgl: I never intended to use stride. That 3rd parameters confuses me a little. I just tried to do what John Carmack said he did. On the other hand, if I use 0 instead of 12 or 16 the result is the same.
kaber0111: I don’t agree with you. I have only static data. I precalculate all the vertices I need and I put them in a vector. Then, if the card supports the NV_vertex_array_range extension, I allocate AGP/video memory and copy the vertices to that new location, and then I render only from there.
Yes, I have multitexture, so what ? I set the texture I need, then render the vertices which use that texture, and so on.
“Level geometry” also changes, so I just need to recalculate the vertices and write them again in that vector - but this happens once every 100 … +INF frames ! (it’s user input dependant)
bgl: See the answer above. I know exactly what I’m doing with the vertices. And fence will complicate things, I think … but I’ll try it, anyway.
My question was: why do I have to use both this extension and display lists to get the fastest speed ?
I tried to also lock the data - no more speed improvement. Didn’t have time to try copying indexes in AGP, too ( been busy XMas shopping )