   GL_OUT_OF_MEMORY strikes at random?
  I'm developing a little graphics application that I haven't gotten very far with, but lately I'm getting these crippling strikes by a GL_OUT_OF_MEMORY error seemingly at random.I've just currently rendering a little pool of water with a reflection, and rendering a few small static meshes and a skycube with 6 textures (512x512).Usually I can start this up and it will run at very good framerates, probably 60+fps, I can zoom around in my camera and play with it for minutes and it will have no problems at all.However it seems that at random when I start my program it will start running at something like 1fps and throw up GL_OUT_OF_MEMORY errors. The error itself typically comes from a glDrawElements call of only 30 vertices :(If I close the program and just restart it it might start running at 60fps again, or it might start running at 1fps. I've made absolutely certain I'm not leaking textures or buffers or anything during my render loop with a glIntercept log, and I can typically run it no problem for several minutes on end.The only thing I can think of is that I'm not actually cleaning up my opengl context when exiting the program, but this should be handled by the process on exit right? Half the time I'm quitting the program at a breakpoint or on a crash so even if I did clean it up on exit it seems like that wouldn't fire anyway.Has anyone any experience with this kind of error before? I downloaded glExpert from nvidia but the log doesn't give me much information I can use.This is just a snippet from it, I don't really know how to interpret it.OGLE: Category: 0x00000800, MessageID: 0x008B0000 Basic buffer object information:   Total VBO memory usage in the system:  memType: SYSHEAP, 0 bytes Allocated, numAllocations: 0.  memType: VID, 346.61 Kb Allocated, numAllocations: 7.  memType: DMA_CACHED, 0 bytes Allocated, numAllocations: 0.  memType: MALLOC, 190.90 Kb Allocated, numAllocations: 66.  memType: PAGED_AND_MAPPED, 345.73 Kb Allocated, numAllocations:  2.  memType: PAGED, 31.13 Mb Allocated, numAllocations: 37.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Trying to allocate VBO with  size:, 48 bytes to location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 3 (bound to  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (0), usage hint is  GL_STATIC_DRAW) stored in VIDEO memory has been updated.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 3 (bound to  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (0), usage hint is  GL_STATIC_DRAW) will use VIDEO memory as the source for buffer  object operations.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Trying to allocate VBO with  size:, 32 bytes to location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 4 (bound to  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (1), and  GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) stored  in VIDEO memory has been updated.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 4 (bound to  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (1), and  GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will  use VIDEO memory as the source for buffer object operations.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Trying to allocate VBO with  size:, 384 bytes to location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 6 (bound to  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (0), usage hint is  GL_STATIC_DRAW) stored in VIDEO memory has been updated.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 6 (bound to  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (0), usage hint is  GL_STATIC_DRAW) will use VIDEO memory as the source for buffer  object operations.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Trying to allocate VBO with  size:, 256 bytes to location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 7 (bound to  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (1), and  GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) stored  in VIDEO memory has been updated.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 7 (bound to  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (1), and  GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will  use VIDEO memory as the source for buffer object operations.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Trying to allocate VBO with  size:, 192 bytes to location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 5 (bound to  GL_TRANSFORM_FEEDBACK_BUFFER_NV (0), usage hint is GL_STATIC_DRAW)  stored in VIDEO memory has been updated.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 5 (bound to  GL_TRANSFORM_FEEDBACK_BUFFER_NV (0), usage hint is GL_STATIC_DRAW)  will use VIDEO memory as the source for buffer object operations.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Evicting VBO to MALLOC with  size:, 288 bytes from location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Evicting VBO to MALLOC with  size:, 96 bytes from location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Evicting VBO to MALLOC with  size:, 228.54 Kb from location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Evicting VBO to MALLOC with  size:, 117.19 Kb from location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Evicting VBO to MALLOC with  size:, 48 bytes from location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Evicting VBO to MALLOC with  size:, 32 bytes from location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Evicting VBO to MALLOC with  size:, 192 bytes from location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Evicting VBO to MALLOC with  size:, 384 bytes from location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Evicting VBO to MALLOC with  size:, 256 bytes from location: VIDOGLE: Category: 0x00000001, MessageID: 0x00800006 Not enough memory left to execute the current operation:  OGL  Error Code = 0x00000505 (GL_OUT_OF_MEMORY)OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Trying to allocate VBO with  size:, 288 bytes to location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 12 (bound to  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (0), and  GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) stored  in VIDEO memory has been updated.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 12 (bound to  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (0), and  GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will  use VIDEO memory as the source for buffer object operations.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Trying to allocate VBO with  size:, 96 bytes to location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 11 (bound to  GL_TRANSFORM_FEEDBACK_BUFFER_NV (0), usage hint is GL_STATIC_DRAW)  stored in VIDEO memory has been updated.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 11 (bound to  GL_TRANSFORM_FEEDBACK_BUFFER_NV (0), usage hint is GL_STATIC_DRAW)  will use VIDEO memory as the source for buffer object operations.OGLE: Category: 0x00004000, MessageID: 0x008E0001 Detailed framebuffer object information:  The driver allocated  storage for renderbuffer 1.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Trying to allocate VBO with  size:, 384 bytes to location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 6 (bound to  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (0), usage hint is  GL_STATIC_DRAW) stored in VIDEO memory has been updated.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 6 (bound to  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (0), usage hint is  GL_STATIC_DRAW) will use VIDEO memory as the source for buffer  object operations.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Trying to allocate VBO with  size:, 256 bytes to location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 7 (bound to  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (1), and  GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) stored  in VIDEO memory has been updated.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 7 (bound to  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (1), and  GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will  use VIDEO memory as the source for buffer object operations.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Trying to allocate VBO with  size:, 192 bytes to location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 5 (bound to  GL_TRANSFORM_FEEDBACK_BUFFER_NV (0), usage hint is GL_STATIC_DRAW)  stored in VIDEO memory has been updated.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Buffer object 5 (bound to  GL_TRANSFORM_FEEDBACK_BUFFER_NV (0), usage hint is GL_STATIC_DRAW)  will use VIDEO memory as the source for buffer object operations.OGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Evicting VBO to MALLOC with  size:, 96 bytes from location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Evicting VBO to MALLOC with  size:, 288 bytes from location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Evicting VBO to MALLOC with  size:, 192 bytes from location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Evicting VBO to MALLOC with  size:, 384 bytes from location: VIDOGLE: Category: 0x00000800, MessageID: 0x008B0001 Detailed buffer object information:  Evicting VBO to MALLOC with  size:, 256 bytes from location: VIDOGLE: Category: 0x00000001, MessageID: 0x00800006 Not enough memory left to execute the current operation:  OGL  Error Code = 0x00000505 (GL_OUT_OF_MEMORY)
  There was a severe memory leak in a previous driver version, after ~500 runs of my program which was halfway working and didn't release its ~1.5mb of textures would no longer obtain a context let alone allocate its VBOs/Textures/DLs   