As i already mentioned here, cudaGraphicsGLRegisterBuffer fails after a certain number of calls with cudaErrorMemoryAllocation.

So i tried and tested around a bit:

    every cudaGraphicsGLRegisterBuffer takes (at least) 4KB of device memory…i guess thats the page size.

    the function allocates at least as much memory as needed for the Data in the VBO

The Question is:

    why does this function actually allocate anything? Isn’t the idea to get the pointer of an EXISTING buffer?

    What’s happening inside? And in case the VBO gets copied: why does it actually has to be mapped?

    []In case the (unconsidered) memory allocation causes the cudaErrorMemoryAllocation: why does it fail after ~3600 VBOs? That are only 4KB3600=14MB?

I don’t think that just cudaMapResources copies the memory, since it’s to fast for that.

I woudn’t mind to get some binding answer from someone who really knows instead of guessing ;) THANKS!