diff --git a/renderdoc/driver/d3d11/d3d11_replay.cpp b/renderdoc/driver/d3d11/d3d11_replay.cpp index c8725a9d8..32878a4c9 100644 --- a/renderdoc/driver/d3d11/d3d11_replay.cpp +++ b/renderdoc/driver/d3d11/d3d11_replay.cpp @@ -339,7 +339,7 @@ rdcstr D3D11Replay::DisassembleShader(ResourceId pipeline, const ShaderReflectio DXBC::DXBCContainer *dxbc = it->second->GetDXBC(); if(target == DXBCDisassemblyTarget || target.empty()) - return dxbc->GetDisassembly(true); + return dxbc->GetDisassembly(false); return StringFormat::Fmt("; Invalid disassembly target %s", target.c_str()); } diff --git a/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp b/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp index b3a33ef58..c0b0a513b 100644 --- a/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp +++ b/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp @@ -1466,7 +1466,7 @@ ShaderDebugTrace *D3D11Replay::DebugVertex(uint32_t eventId, uint32_t vertid, ui if(!dxbc) return new ShaderDebugTrace; - dxbc->GetDisassembly(true); + dxbc->GetDisassembly(false); D3D11RenderState *rs = m_pImmediateContext->GetCurrentPipelineState(); @@ -1857,7 +1857,7 @@ ShaderDebugTrace *D3D11Replay::DebugPixel(uint32_t eventId, uint32_t x, uint32_t if(!dxbc) return new ShaderDebugTrace; - dxbc->GetDisassembly(true); + dxbc->GetDisassembly(false); DXBC::DXBCContainer *prevdxbc = NULL; @@ -2599,7 +2599,7 @@ ShaderDebugTrace *D3D11Replay::DebugThread(uint32_t eventId, if(!dxbc) return new ShaderDebugTrace; - dxbc->GetDisassembly(true); + dxbc->GetDisassembly(false); D3D11RenderState *rs = m_pImmediateContext->GetCurrentPipelineState(); diff --git a/renderdoc/driver/d3d12/d3d12_overlay.cpp b/renderdoc/driver/d3d12/d3d12_overlay.cpp index b1216f52c..37b009bf2 100644 --- a/renderdoc/driver/d3d12/d3d12_overlay.cpp +++ b/renderdoc/driver/d3d12/d3d12_overlay.cpp @@ -972,7 +972,7 @@ void D3D12Replay::PatchQuadWritePS(D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC &pi if(!D3D12_Debug_OverlayDumpDirPath().empty()) FileIO::WriteAll(D3D12_Debug_OverlayDumpDirPath() + "/after_quadps.dxbc", patchedPs); - DXBC::DXBCContainer(patchedPs, rdcstr(), GraphicsAPI::D3D12, ~0U, ~0U).GetDisassembly(true); + DXBC::DXBCContainer(patchedPs, rdcstr(), GraphicsAPI::D3D12, ~0U, ~0U).GetDisassembly(false); pipeDesc.PS.pShaderBytecode = patchedPs.data(); pipeDesc.PS.BytecodeLength = patchedPs.size(); diff --git a/renderdoc/driver/d3d12/d3d12_replay.cpp b/renderdoc/driver/d3d12/d3d12_replay.cpp index 1f38834cd..b06195fcf 100644 --- a/renderdoc/driver/d3d12/d3d12_replay.cpp +++ b/renderdoc/driver/d3d12/d3d12_replay.cpp @@ -56,6 +56,7 @@ static const char *LiveDriverDisassemblyTarget = "Live driver disassembly"; ID3DDevice *GetD3D12DeviceIfAlloc(IUnknown *dev); static const char *DXBCDXILDisassemblyTarget = "DXBC/DXIL"; +static const char *DXCDXILDisassemblyTarget = "DXC DXIL"; D3D12Replay::D3D12Replay(WrappedID3D12Device *d) { @@ -539,6 +540,8 @@ rdcarray D3D12Replay::GetDisassemblyTargets(bool withPipeline) // DXBC/DXIL is always first ret.push_back(DXBCDXILDisassemblyTarget); + // DXC DXIL + ret.push_back(DXCDXILDisassemblyTarget); if(!m_ISAChecked && m_TexRender.BlendPipe) { @@ -581,6 +584,9 @@ rdcstr D3D12Replay::DisassembleShader(ResourceId pipeline, const ShaderReflectio DXBC::DXBCContainer *dxbc = sh->GetDXBC(); if(target == DXBCDXILDisassemblyTarget || target.empty()) + return dxbc->GetDisassembly(false); + + if(target == DXCDXILDisassemblyTarget) return dxbc->GetDisassembly(true); if(target == LiveDriverDisassemblyTarget) diff --git a/renderdoc/driver/d3d12/d3d12_shaderdebug.cpp b/renderdoc/driver/d3d12/d3d12_shaderdebug.cpp index 762362243..29db6ebca 100644 --- a/renderdoc/driver/d3d12/d3d12_shaderdebug.cpp +++ b/renderdoc/driver/d3d12/d3d12_shaderdebug.cpp @@ -1519,7 +1519,7 @@ ShaderDebugTrace *D3D12Replay::DebugVertex(uint32_t eventId, uint32_t vertid, ui return new ShaderDebugTrace; } - dxbc->GetDisassembly(true); + dxbc->GetDisassembly(false); const ActionDescription *action = m_pDevice->GetAction(eventId); @@ -1901,7 +1901,7 @@ ShaderDebugTrace *D3D12Replay::DebugPixel(uint32_t eventId, uint32_t x, uint32_t return new ShaderDebugTrace; } - dxbc->GetDisassembly(true); + dxbc->GetDisassembly(false); // Fetch the previous stage's disassembly, to match outputs to PS inputs DXBCContainer *prevDxbc = NULL; @@ -2725,7 +2725,7 @@ ShaderDebugTrace *D3D12Replay::DebugThread(uint32_t eventId, return new ShaderDebugTrace; } - dxbc->GetDisassembly(true); + dxbc->GetDisassembly(false); InterpretDebugger *interpreter = new InterpretDebugger; interpreter->eventId = eventId;