From 1617b4618dcd99c7b2bb4e791ffe7a549888360c Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 20 Dec 2018 10:36:59 +0000 Subject: [PATCH] Fix crash on GL after saving a texture to disk, wrong thread access --- qrenderdoc/Windows/TextureViewer.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/qrenderdoc/Windows/TextureViewer.cpp b/qrenderdoc/Windows/TextureViewer.cpp index 6aab23611..45be21e08 100644 --- a/qrenderdoc/Windows/TextureViewer.cpp +++ b/qrenderdoc/Windows/TextureViewer.cpp @@ -3480,7 +3480,13 @@ void TextureViewer::on_saveTex_clicked() m_SaveConfig.resourceId = id; } - const ResourceId overlayTexID = m_Output->GetDebugOverlayTexID(); + ResourceId overlayTexID; + if(m_TexDisplay.overlay != DebugOverlay::NoOverlay) + { + m_Ctx.Replay().BlockInvoke([this, &overlayTexID](IReplayController *r) { + overlayTexID = m_Output->GetDebugOverlayTexID(); + }); + } const bool hasSelectedOverlay = (m_TexDisplay.overlay != DebugOverlay::NoOverlay); const bool hasOverlay = (hasSelectedOverlay && overlayTexID != ResourceId()); TextureSaveDialog saveDialog(*texptr, hasOverlay, m_SaveConfig, this);