diff --git a/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp index 2e42ee8fb..052ab40d4 100644 --- a/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp @@ -174,6 +174,24 @@ void WrappedOpenGL::glBindBuffer(GLenum target, GLuint buffer) if(r->datatype != target) { Chunk *chunk = NULL; + + r->LockChunks(); + while(true) + { + Chunk *end = r->GetLastChunk(); + + if(end->GetChunkType() == BIND_BUFFER) + { + SAFE_DELETE(end); + + r->PopChunk(); + + continue; + } + + break; + } + r->UnlockChunks(); { SCOPED_SERIALISE_CONTEXT(BIND_BUFFER);