What is the maximum number of Uniform Buffer Objects I can make?

What is the maximum number of Uniform Buffer Objects I can make in OpenGL 3.2+?

I’m using code similar to the following to generate UBO’s (and lets assume size and data_pointer have valid data in them)


GLuint uboIndex = 0;
glGenBuffers(1, &uboIndex);
glBindBuffer(GL_UNIFORM_BUFFER, uboIndex);

glBufferData(GL_UNIFORM_BUFFER, size, data_pointer, GL_DYNAMIC_DRAW);
glBindBuffer(GL_UNIFORM_BUFFER, 0);

How many times could I potentially run this code? Is it limited only by the available memory on the Graphics Card?

ps: sorry for all the edits for formatting - I had to switch from chromium to firefox 17. Apparently this site doesn’t play nice with Chromium.

I also posted on StackOverflow, and got this answer (in case anyone stumbles across this post and would like an answer):

[LEFT]There is no such thing as a “Uniform Buffer Object”; there are only buffer objects. One of the uses for buffer objects is as storage for uniform data.
OpenGL does not have an explicit limit on the number of buffer objects you can create. How many you can create depends primarily on how much memory the OpenGL implementation can allocate.
[/LEFT]