[SOLVED] Removing VBOs causes Display.update() to throw Out of memory (1285)

Started by Mickelukas, June 01, 2009, 10:29:11

Previous topic - Next topic

Mickelukas

Since the move to LWJGL I get memory exceptions sometimes which crashes the whole application. I've been reading around a bit on the web and found that it can be because of several reasons. Three I found was:
Textures not at a power of two (I made sure mine were)
Not newest gfx driver (I have the newest I can use)
Not rewinding buffers before adding them to the VBO (Mine are rewinded)

When I just let the game stand still I don't run into the problem but once I start creating and removing VBOs it crashes.

I came to the conclusion that it doesn't occur if I don't run the following line but I kind of need to run that one...:
ARBBufferObject.glDeleteBuffersARB(Buffers);

I have three "containers" that generate, populate and delete VBOs. If I only delete VBO's in one of them it works but if I delete VBOs in two or three of them it causes the above error.

Any known issue with deleting buffers?

Mickelukas

Adding getGLError here and there made it clear that it happens after I call glDrawArrays.

I tried with glDrawElements as well but it gave the same error. I also changed a float array I still had since the JOGL time into a FloatBuffer but it didn't help

Any ideas?

[EDIT]Ah, if I call glBindBufferARB with an buffer id that doesn't exist I get the same error. Seeing as I'm not getting it when I don't delete the buffers I somewhere delete a buffer that I try to use in the display loop.

[EDIT2] I had also mixed ARBVertexBufferObject calls with ARBBufferObject calls. Making it all VBO solved the last issues.

I hope this helps anyone that runs into the same issue.