From 5ec6da1e6ee784b6c72bc047356504bbde1f9e70 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 11 Mar 2019 16:09:50 +0000 Subject: [PATCH] Duplicate chunk if glBufferData creates a buffer mid-frame. Closes #1307 --- renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) 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