GL_VERTEX_ARRAY_NV and GL_VERTEX_ARRAY_NV2

what are the differences between these 2 extensions :
GL_VERTEX_ARRAY_NV and GL_VERTEX_ARRAY_NV2

which is the best ?
i only use the first; is that better ?

You should use the second, IIRC there were some design limitations in the first one that made the HW supporting it forced to wait in places where it could instead go on an transform more data.
Thus, you should actually see a speedboost just from changing the Ext name - I did.

Regardless, it’s all described in the OpenGL spec by Nvidia, so it’s a RTFM.

Isaack

i don’t understand everything, but i understand that using the nv2 is better, so i’ll try it.

thank you

jdie

There are no new procedures or functions defined by NV_vertex_array_range2 (according to the spec). The only thing this extension introduces is a way to enable the vertex array extension without flushing the “vertex array range” by calling glEnableClientState(GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV) instead of glEnableClientState(GL_VERTEX_ARRAY_RANGE_NV).

Thus if your application runs faster or not depends on how often you enable the vertex array range.

[This message has been edited by stefan (edited 02-19-2002).]

I´ve got a question, I saw that the GL_NV_vertex_array_range extension uses 2 new WGL extensions:

wglAllocateMemoryNV
wglFreeMemoryNV

There is no extra WGL extension string for them, so can I init the functions after I checked the GL Extensions string for the GL_NV_vertex_array_range?

Diapolo

AFAIK yes

-Lev

Originally posted by stefan:
[b]There are no new procedures or functions defined by NV_vertex_array_range2 (according to the spec). The only thing this extension introduces is a way to enable the vertex array extension without flushing the “vertex array range” by calling glEnableClientState(GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV) instead of glEnableClientState(GL_VERTEX_ARRAY_RANGE_NV).

Thus if your application runs faster or not depends on how often you enable the vertex array range.

[This message has been edited by stefan (edited 02-19-2002).][/b]

OK. And if i plan to enable the vertex array range only once at begining. So, my application may run more faster, won’t it ?

thanx

jide

If you enable it only once, you should NOT see any improvment, since you’re not affected by the performance decrease caused by flushing.

OK, thanks.

And i think (of course) that flushing is needed in certain cases ! isn’t it ?
for example, if i use more than one glDrawRangeElementExt !
I will need to call to this routine few or many times on a rendering (it depends).
So, if i enable without flush (so GL_VERTEX_ARRAY_RANGE_NV instead of GL_VERTEX_ARRAY_RANGE_NV2), at each time i call glDrawRangeElementExt (assuming i use VERTEX_ARRAY_EXT), i will draw the array in memory not flushed before last call ? so, if the first call uses 20 verticies, and the 2nd only 10, i could attempt to have 20 verticies (the 10 of the second call + the last 10 of the first call ?).
I wonder.

diapolo: for wgl, its wglAllocateMemoryNV and gwlFreeMemoryNV.

Fratt