diff --git a/renderdocui/Windows/BufferViewer.cs b/renderdocui/Windows/BufferViewer.cs index 8f6041c94..cf4e39096 100644 --- a/renderdocui/Windows/BufferViewer.cs +++ b/renderdocui/Windows/BufferViewer.cs @@ -2476,7 +2476,11 @@ namespace renderdocui.Windows this.BeginInvoke(new Action(() => { - ShaderViewer s = new ShaderViewer(m_Core, shaderDetails, ShaderStageType.Vertex, trace); + string debugContext = String.Format("Vertex {0}", row); + if (draw.numInstances > 1) + debugContext += String.Format(", Instance {0}", m_CurInst); + + ShaderViewer s = new ShaderViewer(m_Core, shaderDetails, ShaderStageType.Vertex, trace, debugContext); s.Show(this.DockPanel); })); diff --git a/renderdocui/Windows/PipelineState/D3D11PipelineStateViewer.cs b/renderdocui/Windows/PipelineState/D3D11PipelineStateViewer.cs index dd491b6b2..95255527f 100644 --- a/renderdocui/Windows/PipelineState/D3D11PipelineStateViewer.cs +++ b/renderdocui/Windows/PipelineState/D3D11PipelineStateViewer.cs @@ -1581,7 +1581,7 @@ namespace renderdocui.Windows.PipelineState if(m_Core.CurD3D11PipelineState != null && m_Core.CurD3D11PipelineState.m_IA.Bytecode != null) { - (new ShaderViewer(m_Core, m_Core.CurD3D11PipelineState.m_IA.Bytecode, ShaderStageType.Vertex, null)) + (new ShaderViewer(m_Core, m_Core.CurD3D11PipelineState.m_IA.Bytecode, ShaderStageType.Vertex, null, "")) .Show(m_DockContent.DockPanel); } @@ -1596,7 +1596,7 @@ namespace renderdocui.Windows.PipelineState if (stage.Shader == ResourceId.Null) return; - ShaderViewer s = new ShaderViewer(m_Core, shaderDetails, stage.stage, null); + ShaderViewer s = new ShaderViewer(m_Core, shaderDetails, stage.stage, null, ""); s.Show(m_DockContent.DockPanel); } @@ -2045,7 +2045,9 @@ namespace renderdocui.Windows.PipelineState this.BeginInvoke(new Action(() => { - ShaderViewer s = new ShaderViewer(m_Core, shaderDetails, ShaderStageType.Compute, trace); + string debugContext = String.Format("Group [{0},{1},{2}] Thread [{3},{4},{5}]", gx, gy, gz, tx, ty, tz); + + ShaderViewer s = new ShaderViewer(m_Core, shaderDetails, ShaderStageType.Compute, trace, debugContext); s.Show(m_DockContent.DockPanel); })); diff --git a/renderdocui/Windows/PipelineState/GLPipelineStateViewer.cs b/renderdocui/Windows/PipelineState/GLPipelineStateViewer.cs index d25edfaec..2e63c6097 100644 --- a/renderdocui/Windows/PipelineState/GLPipelineStateViewer.cs +++ b/renderdocui/Windows/PipelineState/GLPipelineStateViewer.cs @@ -932,7 +932,7 @@ namespace renderdocui.Windows.PipelineState if (stage.Shader == ResourceId.Null) return; - ShaderViewer s = new ShaderViewer(m_Core, shaderDetails, stage.stage, null); + ShaderViewer s = new ShaderViewer(m_Core, shaderDetails, stage.stage, null, ""); s.Show(m_DockContent.DockPanel); } diff --git a/renderdocui/Windows/PixelHistoryView.cs b/renderdocui/Windows/PixelHistoryView.cs index d24c5b4ea..20111a24b 100644 --- a/renderdocui/Windows/PixelHistoryView.cs +++ b/renderdocui/Windows/PixelHistoryView.cs @@ -436,7 +436,9 @@ namespace renderdocui.Windows this.BeginInvoke(new Action(() => { - ShaderViewer s = new ShaderViewer(m_Core, shaderDetails, ShaderStageType.Pixel, trace); + string debugContext = String.Format("Pixel {0},{1}", pixel.X, pixel.Y); + + ShaderViewer s = new ShaderViewer(m_Core, shaderDetails, ShaderStageType.Pixel, trace, debugContext); s.Show(this.DockPanel); })); diff --git a/renderdocui/Windows/ShaderViewer.cs b/renderdocui/Windows/ShaderViewer.cs index 2e489e178..ded5f0b0e 100644 --- a/renderdocui/Windows/ShaderViewer.cs +++ b/renderdocui/Windows/ShaderViewer.cs @@ -283,7 +283,7 @@ namespace renderdocui.Windows } } - public ShaderViewer(Core core, ShaderReflection shader, ShaderStageType stage, ShaderDebugTrace trace) + public ShaderViewer(Core core, ShaderReflection shader, ShaderStageType stage, ShaderDebugTrace trace, string debugContext) { InitializeComponent(); @@ -307,6 +307,11 @@ namespace renderdocui.Windows case ShaderStageType.Compute: m_Stage = m_Core.CurD3D11PipelineState.m_CS; break; } + if (trace != null) + Text = String.Format("Debug Shader {0} - {1}", m_Core.CurPipelineState.GetShader(stage), debugContext); + else + Text = String.Format("Shader {0}", m_Core.CurPipelineState.GetShader(stage)); + var disasm = shader.Disassembly; if (m_Core.Config.ShaderViewer_FriendlyNaming) @@ -395,7 +400,10 @@ namespace renderdocui.Windows if (shader.DebugInfo.entryFunc != "" && shader.DebugInfo.files.Length > 0) { - Text = shader.DebugInfo.entryFunc+ "()"; + if(trace != null) + Text = String.Format("Debug {0}() - {1}", shader.DebugInfo.entryFunc, debugContext); + else + Text = String.Format("{0}()", shader.DebugInfo.entryFunc); DockContent sel = null; foreach (var f in shader.DebugInfo.files) diff --git a/renderdocui/Windows/TextureViewer.cs b/renderdocui/Windows/TextureViewer.cs index ba1eded11..45b0fa54f 100644 --- a/renderdocui/Windows/TextureViewer.cs +++ b/renderdocui/Windows/TextureViewer.cs @@ -2692,7 +2692,9 @@ namespace renderdocui.Windows this.BeginInvoke(new Action(() => { - ShaderViewer s = new ShaderViewer(m_Core, shaderDetails, ShaderStageType.Pixel, trace); + string debugContext = String.Format("Pixel {0},{1}", m_PickedPoint.X, m_PickedPoint.Y); + + ShaderViewer s = new ShaderViewer(m_Core, shaderDetails, ShaderStageType.Pixel, trace, debugContext); s.Show(this.DockPanel); }));