From 3c6a1316d5f49f857ec08a704bd8c74de59884d4 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 12 Feb 2015 21:15:25 +0000 Subject: [PATCH] Fix using the wrong ID for replacements & removing them --- renderdoc/driver/gl/gl_driver.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/gl/gl_driver.cpp b/renderdoc/driver/gl/gl_driver.cpp index 322ade015..1a6c63f2a 100644 --- a/renderdoc/driver/gl/gl_driver.cpp +++ b/renderdoc/driver/gl/gl_driver.cpp @@ -1472,12 +1472,14 @@ void WrappedOpenGL::ReplaceResource(ResourceId from, ResourceId to) // copy uniforms CopyProgramUniforms(m_Real, progsrc, progdst); + ResourceId origsrcid = GetResourceManager()->GetOriginalID(progsrcid); + // replaceresource - GetResourceManager()->ReplaceResource(GetResourceManager()->GetOriginalID(progsrcid), progdstid); + GetResourceManager()->ReplaceResource(origsrcid, progdstid); // insert into m_DependentReplacements auto insertPos = std::lower_bound(m_DependentReplacements.begin(), m_DependentReplacements.end(), from, ReplacementSearch()); - m_DependentReplacements.insert(insertPos, std::make_pair(from, Replacement(progsrcid, ProgramRes(GetCtx(), progdst)))); + m_DependentReplacements.insert(insertPos, std::make_pair(from, Replacement(origsrcid, ProgramRes(GetCtx(), progdst)))); } break;