diff --git a/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp index d23d578dd..62af8fad5 100644 --- a/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp @@ -827,6 +827,15 @@ void WrappedOpenGL::glBufferData(GLenum target, GLsizeiptr size, const void *dat record->Length = size; record->usage = usage; record->DataInSerialiser = true; + + // if we're active capturing then we need to add a duplicate call in so that the data is + // uploaded mid-frame, even if this is *also* the creation-type call. + if(IsActiveCapturing(m_State)) + { + GetContextRecord()->AddChunk(chunk->Duplicate()); + GetResourceManager()->MarkResourceFrameReferenced(record->GetResourceID(), + eFrameRef_PartialWrite); + } } } else