From c32e9c7c44487995e083696e6b7ad77d65bfc325 Mon Sep 17 00:00:00 2001 From: baldurk Date: Sun, 18 Jan 2015 12:04:20 +0000 Subject: [PATCH] Stop any active feedback/queries before restoring frame initial state --- renderdoc/driver/gl/gl_driver.cpp | 44 +++++++++++++++---------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/renderdoc/driver/gl/gl_driver.cpp b/renderdoc/driver/gl/gl_driver.cpp index 2de44c2de..f8d8220c8 100644 --- a/renderdoc/driver/gl/gl_driver.cpp +++ b/renderdoc/driver/gl/gl_driver.cpp @@ -2855,29 +2855,7 @@ void WrappedOpenGL::ContextReplayLog(LogState readType, uint32_t startEventID, u RDCASSERT(header == CONTEXT_CAPTURE_HEADER); WrappedOpenGL *context = this; - - Serialise_BeginCaptureFrame(!partial); - - m_pSerialiser->PopContext(NULL, header); - - m_CurEvents.clear(); - if(m_State == EXECUTING) - { - FetchAPIEvent ev = GetEvent(startEventID); - m_CurEventID = ev.eventID; - m_pSerialiser->SetOffset(ev.fileOffset); - m_FirstEventID = startEventID; - m_LastEventID = endEventID; - } - else if(m_State == READING) - { - m_CurEventID = 1; - m_CurDrawcallID = 1; - m_FirstEventID = 0; - m_LastEventID = ~0U; - } - if(m_State == EXECUTING && !partial) { for(size_t i=0; i < 8; i++) @@ -2908,6 +2886,28 @@ void WrappedOpenGL::ContextReplayLog(LogState readType, uint32_t startEventID, u } } + Serialise_BeginCaptureFrame(!partial); + + m_pSerialiser->PopContext(NULL, header); + + m_CurEvents.clear(); + + if(m_State == EXECUTING) + { + FetchAPIEvent ev = GetEvent(startEventID); + m_CurEventID = ev.eventID; + m_pSerialiser->SetOffset(ev.fileOffset); + m_FirstEventID = startEventID; + m_LastEventID = endEventID; + } + else if(m_State == READING) + { + m_CurEventID = 1; + m_CurDrawcallID = 1; + m_FirstEventID = 0; + m_LastEventID = ~0U; + } + GetResourceManager()->MarkInFrame(true); while(1)