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 External Image THANKS!