From cf78735861fea7d06e4276fe7e3fb2a167b92f68 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 28 Jun 2021 12:23:55 +0100 Subject: [PATCH] GetLiveID should respect replacements. Closes #2300 * This ensures we use the up to date edited pipeline for e.g. pipeline-based shader disassembly. --- renderdoc/core/replay_proxy.cpp | 3 ++- renderdoc/core/resource_manager.h | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/renderdoc/core/replay_proxy.cpp b/renderdoc/core/replay_proxy.cpp index 3f3cee069..2da820ece 100644 --- a/renderdoc/core/replay_proxy.cpp +++ b/renderdoc/core/replay_proxy.cpp @@ -1209,7 +1209,8 @@ rdcstr ReplayProxy::Proxied_DisassembleShader(ParamSerialiser ¶mser, ReturnS if(paramser.IsReading() && !paramser.IsErrored() && !m_IsErrored) { - refl = m_Remote->GetShader(pipeline, m_Remote->GetLiveID(Shader), EntryPoint); + refl = + m_Remote->GetShader(m_Remote->GetLiveID(pipeline), m_Remote->GetLiveID(Shader), EntryPoint); ret = m_Remote->DisassembleShader(pipeline, refl, target); } diff --git a/renderdoc/core/resource_manager.h b/renderdoc/core/resource_manager.h index 76eeb7ab1..91ecd5e63 100644 --- a/renderdoc/core/resource_manager.h +++ b/renderdoc/core/resource_manager.h @@ -1926,6 +1926,10 @@ ResourceId ResourceManager::GetLiveID(ResourceId id) if(id == ResourceId()) return id; + auto it = m_Replacements.find(id); + if(it != m_Replacements.end()) + return it->second; + RDCASSERT(m_LiveIDs.find(id) != m_LiveIDs.end(), id); return m_LiveIDs[id]; }