PDA

View Full Version : Weird Vertex Arrays Prob



robert
10-17-2002, 10:55 AM
http://www.opengl.org/discussion_boards/ubb/confused.gif
I have an octree of static vertex data. Before the octree is recursed, all the vertex data is loaded using glVertexPointer().

I decided to see what the difference would be if I just loaded this data once, at the beginning of the program (ie once).

No difference?

Maybe I missed something, but I was wondering if anyone else has come across this?



[This message has been edited by robert (edited 10-17-2002).]

Bob
10-17-2002, 11:32 AM
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.

robert
10-17-2002, 11:46 AM
I was under the impression that the data was loaded into Graphics Memory.

I guess that was a silly assumption of mine, considering the name VertexPointer :P.

Do I need to use Compiled vertex arrays, or VAR arrays? (to upload to video ram, that is).



[This message has been edited by robert (edited 10-17-2002).]

martin_marinov
10-17-2002, 11:56 AM
Hi

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).

Regards
Martin

jwatte
10-18-2002, 06:55 PM
You generally have no control over storage.

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.

zen
10-19-2002, 08:33 AM
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?

jwatte
10-19-2002, 01:41 PM
zen,

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.