Reputation: 21
I am writing a Windows based OpenGL viewer application. I am using VBO + triangle strip + glDrawArrays method to render my meshes. Every thing is perfectly working on all machines. In case of Windows Desktop with nVidia Quadro cards the working/peak working memory shoots when i first call glDrawArray. While in case of laptops having nvidia mobile graphic cards the working memory or peak working memory does not shoot. Since last few days i am checking almost all forums/post/tuts about VBO memory issue. Tried all combinations of VBO like GL_STATIC_DRAW/DYNAMIC/STREAM, glMapbuffer/glunmapbuffer. But nothing stops shooting memory on my desktops. I suspect that for VBO with ogl 1.5 i am missing some flags. PS: I have almost 500 to 600 VBO's in my application. I am using array of structures ( i.e. v,n,c,t together in a structure). And I am not aligning my VBOs to 16k memory. Can any one suggest me how I should go ahead to solve this issue. Any hints/pointers would be helpful.
Upvotes: 2
Views: 880
Reputation: 162317
Do you actually run out of memory or does your application increasingly consume memory? If not, why bother? If the OpenGL implementation keeps a working copy for itself, then this is probably for a reason. Also there's little you can do on the OpenGL side to avoid this, since it's entirely up to the driver how it manages its stuff. I think the best course of action, if you really want to keep the memory footprint low, is contacting NVidia, so that they can double check if this may be a bug in their drivers.
Upvotes: 2