OpenGL VBO Mapping

Hello,

my question is:

are mapped OpenGL VBOs resident in Memory, which would mean that it’s possible to store their memory-addresses once after calling “cudaGraphicsResourceGetMappedPointer” instead of calling this function everytime i want to modify the memory?

or better: can i trust opengl, that the name of a vbo (the number, e.g. 1) is directly connected to one address for the whole lifetime of the registered VBO or yould it happen, that the opengl driver reorganizes the device memory for several reasons?

While in practice OpenGL VBOs will usually be resident in video memory, the driver is free to move them around (based on available memory etc.). So you should always map/unmap the buffer each time it is accessed.

Thanks, that’s helpful, but actually bad news.

In order to modify larger amounts of VBOs it was my plan to split every VBO in blocks, and address them directly to let every thread modify some vertizes.
Do you have any better/other/more functional idea how to modify many VBOs with only 1 kernel well structured?