glVertexPointer doesn’t load anything, it just tells OpenGL where you haev stored the vertex data. It is not touched at all until you actually draw the vertex data.
Use VAR to be (almost) sure that you upload geometry to AGP/VRAM memory. CVA implementation may act even more unpredictably (i.e. performance like VA).
vertex_array_range gives you a fair bit of control. vertex_array_object also gives you a bit of control. NV hardware uses VAR; ATI hardware (and some others) use VAO.
Anyway, even if the storage is in AGP memory (or even VRAM, if you’re not fill rate bound), chances are that you’re not actually geometry transfer bound, and thus the entire excercise is quite possibly fruitless.
I was wondering,do the drivers of other agp cards like my old G400 use AGP memory?If not why the hell does it use an agp port(and support agp 4x for that matter)?If yes how hard can it be to implement an extension to give some control over it?
A card that does not use hardware transform cannot use AGP memory for pre-transformed data (which you hand OpenGL). However, internally, the driver can shuffle post-transformed triangle set-up data to the card using AGP, which will be faster than shuffling it using PCI mode.
Also, texture uploads, or even host-RAM based texturing, run faster over AGP than over plain PCI mode. So AGP made a lot of sense even before HT&L came into the picture.