Hi there.
I am working with large Point based datasets with the AMD 7970. The points inside my VBO are stored in following order:
glGenBuffers(1, &VBOId);
glBufferData(GL_ARRAY_BUFFER, numPoints * (3 * sizeof(GLint)+sizeof(GLint)),NULL,GL_STATIC_DRAW);
glBufferSubData(GL_ARRAY_BUFFER, 0, numPoints * 3 * sizeof(GLint), xyz);
glBufferSubData(GL_ARRAY_BUFFER, numPoints * 3 * sizeof(GLint), numPoints * sizeof(GLint), rgbflags);
Now i have the problem that the VBO only gets only correct initialized when the numPoints is equal or less than 23950811. This leads to a 365MB VBO. When the numPoints exceeds the number, than i get the Invalid GL Object Error Message when i try to share it with CL.
I also can't render it with glDrawArrays, when it's exceeds the number. Exists there a maximum VBO size, or is there any other creation/initialization problem regarding to large VBOs?
Solved! Go to Solution.
Hi,
In theory, we should be able to support very large buffer sizes - well in excess of a gigabyte. However, there could well be some internal problem that either causes the memory allocation to fail (such as address space fragmentation or operating system state), or may cause us to fail to upload the data correctly.
As a workaround, I would suggest that you break the data-set up. If you use two buffers and separate vertex attributes rather than interleaved attributes, with one buffer for 'xyz' and one for 'rgbflags', you might get it working. Otherwise, you will need to break your dataset up further.
A few questions:
Thanks,
Graham
Hi,
In theory, we should be able to support very large buffer sizes - well in excess of a gigabyte. However, there could well be some internal problem that either causes the memory allocation to fail (such as address space fragmentation or operating system state), or may cause us to fail to upload the data correctly.
As a workaround, I would suggest that you break the data-set up. If you use two buffers and separate vertex attributes rather than interleaved attributes, with one buffer for 'xyz' and one for 'rgbflags', you might get it working. Otherwise, you will need to break your dataset up further.
A few questions:
Thanks,
Graham