From aec7af04e4d587de5e562d7f96462eb4dbd726ce Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 26 Dec 2014 12:21:43 +0000 Subject: [PATCH] If we're retyping in BindBuffer(), remove any redundant BindBuffer()s --- .../driver/gl/wrappers/gl_buffer_funcs.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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);