I am having severe performance problems with a pointbased renderer. All the vertex data (3 floats for position and 4 ubytes for color) is stored within one vbo. furthermore the indices are stored in a separate vbo.
Now the problem:
Everything runs wonderfully for datasets with a few hundred thousand points. but the new dataset that contains roughly 2 million points performs really extremely slow on a geforcefx 5950 with 256 mb ram and presently available drivers... (its even slower than with a geforce3 with 64mb ram...). presently the only workaround is, to use simple vertex arrays instead of the vbos if the dataset size is too large... (this rendering way is much faster than the vbo way if the aformentioned 2 mio cell dataset is used... in cases with smaller sets the vbos are much faster). Another strange thing is, that, if simple gldrawarrays is used the performance with the vbo is just fine again (even with the large dataset). So it simply seems, that rendering primitives from a vbo that contains around 2mio vertices using an index array takes a severe performance hit.
I know, that vbos underlie some limitations (for example, that on an 128 mb r3xx everything larger than 32 mb doesnt go into video memory but agp memory and thus slows down the rendering ....) but im quite sure i didnt violate any (alignment should be ok and the vbo size shouldnt be a problem as well since only 24mb are used for the vertex data)
so im wondering, if this is some strange bug in the driver, that stalls some part of the vertex processing pipeline if large vbos are used in combination with index arrays (btw just drawing some 100000 cells from the large dataset with an indexarray is terribly slow as well) and if there is a proper workaround for it.