From e658e60eb5f0946729a21bddac18d7ab44324a1f Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 2 Aug 2016 13:36:57 +0200 Subject: [PATCH] Make sure Fake VAO references its bound buffers too --- renderdoc/driver/gl/gl_driver.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/gl/gl_driver.cpp b/renderdoc/driver/gl/gl_driver.cpp index dc6479672..0c5846ee1 100644 --- a/renderdoc/driver/gl/gl_driver.cpp +++ b/renderdoc/driver/gl/gl_driver.cpp @@ -2468,7 +2468,16 @@ void WrappedOpenGL::StartFrameCapture(void *dev, void *wnd) GetResourceManager()->ClearReferencedResources(); GetResourceManager()->MarkResourceFrameReferenced(m_DeviceResourceID, eFrameRef_Write); - GetResourceManager()->MarkResourceFrameReferenced(m_FakeVAOID, eFrameRef_Write); + + GLuint prevVAO = 0; + m_Real.glGetIntegerv(eGL_VERTEX_ARRAY_BINDING, (GLint *)&prevVAO); + + m_Real.glBindVertexArray(m_FakeVAO); + + GetResourceManager()->MarkVAOReferenced(VertexArrayRes(GetCtx(), m_FakeVAO), eFrameRef_Write); + + m_Real.glBindVertexArray(prevVAO); + GetResourceManager()->PrepareInitialContents(); FreeCaptureData();