From 7b191861e88bbc0411ea17dc51abc19957f9acf3 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 16 Jul 2020 12:12:38 +0100 Subject: [PATCH] Don't remove replacement when capture is closing * There's no need, and this can cause races. --- qrenderdoc/Windows/PipelineState/PipelineStateViewer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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); }); }); };