diff --git a/qrenderdoc/Windows/PipelineState/PipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/PipelineStateViewer.cpp index f6cbc3546..ebc6e1c57 100644 --- a/qrenderdoc/Windows/PipelineState/PipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/PipelineStateViewer.cpp @@ -94,8 +94,6 @@ PipelineStateViewer::PipelineStateViewer(ICaptureContext &ctx, QWidget *parent) for(size_t i = 0; i < ARRAY_COUNT(editMenus); i++) editMenus[i] = new QMenu(this); - setToD3D11(); - m_Ctx.AddCaptureViewer(this); } @@ -648,6 +646,16 @@ void PipelineStateViewer::MakeShaderVariablesHLSL(bool cbufferContents, } } +void PipelineStateViewer::showEvent(QShowEvent *event) +{ + // we didn't set any default pipeline state in case it would be overridden by the persist data. + // But if we don't have any persist data and we're about to show, default to D3D11. + if(m_Current == NULL) + { + setToD3D11(); + } +} + QString PipelineStateViewer::GenerateHLSLStub(const ShaderBindpointMapping &bindpointMapping, const ShaderReflection *shaderDetails, const QString &entryFunc) diff --git a/qrenderdoc/Windows/PipelineState/PipelineStateViewer.h b/qrenderdoc/Windows/PipelineState/PipelineStateViewer.h index e672934b5..cccca69d9 100644 --- a/qrenderdoc/Windows/PipelineState/PipelineStateViewer.h +++ b/qrenderdoc/Windows/PipelineState/PipelineStateViewer.h @@ -86,6 +86,8 @@ public slots: void shaderEdit_clicked(); private: + void showEvent(QShowEvent *event) override; + Ui::PipelineStateViewer *ui; ICaptureContext &m_Ctx;