From dfc82b3bd2ec653352b71df59777c864f05688b5 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 29 Jun 2020 14:16:18 +0100 Subject: [PATCH] Prevent debugging graphics stages if no drawcall is selected --- qrenderdoc/Windows/BufferViewer.cpp | 4 ++++ qrenderdoc/Windows/TextureViewer.cpp | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/qrenderdoc/Windows/BufferViewer.cpp b/qrenderdoc/Windows/BufferViewer.cpp index b8de72e7e..45877ccba 100644 --- a/qrenderdoc/Windows/BufferViewer.cpp +++ b/qrenderdoc/Windows/BufferViewer.cpp @@ -2290,6 +2290,10 @@ void BufferViewer::stageRowMenu(MeshDataStage stage, QMenu *menu, const QPoint & { m_DebugVert->setToolTip(tr("This API does not support shader debugging")); } + else if(!m_Ctx.CurDrawcall() || !(m_Ctx.CurDrawcall()->flags & DrawFlags::Drawcall)) + { + m_DebugVert->setToolTip(tr("No draw call selected")); + } else if(!shaderDetails) { m_DebugVert->setToolTip(tr("No vertex shader bound")); diff --git a/qrenderdoc/Windows/TextureViewer.cpp b/qrenderdoc/Windows/TextureViewer.cpp index 050dd3a41..ff616a269 100644 --- a/qrenderdoc/Windows/TextureViewer.cpp +++ b/qrenderdoc/Windows/TextureViewer.cpp @@ -507,7 +507,12 @@ void TextureViewer::UI_UpdateCachedTexture() const ShaderReflection *shaderDetails = m_Ctx.CurPipelineState().GetShaderReflection(ShaderStage::Pixel); - if(!shaderDetails) + if(!m_Ctx.CurDrawcall() || !(m_Ctx.CurDrawcall()->flags & DrawFlags::Drawcall)) + { + ui->debugPixelContext->setEnabled(false); + ui->debugPixelContext->setToolTip(tr("No draw call selected")); + } + else if(!shaderDetails) { ui->debugPixelContext->setEnabled(false); ui->debugPixelContext->setToolTip(tr("No pixel shader bound"));