From 6cddf16263f112642b2f13045a906c3076c95801 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Mon, 10 Jun 2024 17:10:01 +0100 Subject: [PATCH] DXIL Shader Debugger call FillTraceLine() for DXBC and DXIL debugging Some lines of the disassembly output come from DXBC parsing and need to account for that in the trace line info --- renderdoc/driver/d3d12/d3d12_shaderdebug.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_shaderdebug.cpp b/renderdoc/driver/d3d12/d3d12_shaderdebug.cpp index 440037f2a..d60ccab50 100644 --- a/renderdoc/driver/d3d12/d3d12_shaderdebug.cpp +++ b/renderdoc/driver/d3d12/d3d12_shaderdebug.cpp @@ -1852,14 +1852,14 @@ ShaderDebugTrace *D3D12Replay::DebugVertex(uint32_t eventId, uint32_t vertid, ui ret->inputs = state.inputs; delete[] instData; - - dxbc->FillTraceLineInfo(*ret); } else { RDCERR("TODO ADD DXIL VERTEX SHADER DEBUGGER SUPPORT"); } + if(ret) + dxbc->FillTraceLineInfo(*ret); return ret; } @@ -2692,14 +2692,14 @@ void ExtractInputsPS(PSInput IN, ret->constantBlocks = global.constantBlocks; ret->inputs = state.inputs; - - dxbc->FillTraceLineInfo(*ret); } else { RDCERR("TODO ADD DXIL PIXEL SHADER DEBUGGER SUPPORT"); } + if(ret) + dxbc->FillTraceLineInfo(*ret); return ret; } @@ -2773,8 +2773,6 @@ ShaderDebugTrace *D3D12Replay::DebugThread(uint32_t eventId, ret->constantBlocks = global.constantBlocks; - dxbc->FillTraceLineInfo(*ret); - // add fake inputs for semantics for(size_t i = 0; i < dxbc->GetDXBCByteCode()->GetNumDeclarations(); i++) { @@ -2834,6 +2832,8 @@ ShaderDebugTrace *D3D12Replay::DebugThread(uint32_t eventId, RDCERR("TODO ADD DXIL COMPUTE SHADER DEBUGGER SUPPORT"); } + if(ret) + dxbc->FillTraceLineInfo(*ret); return ret; }