diff --git a/renderdoc/driver/shaders/dxil/dxil_bytecode.cpp b/renderdoc/driver/shaders/dxil/dxil_bytecode.cpp index c3e57f76e..8e3219faa 100644 --- a/renderdoc/driver/shaders/dxil/dxil_bytecode.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_bytecode.cpp @@ -942,6 +942,7 @@ Program::Program(const byte *bytes, size_t length) else if(IS_KNOWN(rootchild.id, KnownBlocks::CONSTANTS_BLOCK)) { const Type *t = NULL; + m_Constants.reserve(m_Constants.size() + rootchild.children.size()); for(const LLVMBC::BlockOrRecord &constant : rootchild.children) { if(constant.IsBlock()) diff --git a/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp b/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp index b63f6faf8..73abc7043 100644 --- a/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp @@ -446,10 +446,10 @@ void Program::MakeDisassemblyString() if(g.flags & GlobalFlags::IsExternal) m_Disassembly += "external "; } - if(!(g.flags & GlobalFlags::IsExternal)) - m_Disassembly += "internal "; if(g.flags & GlobalFlags::IsAppending) m_Disassembly += "appending "; + else if(!(g.flags & GlobalFlags::IsExternal)) + m_Disassembly += "internal "; if(g.type->addrSpace) m_Disassembly += StringFormat::Fmt("addrspace(%d) ", g.type->addrSpace); if(g.flags & GlobalFlags::LocalUnnamedAddr) @@ -527,7 +527,8 @@ void Program::MakeDisassemblyString() if(m.isConstant && m.constant && m.constant->symbol) ret += m.constant->toString(withTypes); else if(m.isConstant && m.constant && - (m.constant->type->type == Type::Scalar || m.constant->nullconst)) + (m.constant->type->type == Type::Scalar || m.constant->nullconst || + m.constant->type->name.beginsWith("class.matrix."))) ret += m.constant->toString(withTypes); else ret += StringFormat::Fmt("!%u", GetOrAssignMetaID(&m));