diff --git a/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp index 9c2dfe6a1..d1124b25a 100644 --- a/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.cpp @@ -2108,11 +2108,10 @@ void GLPipelineStateViewer::setState() else { bool raster = true; - bool fbo = true; if(state.vertexProcessing.discard) { - raster = fbo = false; + raster = false; } if(state.geometryShader.shaderResourceId == ResourceId() && state.transformFeedback.active) @@ -2128,9 +2127,7 @@ void GLPipelineStateViewer::setState() {true, true, state.tessControlShader.shaderResourceId != ResourceId(), state.tessEvalShader.shaderResourceId != ResourceId(), state.geometryShader.shaderResourceId != ResourceId() || state.transformFeedback.active, - raster, - !state.vertexProcessing.discard && state.fragmentShader.shaderResourceId != ResourceId(), - fbo, false}); + raster, raster && state.fragmentShader.shaderResourceId != ResourceId(), raster, false}); } } diff --git a/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp index 8432829df..a4704fb5a 100644 --- a/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp @@ -2596,6 +2596,13 @@ void VulkanPipelineStateViewer::setState() { bool xfbActive = !state.transformFeedback.buffers.isEmpty(); + bool raster = true; + + if(state.rasterizer.rasterizerDiscardEnable) + { + raster = false; + } + if(state.geometryShader.resourceId == ResourceId() && xfbActive) { ui->pipeFlow->setStageName(4, lit("XFB"), tr("Transform Feedback")); @@ -2605,10 +2612,11 @@ void VulkanPipelineStateViewer::setState() ui->pipeFlow->setStageName(4, lit("GS"), tr("Geometry Shader")); } - ui->pipeFlow->setStagesEnabled({true, true, state.tessControlShader.resourceId != ResourceId(), - state.tessEvalShader.resourceId != ResourceId(), - state.geometryShader.resourceId != ResourceId() || xfbActive, true, - state.fragmentShader.resourceId != ResourceId(), true, false}); + ui->pipeFlow->setStagesEnabled( + {true, true, state.tessControlShader.resourceId != ResourceId(), + state.tessEvalShader.resourceId != ResourceId(), + state.geometryShader.resourceId != ResourceId() || xfbActive, raster, + raster && state.fragmentShader.resourceId != ResourceId(), raster, false}); } }