From 0fbdcbc83c0e613bc4c6352dea86907d076652b7 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 1 Jul 2014 00:52:18 +0100 Subject: [PATCH] If a constant buffer is unused, open raw buffer viewer. Closes #60 --- .../PipelineState/D3D11PipelineStateViewer.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/renderdocui/Windows/PipelineState/D3D11PipelineStateViewer.cs b/renderdocui/Windows/PipelineState/D3D11PipelineStateViewer.cs index e507d6d1c..dd491b6b2 100644 --- a/renderdocui/Windows/PipelineState/D3D11PipelineStateViewer.cs +++ b/renderdocui/Windows/PipelineState/D3D11PipelineStateViewer.cs @@ -1852,6 +1852,24 @@ namespace renderdocui.Windows.PipelineState private void ShowCBuffer(D3D11PipelineState.ShaderStage stage, UInt32 slot) { + if (stage.ShaderDetails != null && + (stage.ShaderDetails.ConstantBlocks.Length <= slot || + stage.ShaderDetails.ConstantBlocks[slot].name == "") + ) + { + // unused cbuffer, open regular buffer viewer + var viewer = new BufferViewer(m_Core, false); + + if (stage.ConstantBuffers.Length < slot) + return; + + var buf = stage.ConstantBuffers[slot].Buffer; + viewer.ViewRawBuffer(buf); + viewer.Show(m_DockContent.DockPanel); + + return; + } + var existing = ConstantBufferPreviewer.Has(stage.stage, slot); if (existing != null) {