From 2b0d898b34a2ad814b11797ed44878eced3e95df Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Thu, 2 May 2024 10:22:22 +0100 Subject: [PATCH] RD DXIL Disassembly: add "ssaAliases" container Used to display dx.op function arguments with a different string. The resource handles store the resource name as an SSA register alias. --- renderdoc/driver/shaders/dxil/dxil_disassemble.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp b/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp index e6d306854..6b56e0548 100644 --- a/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp @@ -2278,6 +2278,7 @@ void Program::MakeRDDisassemblyString(const DXBC::Reflection *reflection) DisassemblyAddNewLine(); std::map resHandles; + std::map ssaAliases; size_t curBlock = 0; @@ -2451,6 +2452,7 @@ void Program::MakeRDDisassemblyString(const DXBC::Reflection *reflection) resHandle.resourceClass = resClass; resHandle.resourceIndex = resIndex; resHandles[handleStr] = resHandle; + ssaAliases[handleStr] = resName; } uint32_t index; if(getival(inst.args[3], index)) @@ -2913,7 +2915,11 @@ void Program::MakeRDDisassemblyString(const DXBC::Reflection *reflection) lineStr += ", "; lineStr += paramNameStr; - lineStr += ArgToString(inst.args[a], false); + rdcstr ssaStr = ArgToString(inst.args[a], false); + if(ssaAliases.count(ssaStr) == 0) + lineStr += ssaStr; + else + lineStr += ssaAliases[ssaStr]; first = false; } }