diff --git a/qrenderdoc/Windows/PipelineState/PipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/PipelineStateViewer.cpp index 2c2426ad7..f6cbc3546 100644 --- a/qrenderdoc/Windows/PipelineState/PipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/PipelineStateViewer.cpp @@ -856,7 +856,8 @@ IShaderViewer *PipelineStateViewer::EditShader(ResourceId id, ShaderStage shader // remove the replacement on close (we could make this more sophisticated if there // was a place to control replaced resources/shaders). ctx->Replay().AsyncInvoke([ctx, id](IReplayController *r) { - r->RemoveReplacement(id); + if(ctx->IsCaptureLoaded()) + r->RemoveReplacement(id); GUIInvoke::call(ctx->GetMainWindow()->Widget(), [ctx, id] { ctx->UnregisterReplacement(id); }); }); };