From 4a481edd32a0c6cbcece78b3852101237eb6cb03 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 20 May 2024 15:14:40 +0100 Subject: [PATCH] Tweak label naming to be more C-like and demangled --- .../driver/shaders/dxbc/dxbc_container.cpp | 2 +- .../driver/shaders/dxil/dxil_disassemble.cpp | 47 +++++++++++++------ 2 files changed, 33 insertions(+), 16 deletions(-) diff --git a/renderdoc/driver/shaders/dxbc/dxbc_container.cpp b/renderdoc/driver/shaders/dxbc/dxbc_container.cpp index 365e3e774..e39811b48 100644 --- a/renderdoc/driver/shaders/dxbc/dxbc_container.cpp +++ b/renderdoc/driver/shaders/dxbc/dxbc_container.cpp @@ -2311,7 +2311,7 @@ TEST_CASE("DO NOT COMMIT - convenience test", "[dxbc]") // the only thing fetched lazily is the disassembly, so grab that here - rdcstr disasm = container.GetDisassembly(); + rdcstr disasm = container.GetDisassembly(false); RDCLOG("%s", disasm.c_str()); } diff --git a/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp b/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp index f25fbe505..5743a1815 100644 --- a/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp @@ -1051,11 +1051,22 @@ rdcstr Program::ArgToString(const Value *v, bool withTypes, const rdcstr &attrSt if(withTypes) ret = "label "; ret += attrString; - if(block->name.empty()) - ret += StringFormat::Fmt("%c%u", DXIL::dxilIdentifier, block->slot); + if(DXIL::dxcStyleFormatting) + { + if(block->name.empty()) + ret += StringFormat::Fmt("%c%u", DXIL::dxilIdentifier, block->slot); + else + ret += StringFormat::Fmt("%c%s", DXIL::dxilIdentifier, + escapeStringIfNeeded(block->name).c_str()); + } else - ret += - StringFormat::Fmt("%c%s", DXIL::dxilIdentifier, escapeStringIfNeeded(block->name).c_str()); + { + if(block->name.empty()) + ret += StringFormat::Fmt("%clabel%u", DXIL::dxilIdentifier, block->slot); + else + ret += StringFormat::Fmt("%clabel_%s%u", DXIL::dxilIdentifier, + DXBC::BasicDemangle(block->name).c_str(), block->id); + } } else { @@ -4118,11 +4129,12 @@ void Program::MakeRDDisassemblyString(const DXBC::Reflection *reflection) rdcstr labelName; if(func.blocks[curBlock]->name.empty()) - labelName = StringFormat::Fmt(";