From 542f66464581d4c4b26250c7f2a7ca394f6ba5ed Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 28 Jan 2019 16:28:53 +0000 Subject: [PATCH] Fix missing register swizzles on relative addressing lookups --- renderdoc/driver/shaders/dxbc/dxbc_disassemble.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/shaders/dxbc/dxbc_disassemble.cpp b/renderdoc/driver/shaders/dxbc/dxbc_disassemble.cpp index 7c3eab369..3710a733c 100644 --- a/renderdoc/driver/shaders/dxbc/dxbc_disassemble.cpp +++ b/renderdoc/driver/shaders/dxbc/dxbc_disassemble.cpp @@ -769,7 +769,8 @@ bool DXBCFile::ExtractOperand(uint32_t *&tokenStream, ToString flags, ASMOperand } if(retOper.indices[idx].relative) - retOper.indices[idx].str = "[" + retOper.indices[idx].operand.toString(this, flags) + " + "; + retOper.indices[idx].str = + "[" + retOper.indices[idx].operand.toString(this, flags | ToString::ShowSwizzle) + " + "; if(retOper.indices[idx].absolute) { @@ -1044,7 +1045,10 @@ string ASMOperand::toString(DXBCFile *dxbc, ToString flags) const { str = "cb"; - str += StringFormat::Fmt("%s[%s]", indices[0].str.c_str(), indices[1].str.c_str()); + if(indices[1].relative) + str += StringFormat::Fmt("%s%s", indices[0].str.c_str(), indices[1].str.c_str()); + else + str += StringFormat::Fmt("%s[%s]", indices[0].str.c_str(), indices[1].str.c_str()); if(dxbc && friendly && !dxbc->m_GuessedResources && indices[0].absolute) {